“内存优化会不会?知道怎么定位内存问题吗?”面试官和蔼地坐在小会议室的一侧,亲切地问有些拘谨地小张 。前言 app性能优化总是开发中必不可少的一环,而其中内存优化又是重点之一 。内存泄漏带来的内存溢出崩溃,内存抖动带来的卡顿不流畅 。都在切切实实地影响着用户的体验 。我们常常会使用LeakCanary来定位内存泄漏问题 。也是时候来探索一下人家是怎么实现的了 。
“就是…那个,用LeakCanary 检测一下泄漏,然后找到对应泄漏的地方,把错误的代码改一下,没回收的引用回收掉,优化下长短生命周期线程的依赖关系吧”
“那你了解LeakCanary 分析内存泄漏的原理吗?”
“不好意思,平时没有注意去看过” 小张心想:面试怎么老问这个,我只是个普通的菜鸟啊 。
名词理解 hprof : hprof 文件是 Java 的 内存快照文件(Heap Profile 的缩写),格式后缀为 .hprof,在leakCanary 中用于内存保存分析 WeakReference : 弱引用,当一个对象仅仅被weak reference(弱引用)指向, 而没有任何其他strong reference(强引用)指向的时候, 如果这时GC运行, 那么这个对象就会被回收,不论当前的内存空间是否足够,这个对象都会被回收 。在leakCanary 中用于监测该回收的无用对象是否被释放 。curtains:Square 的另一个开源框架,Curtains 提供了用于处理 Android 窗口的集中式 API 。在leakCanary中用于监测window rootView 在detached 后的内存泄漏 。
目录 本文主要从以下几点入手分析
- 如何在项目中使用 LeakCanary工具官方原理说明默认如何监听Activity ,view ,fragment 和 viewmodelWatcher.watch(object) 如何监听内存泄漏如何保存内存泄漏内存文件如何分析内存泄漏文件展示内存泄漏堆栈到ui中 不支持在 Docs 外粘贴 block
//(1)debugImplementation \\\'com.squareup.leakcanary:leakcanary-android:2.7\\\'复制代码 debugImplementation 只在debug模式的编译和最终的debug apk打包时有效 注(1):标注的代码中用了一行就实现了初始化,怎么做到的呢? 通过查看源码可以看到,leakcanary 通过 Co猜你喜欢
- 收购干小麦与湿小麦差距多大 小麦卖湿的还是干的划算
- 梵蒂冈为什么不跟中国建交 梵蒂冈和中国的关系怎么样
- 北大跟清华哪个更好 考上清华大学的好处
- 亚特兰蒂斯文明发达程度真相 亚特兰蒂斯文明真的存在吗
- 描写暖心的友情句子简短简短文案 关于暖心的友情句子简短
- 科普下磁场性质有哪些 磁场的基本性质是什么
- 描写双11吸引人的广告语标题简短文案 关于双11吸引人的广告语标题
- 描写发一条有深度的朋友圈句子正能量简短文案 关于发一条有深度的朋友圈句子正能量
- 奇门遁甲到底有多厉害多神奇 奇门遁甲的可怕之处在于哪
- 描写适合各种情绪的短句发朋友圈简短文案 关于适合各种情绪的短句发朋友圈
