对于我已经部署的应用程序,我正在尝试确保没有内存泄漏发生。我在调试版本中使用了leakcanary,还使用了android studio内存分析工具来检测可能的泄漏。 到目前为止,我已经在6种不同的设备上进行了测试。我已经通过内存配置文件直接调试了其中的5个,但找不到任何泄漏。即使多次旋转,旧活动和碎片也被正确地垃圾收集了。在这5个设备上,leakcanary也没有显示任何泄漏。
但是,第6台设备从一开始就显示了泄漏的提示。一些碎片泄漏了。不幸的是,由于它不是我的智能手机,因此无法通过内存配置文件运行此第六设备。该设备是装有Android 8的HUAWEI。我有另一个来自XIAOMI的Android 8设备,该设备未显示任何泄漏。
问题:
不同的Model / Brands / CustomRoms是否具有不同的(唯一/自定义)垃圾回收机制?我以为没有。
如果不是,是否有简单的解释来解释这种漏泄的行为,或者它可能是故障?
一个碎片或一个活动是否可能需要两次或更多次垃圾收集尝试才能被收集?如果是这样,可能会导致 奇怪的行为? (我认为leakcanary尝试一次gcs并在引用仍然存在的情况下转储内存)
谢谢你们!