android技术

Android调优之监控应用内存泄漏

2020-07-05  本文已影响0人  愈强

Android上一般使用LeakCanary监控Activity的内存泄漏

  1. 添加LeakCanary依赖
dependencies {
    debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.6.3'
    releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.6.3'
}

这里接入了两个库,分别用于debug模式与release模式。也就是说编译release包的时候不需要切换代码就可以去除LeakCanary的依赖了,非常方便。

  1. 在代码中进行初始化
if (!LeakCanary.isInAnalyzerProcess(context)) {
    LeakCanary.install(context);
}

接入后,桌面上会生成一个Leaks的图标,像下面这样。


image.png

当发生内存泄漏的时候,会收到通知消息。分析Activity的引用栈即可查到内存泄漏原因。

LeakCanary通过持有Activity的弱引用来监控Activity是否被及时回收。

LeakCanary只能监控到Activity的泄漏情况,而不能监控到其他内存的泄漏情况,比如大图片之类的。这类的内存泄漏问题可以通过Android Studio自带的Profiler工具进行监控排查。

上一篇 下一篇

猜你喜欢

热点阅读