首页 科普 资讯 养生 问答 找医院 相关问答
首页> 问答

深入理解图片内存优化的常见方案和 AndroidBitmapMonitor 的原理

发布网友 发布时间:2天前

我来回答

1个回答

热心网友 时间:2天前

大家好,我是 shixin。



通过上一篇文章 # 自研的内存分析利器开源了!Android Bitmap Monitor 助你定位不合理的图片使用 我们了解了好用的图片内存分析工具 AndroidBitmapMonitor,现在我们来了解下它的原理。



这篇文章主要包括三部分:

为什么要关注图片占用的内存

内存使用不当会导致应用崩溃、后台存活时间短和卡顿等问题。图片通常是 app 内存使用的大头,占用内存多,对 app 性能影响大。



常见的问题有:



应用崩溃:内存不足导致 crash。
后台存活时间短:内存不足时系统会强制关闭进程。
卡顿:内存抖动导致频繁垃圾回收。

因此,关注图片内存,掌握有效的监控、分析手段,可以及时解决内存相关问题。



图片内存分析常见方案



图片内存分析方案主要有三种:



HPROF 分析:通过 hprof dump 获取 Java 对象堆快照,找到 Bitmap 对象,估算图片尺寸。
Java Hook:通过 YAHFA、epic 等框架替换图片创建代码入口,实现拦截 Bitmap 创建。
编译时修改字节码:通过 AspectJ/ASM/JavaAssit 等方式修改代码,在其中统计 Bitmap 信息。

新方案 Android Bitmap Monitor



Android Bitmap Monitor 是一个开源工具,帮助开发者快速发现应用内图片是否合理,如内存占用、泄漏、缓存清理等。



它的三个核心功能:



获取内存中的图片宽高和堆栈。
统计没有被回收的图片。
图片还原。

实现原理



AndroidBitmapMonitor 通过 inline-hook 拦截 Java Bitmap 对象创建的统一入口,获取图片创建信息。知道创建的图片信息后,通过轮训 Bitmap 对象的 mRecycled 属性判断图片是否被回收。最后,通过 NDK 的 AndroidBitmap_lockPixels 函数获取图片像素数据,实现图片还原。



总结



AndroidBitmapMonitor 提供详细的图片创建信息,可用于解决图片内存相关问题。它的功能包括获取图片信息、统计未回收图片、图片还原。了解 AndroidBitmapMonitor 的实现原理,可以帮助开发者更好地优化内存使用,提升应用性能。

猫传腹摸肚子会难受吗 猫传腹会让你摸肚子吗 猫腹水会让人摸肚子吗 猫传腹会拒绝摸肚子吗 招商银行信用卡,已经逾期14天了,今天客服说是如果下午在不还款8000就... 小孩子不爱写作业,家长应该怎么办? 鼻子老是有点堵塞,呼吸不是太顺畅,有时还有鼻涕,喉咙里老感觉有痰。痰... ...鼻屎多,鼻涕浓,有纯白色的,也有带黄色的.这是怎么回事,该怎么办_百 ... 二十六万元三年期利率是4.1250共利息是多少 定期5万,利率是4.1250一年是多少钱? ...想一个兄弟网名 要的是个性一点后面能带自己姓的 比如什么什么的王... 我妈妈50多岁了有时候一口气上不来,过一下子又好了去医院检查也说不出... ...我姓字,所以想要一个带 段 字和 字 字的网名。 请问医生,我妈妈跟我说,她晚上睡觉翻身的时候会一口气喘不上来... 钳形电流表掐电流的方法 ...我姓姓李 我心里 的谐音网名,请问一下我姓段应该改成什么呀? 哪位... 空调外机突然像拖拉机一样响,什么问题? 米粉卡怎么免流 小米4怎样用免流啊,谁教教 汽油和水的密度哪个大 枣夹核桃仁一起吃对人体有什么好处 核桃仁和红枣夹在一起吃好吗 求帮我解析一下塔罗牌的牌意 朋友给我测了一组塔罗牌关于近期考试我能不能过的 求帮看下测试出来的... 新疆喀什成立经济特区有官方新闻吗? ...自治区有在单位不能说维吾尔语的红头文件吗? 用什么手机软件可以做电影人生,像这样的 美图里面的电影人生怎么美图,不是足记 手机怎么做电影人生 什么叫增资扩股 ...中,正确的是( ) A.靠近光谱中红光的不可见光是紫外线 B.紫外线... 靠近光谱中红光的不可见光是什么 甲仓的大米比乙仓少1/4,乙仓的大米比甲仓多3/4吨,乙仓有多少吨大米 ...这些大米的3/4后还剩0.5吨又运进5分之3吨现有大米多少吨? 风信楼怎么防止被任无晴杀掉 学校食堂的大米用去了3/4,正好用去2吨。学校食堂的大米还有多少吨 【《风信楼》个人向攻略】人物获取方式和剧情走向 面粉有120 吨是大米的3分之4,大米有多少吨方程解答 某超市运来面粉40吨,大米比面粉多3/4,运来大米多少吨? ...运走2/5后,又运进45吨,这时仓库里的大米比原来大米的3/4多3吨... let's find our kids 圣安地列斯,入室抢劫的特殊车辆在哪里? 圣安地列斯怎么入室抢劫.我用的是通关存档 侠盗猎车圣安地列斯怎么入室抢劫啊,还有那种卡车在哪里有。还找不... 北旗维山莲子红萝卜瘦肉一起可以煮汤吗 梦幻西游魔族 哪个门派好 怎么加点 本人纯新人 这把70jy刀多少钱 怎样区分手机通话中还是挂掉中? 专家你好,请问一下我在11号体检时查出幽门螺杆菌阳性,建议到消化科就诊... 幽门螺杆菌阳性要怎么治疗 cad怎么把直线组成的多边形,怎么让它闭合?就像左边的变成右面的? 学会Bitmap内存管理,你的App内存还会暴增吗? 台湾话调子是什么意思? linux 中 useradd –g ftp –s /sbin/nologin ftpuser什么意思 如果说13岁开始学钢琴的话,想考业余级10J的会不会比较晚的哦?_百度... 作文的调子是什么意思啊 华为魅紫是什么机子,好吗? ...7.1.3.324285虚拟机许可证密匙 要能激活的,我在网上找了很久都没... 泛指的“人”在英语中有几种说法 3000元能组装一台什么配置的电脑? 3千元电脑配置菜单 梦幻泛舟桃花潭这个任务有什么奖励吗? 吉利远景x3手机连上中控导航用一会手机就发烫是怎么回事 诛仙中小白最后结局是怎样啊 还有周一仙到底是什么任务 他和鬼先生... 诛仙中小白最后结局是怎样啊 还有周一仙到底是什么任务 他和鬼先生... 梦幻泛舟桃花潭这个任务有什么奖励吗? ...以及 ∫e^(-t²/2) 负无穷到正无穷是怎么求的。概率论中遇到的... 英语书面对几种要求有很多规范,那口语中是否可以互换,为什么有时候requir... 0到正无穷上t^ n乘以e^(- t)的积分有公式吗? 冲击函数δ(t)从负无穷到t积分跟从t到正无穷积分结果分别等于多少? 12mm的鸡油黄蜜蜡手串,无烤色,18克,市场价大概多少? 侠盗飞车警察星星怎么全满 落落的《时间煮雨》不懂题目如何解释? 成都每一个区都而且只有一个移动营业厅注销电话号码的地方,每个区分... ...来的?”吴彦祖答;"贝贝山。”中贝贝山是什么意思呢? ...最后吴彦祖说自己是从背背山来,是什么意思? "我从背背山来"这句话什么意思啊? 看过“宝贝计划”的请进 普通号做了检查,结果出来后,去在同一家医院的专家号,还要重新检查... 新民主主义革命时期为什么要走农村包围城市道路??? 内循环省油还是外循环 ...我该如何狂补我的英语,希望能给我一个好的建议谢谢. 步步惊心 演 若曦 姐姐 的演员叫什么啊?觉得她好漂亮,演得也很好。 【注册公司】关于公司注册后纳税人的认定标准 请问大佬有《选秀日运动:职业足球2020》英文免安装版游戏免费百度云资源... 有个歌曲是粤语和普通话一起唱的 好像叫一句叫为什么又难过 网上公司注册:初创公司选择一般纳税人还是小规模纳税人 浦江县杭坪镇大塘村股份经济合作社怎么样? 鲜果福寿龙虾材料: 我是正月十四出生, 也就是农历1月14日 请问我到底是怎么星座的 星座是...
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com