Android内存测试实战(2)

Android内存检测工具

  1. AndroidProfiler (Androidstudio自带内存检测工具)

  2. MAT                 (Eclipse 中的内存检测工具),下载地址: http://www.eclipse.org/mat/downloads.php

  3. LeakCanary        (开源内嵌APP型内存检测工具) ,官网地址:https://www.liaohuqiu.net/cn/posts/leak-canary-read-me/

AndroidProfiler工具入口

  1. View->ToolsWindow->AndroidProfiler

 

内存分析实战

   由于公司项目,经常被系统干掉,所以看了下日志基本上都是因为内存占用过大引起(长时间出于后台运行),所以怀疑程序可能存在内存泄漏,故dump内存快照,放至AndroidProfiler中进行分析,查到UiWidget类中_attrs(Map<String,String>)对象中的value包含了DefaultElement对象的引用。但实际_attrs对象的value实际上是String类型,后经过排查发现UiState中的_attrs是由UiautomationParser对象创建而成,且其中的value直接引用了DefaultElement中的attributeValue属性,所以导致此对象存在了内存泄漏。故在引用DefaultElement对象中重新初始化一个String对象即可修复该问题。

图1(内存快照分析图)

 

图2(部分实现代码)

 

其他内存实战介绍

https://blog.csdn.net/wanghao200906/article/details/79305126

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值