美文网首页工作生活
Android性能:leakcanary检测内存泄露

Android性能:leakcanary检测内存泄露

作者: 你好_平凡 | 来源:发表于2019-07-04 15:19 被阅读0次

    1.什么是内存泄露?

        简单的理解就是,本应该被GC回收的对象,因为使用不当没有被GC回收。

    2.什么是Java GC

          如图所示,不属于GC Root层的对象,在java判定的内存紧张情况下会被回收掉。

        GC的回收对象:GC会收集那些不是GC roots且没有被GC roots引用的对象在内存不够用的情况下进行回收。

    3.leakcanary的使用方法

    leakcanary是Square公司为Android开发者提供的一个自动检测内存泄漏的工具,Git地址:https://github.com/square/leakcanary

        a)Android Studio 在Module下build.gradle下使用依赖:

            dependencies {

                debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.6.1' //测试版本使用

                releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.6.1' //正式版本使用

                debugImplementation 'com.squareup.leakcanary:leakcanary-support-fragment:1.6.1'  //fragment检测

            }

        b)在自定义Application中初始化

            if (!LeakCanary.isInAnalyzerProcess(this)) {

                    LeakCanary.install(this);

              }

    4.查看说明

        集成后对原来的使用不会造成任何影响,只有当应用在某一处发生了泄露时,手机会自动安装一个应用图标如下:

    点开这个App,里有如下界面:该界面显示的是内存泄露出现的次数,和出现的位置

    点开某一条会出现如下界面:表示出现泄露的根源所在是singleton

    相关文章

      网友评论

        本文标题:Android性能:leakcanary检测内存泄露

        本文链接:https://www.haomeiwen.com/subject/gznlhctx.html