专栏名称: 鸿洋
你好,欢迎关注鸿洋的公众号,每天为您推送高质量文章,让你每天都能涨知识。点击历史消息,查看所有已推送的文章,喜欢可以置顶本公众号。此外,本公众号支持投稿,如果你有原创的文章,希望通过本公众号发布,欢迎投稿。
目录
相关文章推荐
鸿洋  ·  大图检测插件的落地 ·  10 小时前  
鸿洋  ·  初识Android内存优化 ·  昨天  
鸿洋  ·  打造Android热修复专家 ·  3 天前  
今天看啥  ›  专栏  ›  鸿洋

大图检测插件的落地

鸿洋  · 公众号  · android  · 2024-12-19 08:35
    

主要观点总结

文章介绍了在Android开发中如何规避因大图导致OOM的问题,通过动态检测大图并给出警告,避免了因开发者未规范处理大图而导致的线上用户问题。文章详细阐述了如何在ImageView的setImageDrawable方法中插入字节码插桩,实现了大图的检测,并介绍了如何对系统jar包进行插桩和替换,以及如何获取容器的宽高来确保准确的检测结果。

关键观点总结

关键观点1: 大图导致OOM的问题

在Android开发中,大图可能导致OOM,因此需要找到一种方法规避这个问题。

关键观点2: 大图检测的实现方式

通过在ImageView的setImageDrawable方法中插入字节码插桩,实现了大图的检测,并给出了解决方案。

关键观点3: 系统jar包的插桩和替换

文章介绍了如何对系统jar包进行插桩和替换,以便在运行时检测大图。

关键观点4: 获取容器宽高的方法

为了确保准确的检测结果,建议在ImageView的post方法中获取容器的宽高。

关键观点5: 解决方案的应用场景

该解决方案适用于所有在Android开发中需要处理图片的场景,可以帮助开发者避免大图导致的OOM问题。


文章预览

本文作者 作者: layz4android 链接: https://juejin.cn/post/7219908995338223671 本文由作者授权发布。 在实际的项目开发中,引入图片的方式基本可以分为两种:本地图片和云端图片,对于云端图片来说,可以动态地配置图片的大小,如果服务端的伙伴下发的图片很大导致程序异常,那么可以随时修改端上无法发版修复。但是因为本地引入的图片,e.g. 背景图,位图 过大导致程序出现异常,则必须要紧急发版修复线上用户问题。 其实在开发过程中是可以规避这个问题的,只不过是少了一个check的过程,而且大部分因为开发过程中不规范导致问题的发生,UI切图的不规范,或者开发者没有在意尺寸大小而随意引入到工程中。因为开发中可能频繁的installDebug,一些内存问题并不会发现,而到了线上之后,在用户场景中可能就会出现。 我们都知道,大图是导致OOM的 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览