• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 高效地分析Android内存--MAT工具解析

高效地分析Android内存--MAT工具解析

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android mat,android opencv mat,android studio mat,android mat下载,android mat工具等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

高效地分析Android内存--MAT工具解析


MAT(Memory Analyzer Tool), 是著名的Android内存分析工具, 虽然LeakCanary更加便捷, 但是MAT可以清楚地获知整体内存使用情况, 还是必须要掌握的. 我来讲解一下如何使用.


1. 内存文件

使用Android Studio底部的AndroidMonitor, 获取内存片段.

点击Initial GC回收内存, 使用应用, Dump Java Heap, 再次点击停止.

AndroidMonitor

在Android的SDK中的platform-tools文件夹内, hprof-conv脚本把AS的内存格式转换为MAT的内存格式. 之后, 使用MAT打开文件.

使用命令

./hprof-conv path/file.hprof exitPath/heap-converted.hprof

2. 分析内存

下载Eclipse的MAT工具.

虽然是Eclipse的工具, 但是可以单独运行, 并不需要安装Eclipse.

打开内存片段, 选择内存报告.

内存报告

内存整体情况.

整体内存vc280fnKvSwgzO2807D8w/u5/cLLLjwvcD4NCjxwPjxpbWcgYWx0PQ=="对象引用" src="http://www.bkjia.com/uploads/allimg/160203/041252GM-3.png" title="\" />


3. 判断泄露

Activity或View大于1个对象, 都有可能发生内存泄露.

显示内存的所有引用情况

所有引用

逐个判断即可, 有些对象的引用较多, 可能是使用了数组, 并不一定是内存泄露.

显示单个类的内存情况

查询类

使用搜索功能, 输入SQL语句, 并执行. 红色叹号执行搜索.

通过观察, 我们发现微信mWXApi传入了错误的Context, 导致内存泄露.

泄露状况

代码

        mFriendsPlatform = new WXSharePlatform(mActivity, title, content,
                bitmap, pageUrl, SendMessageToWX.Req.WXSceneTimeline);

直接传入Activity导致内存泄露, 修改为getApplicationContext即可.

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • MAT使用入门,mat入门
  • Android Material Design NavigationView 及 Palette 颜色提取器,materialpalette
  • 高效地分析Android内存--MAT工具解析

相关文章

  • 2017-05-26Android之ContentProvider数据存储,contentprovider
  • 2017-05-26Android开发学习之路--传感器之初体验
  • 2017-05-26android 同时setTag两次,保存多种值,androidsettag
  • 2017-05-26Android编程思想双11口诀,android编程思想
  • 2017-05-222.2.3 TableLayout(表格布局)
  • 2017-05-26Kotlin怎样使用Android的Dagger2,kotlindagger2
  • 2017-05-26Android 手机卫士--设置密码对话框,android设置密码
  • 2017-05-26使用Chrome远程调试GenyMotion上的WebView程序,genymotionwebview
  • 2017-05-26Handler消息传递机制(一)
  • 2017-05-26三年0故障总结,提升代码质量的秘诀

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android中接收系统广播消息
    • 2.5.6 ViewFlipper(翻转视图)的基本使用
    • android——从零开始,android从零开始
    • Android下雪动画的实现
    • Android自定义ViewGroup打造各种风格的SlidingMenu
    • ubuntu vncserver搭建
    • Android第五天-->创建自定义控件,android第五天
    • 手势事件,html5手势事件
    • Android实战技巧之四十九:Usb通信之USB Host
    • 在不同Activity之间传递数据的四种常用方法,activity四种

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有