安卓游戏DDMS应用和生命周期

发表于:2016-12-22 15:11

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:jiazurongyu    来源:51Testing软件测试网原创

  游戏行业认为adb是银弹的占比例不少,所以写了这个内容,其实应用很广泛,包含性能和兼容性自动化通用部分等等。本文,等你掌握了看闲置内存和运行内存呢的办法后,竞品测试也是一样的。
  关于使用DDMS
  线上基本没有源码,借助Android SDK中的DDMS工具,DDMS工具中Traceview的使用
  点击"Tools"下拉选择"Android"-"Android Device Monitor",选择右上方DDMS
  如果找不到手机,在dos下输入
  adb devices
  出现List of devices attached(不显示设备)
  先确保连线问题,手机驱动还是usb调式模式,如果还是不行,重连手机,重启adb进程如下:
  adb kill-server  adb start-server
  怕搞乱最好只链接1台手机。
  查看闲置内存和运行内存
  连接顺利后,先打开android的运行窗口,在上方可以查看内存和空闲内存
  heapsize 当前内存堆
  allocated 游戏app申请的内存
  free 游戏app空闲内存
  上面allocated+free = heapsize 和pc windows Stand by + free = Available 一样。
  继续操作你的游戏,关注data object 注意count如果过大,记录下来,回头在pc版检查内存泄露
  1-byte array 代表图片大小
  App切换和周期
  如果遇到手机启动放置2个app 在放置后台,当切换appA和appB,从A切换到B,cpu在计算appB,内存在进行缓存,会出现卡顿
  先来讲讲切换的生命周期,了解Android API说明 Activity 继承了ApplicationContext这个类,范例如下:
public class Activity extends ApplicationContext {
protected void onCreate(Bundle savedInstanceState);  //savedInstanceState保存当时状态
protected void onStart();
protected void onRestart();
protected void onResume();   //刷新
protected void onPause();
protected void onStop();
protected void onDestroy();  //关闭程序
}
  我们先启动appA,通过Activity onCreate
public class ActivityTest extends Activity {
private static final String TAG = "appA";
private static final String TAG = "appB";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);   //调用父类
setContentView(R.layout.main);
Log.e(TAG, " onCreate");
}
protected void onStart() {
super.onStart();
Log.e(TAG, "start onStart");
}
......
  查看DDMS logcat里也可以显示调用生命周期{time,pid,tag,message},在计算是切换时卡顿(手机),还是app刷新时卡顿。
  切换app
  A.onResume() -> A.onPause() -> B.onStart() -> B.onResume()
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号