【Android端 APP 内存分析】使用工具进行APP的内存分析

Android端可以通过adb 命令直接获取内存信息,当然Android studio也提供了对内存的监控分析工具,并且后续可以结合MAT做分析

今天介绍的是通过Android studio和MAT工具进行分析的方法:

1、通过Android studio打包之后,app安装成功

2、点击 Android Monitor,具体见下图:

 

运行APP成功之后,就能看到下图中所示,说明APP的进程已经启动起来了,然后就可以进行操作和观察数据了

 

看到Android Monitor里面能够监控的数据有:CPU、内存、网络、以及GPU

 

3、查看内存这一栏:

 

看到以5s为间隔,曲线图会一直变化,其中深蓝色代表已经分配的,浅蓝色代表free的

进行多次反复操作,例如进入APP之后再正常退出,观察内存数据,如果内存一直在增长,就可以初步判定可能有问题

点击下方的这个卡车,强制gc,之后点击卡车后面的第一个图标,将鼠标放上去之后,能够看到 dump java heap的tips,

 

之后会生成一个hprof的文件,见下图:

 

然后可以点击 Analyzer Tasks就可以将Analyzer Tasks的项展开,

 

之后就能看到下方这个图,勾选Analyzer Tasks下方的两个内容,分别是检测Leaked Activities和Find Duplicate Strings

 

之后点击右边的绿色三角按钮,就可以获得结果,点击展开Leaked Activities,就可以看到其中泄漏的Activity对象

 

 之后可以使用MAT工具,对这个hprof文件进行转换,然后通过MAT工具进行分析;

hprof文件的地址在项目目录的 captures目录下

 找到这个文件,对文件进行格式转换,通过sdk工具中的platform-tools/hprof-conv.exe进行格式转换:

通过cmd命令行即可:hprof-conv from.hprof to.hprof

之后生成的这个hprof文件就可以用MAT打开了,更具体的分析可以见下方数据内容:

 

 

内存分析时,其实不一定是内存泄漏就会有问题,内存泄漏指的是一些对象在强制gc之后依然没有被释放,但是程序本身的对象申请空间比较大,或者是多次操作总是不释放,这样的也会出现问题。

 

一些容易出现内存问题的场景:

1、存在多图片的页面,或者需要申请较大空间的情况(比如切换tab时)

2、存在listview的页面,listview的复用及及时释放等

3、Activity不发生变化的页面,但数据会不变更新的逻辑

 

转载于:https://www.cnblogs.com/keke-xiaoxiami/p/6187864.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值