首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    内存泄露分析工具:LeakCanary 原理分析

    内存泄露是Android性能优化的重要内容,而Leakcanary是发现和分析内存问题的常用工具。本篇文章就对LeakCanary原理进行分析,希望能帮助到你。...:leakcanary 中 五、Leakcanary启动时机 早期版本需要在应用Application的onCreate中处理Leakcanary的初始化,新版本中为了降低接入成本, 将Leakcanary...的初始化收拢到库定义的AppWatcherInstaller里面,原理是利用ContentProvider的 onCreate的初始化时机早于Application的onCreate(PS:晚于Application...在 Fragment onCreate 时为当前的 Fragment 添加一个 ViewModel,而这个 ViewModel 利用跟随宿主生命周期的原理,在被执行 onClear 时,通过 hook...原理就是: 弱引用包含的对象在无其他引用的情况下,执行 GC,该对象将会被加入到回收队列 举个例子,一个 Activity A 被封装成一个弱引用 weakA,并把这个弱引用 weakA 加入到 watchedObjects

    4K40

    Leakcanary 详解

    2.源码分析 我们在build.gradle文件中加入Leakcanary依赖库: debugImplementation 'com.squareup.leakcanary:leakcanary-android...:1.6.3' LeakCanary的使用从LeakCanary.install(this)开始, 下面我们从入口开始分析: //LeakCanary.java /** * Creates...排除可以忽略的泄漏路径 LeakCanaryInternals.setEnabledAsync(context, DisplayLeakActivity.class, true); 这行代码主要是为了开启LeakCanary...LeakCanary是这么做的:onDestroy以后,一旦主线程空闲下来,延时5秒执行一个任务:先判断Activity有没有被回收?...否则, LeakCanary主动触发一次gc,再进行以上两个步骤,如果发现这个Activity还没有被回收,就认为这个Activity很有可能泄漏了,并dump出当前的内存文件供之后进行分析。

    40540

    Android内存泄露检测 LeakCanary2.0(Kotlin版)的实现原理

    本文介绍了开源Android内存泄漏监控工具LeakCanary2.0版本的实现原理,同时介绍了新版本新增的hprof文件解析模块的实现原理,包括hprof文件协议格式、部分实现源码等。...本文结合源码对2.0版本的内存泄漏监控基本原理和hprof文件解析器实现原理做一个简单地分析介绍。...1.1.2 整体功能 Leakcanary2.0版本开源了自己实现的hprof文件解析以及泄漏引用链查找的功能模块(命名为shark),后续章节会重点介绍该部分的实现原理。...入队的元素有相应的数据结构ReferencePathNode ,原理是链表,可以用来反推出引用链。...至于泄漏的对象的识别原理和之前的版本并没有差异。 作者:vivo 互联网客户端团队-Li Peidong

    1.8K20
    领券