[关闭]
@TryLoveCatch 2022-05-18T03:44:14.000000Z 字数 1891 阅读 819

Android知识体系之异常处理-内存泄漏

Android知识体系


参考

Android内存泄露检测 LeakCanary2.0(Kotlin版)的实现原理
Android内存泄漏检测利器:LeakCanary

内存泄漏

内存泄漏(Memory Leak)指 程序在申请内存后,当该内存不需再使用但 却无法被释放 & 归还给程序的现象

本质原因

本该被回收的对象,因为某些原因而不能被回收,从而继续留在堆内存中。

小结

当一个对象已不再被使用,本该被GC回收,但是另外一个正在使用的对象持有了它的引用,从而导致它不能被回收,留在了堆内存中。

本质原因:对象生命周期的不同。比如说:
Handler引用了Activity,导致Activity回收不成功

内存

Java基础之Java内存模型

内部类

Java基础之内部类

常见的内存泄漏

常见的工具

Android内存检测工具

LeakCanary

LeakCanary是一个傻瓜化并且可视化的内存泄露分析工具。
简单,易于发现问题,人人可参与。

原理

Java基础之引用类型
LeakCanary原理从0到1

缺点

「抄底 Android 内存优化 8」 —— 快手线上 OOM 监控学习笔记

LeakCanary 有致命的问题:无法线上部署。原因很简单在采集和分析内存镜像中会造成明显的卡顿。

拾遗

使用ContentProvider初始化SDK库

Android使用ContentProvider初始化SDK库方案总结
使用ContentProvider初始化你的Library

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注