从android项目中删除所有未使用的资源

我想从我的Android res目录中删除所有未使用的布局,字符串,drawables,颜色等。 有什么工具可以给我一个文件列表,我可以从我的存储库中删除和不再使用的特定文件(如未使用的字符串条目)中的元素?

您可以轻松地从Android Studio中搜索未使用的资源。 只要按Ctrl + Alt + Shift + 键入“ 未使用的资源 ”(不含引号)。 这将执行lint。 超级简单的方法如何运行lint命令(和其他东西从IDE)。

要么

Android Studio – > 菜单 – > 重构 – > 删除未使用的资源…

选择您要删除的资源。 您可以通过右键单击资源项目来排除要保留的资源。

使用重构一次删除所有资源。

更新:为mac使用cmd + Alt + Shift

从ADT 16开始,您可以使用Android Lint 。 这真是了不起的工具。

Android Lint是ADT 16(和Tools 16)的一个新工具,它可以扫描Android项目源以查找潜在的错误。

以下是它寻找的错误类型的一些例子:

  • 缺少翻译(和未使用的翻译)
  • 布局性能问题(旧的layoutopt工具用来查找的所有问题,以及更多)
  • 未使用的资源
  • 不一致的数组大小(当在多个配置中定义数组时)
  • 可访问性和国际化问题(硬编码字符串,缺少内容描述等)
  • 图标问题(如缺少密度,重复图标,大小错误等)
  • 可用性问题(如在文本字段中未指定输入类型)
  • 清单错误等等。

然而,它有一些问题(不知道他们是否已经修复),如果你想删除数百个被认为是未使用的资源,我建议在资源删除过程中多次手动编译项目,以确保Lint没有删除需要的东西。

由于Eclipse中对ADT的支持已经结束,我们必须使用Android Studio。

在Android Studio 2.0+使用Refactor > Remove Unused Resources...

在这里输入图像描述

Android的Gradle构建系统支持“资源缩小”:在打包的应用程序中自动删除未使用的资源。 除了删除项目中运行时实际不需要的资源外,还会从库中删除资源,这取决于应用程序是否确实需要这些资源。

要启用它,请在您的gradle文件中添加行shrinkResources true。

  android { ... buildTypes { release { shrinkResources true } } } 

在这里查看官方文档,

http://tools.android.com/tech-docs/new-build-system/resource-shrinking

我们开源的工具,基于lint输出,删除您的Android项目中的所有未使用的资源。 它可以在这里找到: https : //github.com/KeepSafe/android-resource-remover

小心运行lint时是否使用了多种口味。 Lint可能会根据您选择的风味提供虚假的未使用的资源。

检查string.xml。

这很容易(至少在我的Eclipse版本中)

在Eclipse的Android(我有版本v22.6.2-1085508)

  • 在“包资源管理器”中左键单击项目名称
  • 选择“Android工具”。
  • 选择“运行Lint:检查常见错误”。

现在当你打开strings.xml时,你会看到未使用的字符串被突出显示。

您可以修复其他潜在的问题。

也许有用的Andround未使用的资源是一个Java应用程序,将扫描您的项目未使用的资源。 未使用的资源不必要地占用空间,增加构建时间,并混乱IDE的自动完成列表。

要使用它,请确保您的工作目录是Android项目的根目录,然后运行:

java -jar AndroidUnusedResources.jar

https://code.google.com/p/android-unused-resources/

在Android Studio 2.0及以上版本的菜单中,选择Refactor – >点击Remove Unused Resources …

(要么)

快捷方式也可用

Ctlr + Alt + Shift +我会弹出一个对话框,然后输入unused ,你会发现有多个选项可供选择并删除未使用的资源

注意Android Wear开发人员 :“删除未使用的资源”将删除声明功能名称(res / values / wear.xml)的xml文件,手机将无法连接到手表。 我花了几个小时试图找出我的应用程序中的这个错误。

Android资源查看器旨在帮助您可视化地检查您的.apk文件(如drawables)(如果您愿意,也可以上传res文件夹的zip文件):

http://www.cellebellum.net/AndroidAssetsViewer/

因此,为了消除未使用的资源,这可能与Lint检查一起工作良好,以帮助确保应该在那里的一切。 它还可以帮助您识别可绘制的其他几个潜在问题:错误的桶,错误的图形等

在Android Studio中运行Lint并查找所有未使用的资源之后,可以从“检查”选项卡中单击其中一个。 它提供了一些关于这个问题的细节和几个解决方法。 其中之一是删除所有未使用的资源。 选择该选项将删除所有未使用的资源。

这里有非常好的答案,建议好的工具

但是,如果您打算删除png-drawables(或其他图像文件 ),则还应该考虑将所有drawable-xxxx文件夹移出项目到临时文件夹,然后重建所有内容,并查看构建消息列表将告诉你哪些是丢失。

如果您想了解您正在有效使用哪些资源,并可能使用Android Iconics库的帮助来替换图标字体或svg资源,这可能特别有用。

当我们定义缩减资源时,我们也可以定义我们想要保留哪些资源,哪些不是我在res / raw文件夹中添加了xml文件,名为keep.xml

之前进一步生成一个单一的签署建设和检查apk分析工具,这将显示drawable-xhdpi-v4 messenger_button_send_round_shadow.png我想要删除此测试

 <?xml version="1.0" encoding="utf-8"?> <resources xmlns:tools="http://schemas.android.com/tools" tools:shrinkMode="strict" tools:discard="@drawable/com_facebook_button_icon_blue.png, @drawable/com_facebook_button_icon_white.png, @drawable/com_facebook_button_like_icon_selected.png, @drawable/messenger_button_send_round_shadow.png, @drawable/messenger_*" /> 

通过做messenger_ *所有文件从名称messenger开始在可绘制的文件夹将被删除或其他方式是我已经定义特定的文件被删除

这样,你可以自己从库中删除文件,你也可以通过@ layout / layout name来移除布局,如果这个drawable已经被layout使用,那么….

例如,未使用的资源lint检查不适用于Kotlin代码。 你应该按下(右键)在您的水库(绘制,布局等)的每个文件,并选择“ Find Usages ”。

PS稍后当android lint将从AST移动到UAST时(同时支持KotlinJava ), 请稍后解决 – https://groups.google.com/forum/#!topic/lint-dev/7nLiXa04baM