android 查看内存 对象,Android内存泄漏查找和解决adb shell dumpsys meminfo packagement

1.通过adb shell dumpsys meminfo packageName来查看内存使用状况

在没有打开应用的情况下,该命令返回的数据是这样的:

2.打开这个应用的MainActivity,再通过命令查看:

可以看到打印出来很多的信息,而对于我们查看Activity内存泄漏来说,只需要关注Activities和Views两个信息即可,在应用中存在的Activity对象有一个,存在的View对象有13个。

3.这时候我们退出这个Activity,在用命令查看一下:

可以看到,Activity对象和View对象都在极短的时间内被回收掉了。再次打开,退出,多次尝试,发现情况都是一样的。我们可以通过这种方式来简单判断一个Activity是否存在内存泄漏,最后是否能够被回收。

4.再运行刚才的泄漏的例子,用命令查看一下:

当我们连续打开退出同一个页面,然后使用命令查看时,发现Activity存在13个,而View则存在了234个,而且没有很快被回收,依次判断应该是存在内存泄漏了。

等待10多秒,再次查看,发现Activity和View的数量都变成了0。

上面的例子,是Handler临时性内存泄漏,只要Handler post的代码块执行完毕,被引用的Activity就能够释放。

除了临时性内存泄漏,还有危害更大,直到程序结束才能被释放的内存泄漏。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值