有效地分析Android内存--MAT工具解析
来源:互联网 发布:java中的标识符 编辑:程序博客网 时间:2024/05/16 01:42
MAT(Memory Analyzer Tool), 是著名的Android内存分析工具, 虽然LeakCanary更加便捷, 但是MAT可以清楚地获知整体内存使用情况, 还是必须要掌握的. 我来讲解一下如何使用.
1. 内存文件
使用Android Studio底部的AndroidMonitor, 获取内存片段.
点击Initial GC回收内存, 使用应用, Dump Java Heap, 再次点击停止.
在Android的SDK中的platform-tools文件夹内, hprof-conv脚本把AS的内存格式转换为MAT的内存格式. 之后, 使用MAT打开文件.
使用命令
./hprof-conv path/file.hprof exitPath/heap-converted.hprof
2. 分析内存
下载Eclipse的MAT工具.
虽然是Eclipse的工具, 但是可以单独运行, 并不需要安装Eclipse.
打开内存片段, 选择内存报告.
内存整体情况.
选择直方图样式, 添加包名过滤.
3. 判断泄露
Activity或View大于1个对象, 都有可能发生内存泄露.
显示内存的所有引用情况
逐个判断即可, 有些对象的引用较多, 可能是使用了数组, 并不一定是内存泄露.
显示单个类的内存情况
使用搜索功能, 输入SQL语句, 并执行. 红色叹号执行搜索.
通过观察, 我们发现微信mWXApi传入了错误的Context, 导致内存泄露.
mFriendsPlatform = new WXSharePlatform(mActivity, title, content, bitmap, pageUrl, SendMessageToWX.Req.WXSceneTimeline)
直接传入Activity导致内存泄露, 修改为getApplicationContext即可.
其实还比较复杂, 简单的方法是使用LeakCanary, 参考.
OK, that’s all! Enjoy it!
- 有效地分析Android内存--MAT工具解析
- 高效地分析Android内存--MAT工具解析
- Android 内存分析工具 MAT
- Android 内存分析工具MAT
- android内存分析工具MAT
- Android内存分析工具MAT
- 内存泄露解析和mat工具分析
- Android 内存分析工具MAT使用
- Android 内存分析工具DDMS和MAT
- android:MAT内存分析工具的使用
- Android内存分析工具MAT:导出Bitmap
- android:MAT内存分析工具的使用
- Android内存分析工具(三):MAT
- Android 内存分析工具MAT(上)
- Android 内存分析工具MAT(下)
- Android 内存分析工具MAT(中)
- android内存泄露分析工具MAT详解
- Android内存泄露分析工具MAT
- Android系统架构的详细解析(总结)
- 从头认识Spring-1.14 SpEl表达式(2)-嵌入Bean、Bean的属性和Bean的方法
- 学习thinkPHP 笔记(1)————————数据库操作 自写函数getbaseWhere() 和 where等操作
- REST和SOAP
- Json二进制数据
- 有效地分析Android内存--MAT工具解析
- 关于在项目中使用三方框架见解(volley和fresco)
- iOS每日一记-------屏幕截屏的妙用
- uva10214
- Rex操作系统分析
- 友盟分享遇到Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.http.entity.mime.Mu
- BZOJ 2002 Hnoi2010 弹飞绵羊 分块
- 将文本内容解析成json格式
- Git gitk 中文乱码问题解决方法