GC保证释放未使用活动的内存

时间:2016-06-17 23:36:53

标签: android android-activity memory-leaks garbage-collection activity-lifecycle

我正在尝试分析Android应用的内存使用情况。我是用

做的
adb shell dumpsys meminfo <package name>

我的应用只有一个Activity,我可能会重复以下步骤十几次:

  1. 打开应用;
  2. 使用后退按钮退出
  3. 在执行此操作后,dumpsys显示我的Activities的大约1-2个实例仍在内存中。在我点击adb dumpsys几次后,Activity计数降至零。这是正常的吗?如果是泄漏,我不希望Activity计数降到零。这是否意味着GC慢慢声称Activity对象的记忆?

1 个答案:

答案 0 :(得分:2)

  

这是否意味着GC会慢慢声明活动对象的内存?

按后退按钮完成Activity并不意味着它的实例将被立即杀死并且内存GC - 编辑。 Activity的{​​{1}}方法不是“终结器”。可以满足这样的情况:当开始新的onDestroy()实例时,“旧”实例仍然位于内存中(作为reference)。

  

如果是泄漏,我不认为活动数量会下降到零。

如果您看到应用程序的进程正在运行,那么“活动计数降至零”就不会泄漏。

  

在我点击adb dumpsys几次之后,活动数量降到零。这是正常的吗?

是的,原因如上所述。