Android Studio 查找无用资源

随着业务迭代,应用中的资源会越来越多,同时也会有一些老旧无用资源文件不再被引用。及时清理无用资源可以有效防止包体积增长过快。下面介绍如何在Android Studio中查找无用资源并进行删除。

1. 在工程目录中点击右键,选择Analyze->Run Inspection by Name…

清理无用资源

2. 在弹出的对话框中输入unused resource,并点击回车键

搜索unused resource

3. 选择搜索范围,然后点击OK键,即可开始自动搜索。

选择搜索范围

建议总是选择“Whole project”选项。假如选择指定module,那该module中如果有资源仅被上层模块引用,将会在这种模式下被标记为无用资源,从而造成清理错误。

4. 下面是运行结果页面。

无用资源结果页面

右侧有一个按钮“Apply quick fixes to all the problems”。点击该按钮后,IDE会自动将搜索到的所有无用资源一起删除。

5. 关于反射引用资源的问题

在某些情况下,代码中可能会通过反射的方式引用特定资源。这种情况下,如果资源被删除,是很令人沮丧的。

为了避免资源被错误删除,可以这样做:

  1. 在反射资源的代码附近添加一个资源引用代码(无论该资源是否被其他位置应用,都建议这样做):
// 代码可以像下面这样,既保证了资源的引用,又不影响正式包的运行状态。
if (BuildConfig.DEBUG) {
    Log.i("yq", "we need resource " + R.drawable.ic_launcher_foreground);
}
  1. 在资源中添加注释,表名该资源被反射引用。如果资源是个图片无法添加注释,可以将信息写在commit log中。

  2. 在使用资源的时候,如果发现资源不存在,不要沉默处理,应该抛出一个运行时异常以方便开发者能够迅速定位问题。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,580评论 2 59
  • 什么是 Lint Android Lint 是 SDK Tools 16(ADT 16)开始引入的一个代码扫描工具...
    凯玲之恋阅读 24,017评论 2 38
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 12,246评论 16 22
  • 创业是很多人的梦想,多少人为了理想和不甘选择了创业来实现自我价值,我就是其中一个。 创业后,我由女人变成了超人,什...
    亦宝宝阅读 5,888评论 4 1
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    余生动听阅读 13,619评论 0 11

友情链接更多精彩内容