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

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

211412 次浏览

从ADT 16开始,你可以使用Android线头。这真是个神奇的工具。

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

下面是一些它查找的错误类型的例子:

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

然而,它有一些问题(不知道它们是否已经修复),如果你想删除数百个据称未使用的资源,我建议在资源删除期间手动编译项目几次,以确保Lint没有删除所需的东西。

Android Assets Viewer的设计是为了帮助视觉检查图形包装(作为绘图)在你的。apk(你也可以只是上传一个压缩文件你的res文件夹,如果你喜欢):

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

因此,对于删除未使用的资源,这可能与Lint检查一起工作,以帮助确保应该在那里的所有东西。它还可以帮助你识别绘图的其他一些潜在问题:错误的桶,错误的图形,等等。

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

要使用它,确保你的工作目录是你的Android项目的根目录,并运行:

java -jar AndroidUnusedResources.jar

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

检查string.xml。

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

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

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

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

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

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

你可以很容易地从Android Studio搜索未使用的资源。只需按CtrlAlt转变并键入“未使用的资源”(不带引号)。将执行lint。超级简单的方法运行lint命令(和其他东西从IDE)。

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

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

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

对于mac, 更新:使用选项转变

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

如果你在使用多种香料时要小心。根据你所选择的口味,棉绒可能会给出虚假的未使用的资源。

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

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

enter image description here

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

在Android Studio 2.0以上 在菜单中选择Refactor—>,点击Remove Unused Resources

(或)

同时提供快捷方式

按<强> Ctlr + Alt + Shift +我 一个对话框将出现,然后输入未使用的, 你会发现有很多选择 选择并删除未使用的资源

这里有非常棒的答案,提供了很好的工具

但如果你打算删除png-drawables(或其他图像文件),你也应该考虑将所有drawable-xxxx文件夹从你的项目中移到一个临时文件夹中,然后重新构建所有文件夹,并查看构建消息列表,它会告诉你哪些文件夹丢失了。

如果你想要获得你正在有效使用的资源的概述,并可能用图标字体或svg资源替换它们,这可能是在Android标志性库的帮助下特别有用。

当我们将收缩资源定义为true时,我们还可以定义哪些资源想要保留,哪些不保留 我已经在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”将删除你声明能力名称(res/values/wear.xml)的xml文件,手机将无法连接到手表。我花了好几个小时才找出应用程序中的这个漏洞。

在Android Studio中,

Analyze ->按名称执行巡检

(Mac的快捷方式shift+command+option+i, Windows/Linux的Ctrl + shift+ A)。

并输入'unused resources'。

这样你就可以删除未使用的资源、变量、符号、本地化、库等。

从列表中选择巡检项,选择巡检范围->OK enter image description here < / p >

shift双击Windows,然后输入“unused”,你会发现选项Remove unused Resources

 android {
buildTypes {
release {
minifyEnabled true
shrinkResources true
}
}
}

当您设置这些设置时,AS将自动删除未使用的资源。

1——比;在

Android Studio菜单>重构的在移除未使用的资源

如下图:

enter image description here

**

**

2——比;第二种方式

Ctrl Alt Shift i并输入“未使用的资源”;(不带引号)

→mac使用⌘Option Shift i

→cmd + Alt + Shift for mac