dump heap及分析内存泄漏

本文介绍如何使用Android Studio和命令行工具获取Heap信息,通过Heap分析定位内存泄漏问题。包括使用Profiler进行内存快照获取及转换,解读Heap信息,以及如何通过leaks功能找到内存泄漏的具体位置。

背景

在Android开发中,因为多了生命周期概念和相关类,很容易出现内存泄漏的问题,并且找到和复现这些问题很麻烦。不过内存泄漏是很容易被代码检测或者现成的工具检测出来的。基于这个场景,需要学会dump heap和通过heap分析内存泄漏。

如何获取heap信息

一、使用Android Studio对于能usb连接的设备,可以直接监控进程获取
1、打开profiler,studio中依次选择 View->Tool windows->Profiler
2、选择要监控的进程,
3、选择MEMORY,右键选择Dump Java HEAP,会自动结束并生成Heap Dump文件
二、命令获取方式

1、adb shell am dumpheap [参数]

参数 说明
–user <USER_ID> | current 指定哪些用户运行,如果不指定则使用当前用户
-n 获取native heap而不是managed heap

例:adb shell am dumpheap com.demo.micolauncher /data/local/tmp/test.hprof
2、获取内存快照(后缀名必需为.hprof)
使用adb pull /data/local/tmp/test.hprof e:\ 命令将testr.hprof文件保存到电脑本地
3、使用命令:hprof-conv e:\test.hprof e:\test1.hprof 进行文件转化
4、然后

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值