Android Studio的内存泄漏检测

本文介绍了Android虚拟机如何通过根搜索算法进行垃圾回收,并探讨了内存泄漏产生的原因。同时,还详细讲解了如何利用Android Studio内置工具检测内存泄漏,包括观察应用内存使用情况、手动触发垃圾回收及使用HPROF Viewer来定位泄漏源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是内存泄漏

Android虚拟机的垃圾回收采用的是根搜索算法。GC会从根节点(GC Roots)开始对heap进行遍历。到最后,部分没有直接或者间接引用到GC Roots的就是需要回收的垃圾,会被GC回收掉。而内存泄漏出现的原因就是存在了无效的引用,导致本来需要被GC的对象没有被回收掉。

内存泄漏的检测
打开Android Studio,编译代码,在模拟器或者真机上运行App,然后点击,在Android Monitor下点击Monitor对应的Tab,进入如下界面


在Memory一栏中,可以观察不同时间App内存的使用情况,点击可以手动触发GC,点击可以进入HPROF Viewer界面,查看app的Heap,如下图:


Reference Tree代表指向该实例的引用,可以从这里面查看内存泄漏的原因;

Shallow Size指的是该对象本身占用内存的大小;

Retained Size代表该对象被释放后,垃圾回收器能回收的内存总和。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值