解读:一般开发对每个进程有设计的标准,如不能超过xxM(每个进程具体的数值,需要和对应的开发确认),这是测试的重点,超过一般可以认为是内存泄漏。2)adb shell dumpsys meminfo后面还可以加包名,用于查看具体应用的内存使用情况。Total PSS只可以看出来比较明显的内存泄漏,而通过抓取内存快照的方法,再导入到AS上分析,可以很明确的判断出该应用是否存在泄露:车载App内存泄漏定位完整流程
适合排查车载应用(如车机UI、导航、娱乐等)的内存问题,步骤清晰:
1)准备阶段:确认包名
adb shell pm list packages | grep <关键词>
2)复现操作:在车机上完成你怀疑导致泄漏的操作(如打开页面、滑动、关闭)。目前我是跑monkey或MTBF后,抓取hprof。
3)抓取HPROF快照
adb shell am dumpheap <包名或pid> /data/local/tmp/test_leak.hprof
(必须存到/data/local/tmp/,才有读写权限哦)
4)拉取到电脑分析
adb pull /data/local/tmp/leak.hprof pc路径
5)使用Android Studio打开分析
备注:由于经常需要抓取内存快照,判断是否存在内存泄漏,手动输入太麻烦,可以一键脚本,自动抓取Hprof+自动拉取,省心省力!(以windows为例,保存为.bat文件)(文档限制,暂无法上传)
三、报此问题抓什么日志?
hprof+对应时间点的U盘日志(Android_log top_memory信息等)。