我想删除所有未使用的布局,字符串,绘图,颜色等从我的Android res目录。是否有任何工具可以给我一个文件列表,我可以从我的存储库中删除特定文件中的元素(例如未使用的字符串条目),这些文件不再使用?


当前回答

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

其他回答

检查string.xml。

这很简单(至少在我的Eclipse版本中)

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

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

现在当打开strings.xml时,您将看到未使用的字符串被高亮显示。

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

当我们定义收缩资源为真时,我们也可以定义哪些资源我们想保留,哪些不保留 我已经在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/布局名来删除布局 如果该drawable已被layout使用,那么....

Android Wear开发者注意:“Remove Unused Resources”将删除你声明能力名称的xml文件(res/values/ Wear .xml),手机将无法连接到手表。我花了好几个小时才找出应用程序中的这个漏洞。

在Android Studio中运行Lint并找到所有未使用的资源后,您可以从Inspection选项卡中单击其中一个。它提供了关于该问题的一些详细信息以及修复该问题的一些选项。其中之一是删除所有未使用的资源。选择该选项将删除所有未使用的资源。

Android的Gradle构建系统支持“资源收缩”:自动删除未使用的资源,在构建时,在打包的应用程序中。除了删除项目中在运行时实际上不需要的资源外,这也会删除你所依赖的库中的资源,如果它们不是你的应用程序实际需要的话。

要启用此功能,在gradle文件中添加行shrinkResources true。

   android {
        ...

        buildTypes {
            release {
                minifyEnabled true //Important step
                shrinkResources true
            }
   }
}

查看这里的官方文件,

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