闲置内存和运行内存占用尽量减少,参考同类竞争对手水平


关于使用 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 的运行窗口,在上方可以查看内存和空闲内存

继续操作你的游戏,关注 data object 注意 count 如果过大,记录下来,回头在 pc 版检查内存泄露


App 切换和周期

先来讲讲切换的生命周期,了解 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();  //关闭程序
   }  



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");  
}  
......


切换 app

A.onResume() -> A.onPause() -> B.onStart() -> B.onResume()

可以在切换时打对应的 log


如果有源码,可以用另外的办法,可以联系陈大喵 jiazurongyu


↙↙↙阅读原文可查看相关链接,并与作者交流