我试图优化我的应用消耗的内存量。 当我的应用程序加载(按住主页键然后选择任务管理器),我可以看到应用程序占用17MB,但该值不刷新。 如何实时跟踪该值? DDMS可以选择吗?请具体一点,我已经搜索了很多,没有找到。 提前谢谢
答案 0 :(得分:4)
另一个更加面向代码的内存跟踪调试方法出现在https://stackoverflow.com/a/6471227/978329中,其中包含指向更多信息的博客的链接。
为了简短起见,您可以将以下代码(或其改进版本)小心地放入某种点击事件中,并将实时信息记录到日志或Toast消息中:
View v = (View) findViewById(R.id.SomeLayout);
v.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
Debug.MemoryInfo memoryInfo = new Debug.MemoryInfo();
Debug.getMemoryInfo(memoryInfo);
String memMessage = String.format("App Memory: Pss=%.2f MB, Private=%.2f MB, Shared=%.2f MB",
memoryInfo.getTotalPss() / 1024.0,
memoryInfo.getTotalPrivateDirty() / 1024.0,
memoryInfo.getTotalSharedDirty() / 1024.0);
Toast.makeText(ThisActivity.this,
memMessage,
Toast.LENGTH_LONG).show();
Log.i("log_tag", memMessage);
}
});
答案 1 :(得分:3)
是的,您可以使用DDMS,有一个指南here。查看“查看进程的堆使用情况”
答案 2 :(得分:2)