0. 启动App,在首页滑动,内存占用一直增加
1. 生成hprof文件,用MAT查看dominator tree,发现3个比较大的Bitmap大概15m左右(我手机是nexus 6p)
dominator_tree_2.png2. 右键byte对象-->List objects-->with incoming refereces,查看左边attributes可以看到图片长宽很大,有问题
3. 导出Bitmap查看具体是哪张图片
Android内存优化之三:打开MAT中的Bitmap原图 · Android Performance
4. 我们程序中有一个区域显示地图,但是这里显示的图片大小明显不对
5. 进入代码查找,发现下载地图所设置图片大小不对,代码中通过如下getDimenDp
方法获得高度(宽度是屏幕宽度,所以没有问题),getResourcs().getDimension
和getResources().geDimensionPixelSize
都是返回的px,代码里面当dp处理所以导致高度不对
6. 修改代码后,Bitmap大小大概为5m。图一中显示有3个Bitmap大小约是15吗,经过修改后3个Bitmap减少内存大概30m
网友评论