android oom 内存优化入门,工具mat简单使用(

android oom 内存优化从入门到进阶

本人是一名计算机专业的学生,如今要搞毕设,做的是一款android的app开发,由于接触的比较少,代码写的很乱,更别提优化程序
Android是个多任务的操作系统,每个程序都不可能无休止的给分配内存,heap的大小从16mb,32mb,64mb,到如今的128mb甚至更多,但是一开始写程序,像我这样的小白只能做到让程序能跑就行,今天写程序就出现了oom的现象,让我一头雾水,见下图
这里写图片描述
随着各种操作的执行,内存消耗无限膨胀,直到程序boom
这里写图片描述
正题
介绍的一款软件叫做mat
下载地址:https://eclipse.org/mat/downloads.php
推荐选择下载 Stand-alone Eclipse RCP Applications
另外一款软件 gimp
下载地址:https://www.gimp.org/downloads
完事具备 只欠东风
捕捉内存的使用,运行程序
这里写图片描述
点击dump java heap
这里写图片描述
捕捉成功后,在captures中可以看到刚才的捕捉好的.hprof文件,接下来用刚才安装好的
mat打开
ps.这里有点小问题,发现网上其他的介绍人远有的没有提及,不知道是不是最新的
android studio(1.5.1)的问题 这里的hprof不是标准的,需要导出成标准文件,在文件上
右键->Export to standard.hprof
这里写图片描述
打开保存的文件,选择第一个
这里写图片描述

在Overview选项卡中,有多个选项
这里写图片描述
可以自行查看想要的内容,重点说Dominator Tree
这里写图片描述
可以看到一些实用情况,oom中,一般bitmap情况占了大头,点击每项
这里写图片描述
左边inspetor可以看到这个图的信息,我们想要还原这个图,了解下到底是啥占用了那
么多内存,本文中已经很明显,只是为了说明,记录下信息 ,宽,高
本文中3096*2064,看到这里我终于知道为啥oom了,小白程序员的我已经崩溃
在每项标签下的byte数组中右键->copy->save value to file
这里写图片描述
保存数据为.data 文件,例如image.data
用下好的gimp打开,设置好刚才记录的宽,高,打开
这里写图片描述
这里写图片描述
图片还原成功,本身只是作为navigation的header我搞了个这么大的图,不oom才怪,好了去修改代码吧。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值