一个同事分享的:
前言
我们在用MAT(Memory Analyzer Tool)分析Android内存时,会发现大量的bitmap对象占了内存使用。但是很难定位究竟是哪张图片占用了内存,本文介绍一种查看bitmap原图的方法。
前提
安装GIMP,GIMP是一个开源的图像处理工具,可以免费下载,安装。http://www.gimp.org/
eclipse MAT已经dump出hprof文件
操作步骤
-
右键选择android.graphics.bitmap对象。List objects---with outgoing references.
-
右键选中“mBuffer”,在弹出框选择 “copy--save value to file”,选择本地文件路径,保存为xxx.data文件。
-
打开eclipse inspector 视图。
方法:eclipse 导航条,Window---Show View---Other,选择“inspector”。打开这个视图的目的是记录这个bitmap的mWidth(宽度)和mHeight(高度),这两个属性,待会在GIMP中要用到。
-
打开GIMP,选择File--Open,打开刚刚保存到本地的xxx.data文件。在弹出的对话框中,image type选择“RGB Alpha”,width和height输入刚刚从inspector中获得的mWidth和mHeight的值。点击Open,就可以看到原图啦。
用这种方法,方便我们排查大图引起内存问题。