Android内存优化(四)LeakCanary使用详解
程序员文章站
2022-03-13 10:18:28
LeakCanary是检测App内存泄露的工具, 内存泄露是Android开发中常见的问题, 使用程序的稳定性下降. LeakCanary 的机制如下: RefWatcher.watch() 会以监控对象来创建一个 KeyedWeakReference 弱引用对象 在 AndroidWatchExe ......
LeakCanary是检测App内存泄露的工具, 内存泄露是Android开发中常见的问题, 使用程序的稳定性下降.
LeakCanary 的机制如下:
RefWatcher.watch()
会以监控对象来创建一个KeyedWeakReference
弱引用对象- 在
AndroidWatchExecutor
的后台线程里,来检查弱引用已经被清除了,如果没被清除,则执行一次 GC - 如果弱引用对象仍然没有被清除,说明内存泄漏了,系统就导出 hprof 文件,保存在 app 的文件系统目录下
HeapAnalyzerService
启动一个单独的进程,使用HeapAnalyzer
来分析 hprof 文件。它使用另外一个开源库 HAHA。HeapAnalyzer
通过查找KeyedWeakReference
弱引用对象来查找内在泄漏HeapAnalyzer
计算KeyedWeakReference
所引用对象的最短强引用路径,来分析内存泄漏,并且构建出对象引用链出来。- 内存泄漏信息送回给
DisplayLeakService
,它是运行在 app 进程里的一个服务。然后在设备通知栏显示内存泄漏信息。
上一篇: Python Pyqt5多线程更新UI代码实例(防止界面卡死)
下一篇: 可以给我递下扳手
推荐阅读
-
解析Android开发优化之:对Bitmap的内存优化详解
-
Android TraceView和Lint使用详解及性能优化
-
Android编程使用加速度传感器实现摇一摇功能及优化的方法详解
-
Android SharedPreferences四种操作模式使用详解
-
Android Bitmap详解及Bitmap的内存优化
-
Android 进阶实现性能优化之OOM与Leakcanary详解原理
-
android 内存泄露分析及调试(LeakCanary使用)
-
详解Android使用Handler造成内存泄露的分析及解决方法
-
Android内存优化(四)LeakCanary使用详解
-
详解Android内存优化策略