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

Ste*_*ice 346 android android-resources

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

bak*_*kua 661

您可以轻松地从Android Studio搜索未使用的资源.只需按,CtrlAltShifti然后键入" 未使用的资源 "(不带引号).这将执行lint.运行lint命令(以及IDE中的其他内容)的超级简单方法.

要么

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

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

使用Do Refactor立即删除所有资源.

更新:使用AltShifti的Mac

  • cmd + Alt + Shift for mac (48认同)
  • 请注意,使用此方法还将删除以编程方式使用的任何资源. (22认同)
  • 打破了我的整个项目......不是这么明智的举动 (17认同)
  • 使用AS 3.0,此功能删除一些使用过的布局文件.在尝试之前,最好进行备份或git提交. (7认同)
  • @MikeMilla右键单击要删除的文件,然后单击"应用Lint修复"选项.要一次删除多个文件,请选择它们. (5认同)
  • 你如何快速删除所有这些? (2认同)
  • 请注意:最新AS 3.0中的Android lint会将字符串资源报告为未使用,如果它仅用于数据出价代码中的布局文件中,则为:"<TextView android:text ="@ {localizationManager.getString(R. string.OK)}"对这个建议要非常小心! (2认同)
  • 注意:它将删除使用绑定的视图。 (2认同)
  • 它也会删除数据绑定中使用的资源。不推荐。你可能会破坏你的项目 (2认同)

And*_*yeu 97

从ADT 16开始,您可以使用Android Lint.这真是太神奇了.

Android Lint是ADT 16(和工具16)的新工具,它可以扫描Android项目源中的潜在错误.

以下是它查找的错误类型的一些示例:

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

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

  • 在Android Studio中,您可以使用"分析">"检查代码..."来查找许多内容,包括**未使用的声明和方法**. (60认同)
  • 但是如何删除它们呢? (41认同)
  • 我不会非常依赖Lint提出的未使用资源,特别是如果你在代码中而不是在xml中进行大量资源查找.在这种情况下,Lint会发现很多资源在实际使用时没有被使用. (10认同)
  • 例如,如果要使用命令行:`lint --check UnusedResources <project-path>` (8认同)

die*_*ter 39

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

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

在此输入图像描述

  • 似乎这种方式会删除编程中使用的资源 (2认同)

Pro*_*kar 37

Android的Gradle构建系统支持"资源缩减":在打包的应用程序中自动删除构建时未使用的资源.除了删除项目中在运行时实际不需要的资源之外,如果应用程序实际上不需要它们,这也会从您依赖的库中删除资源.

要启用此功能,请在gradle文件中添加line shrinkResources true.

   android {
        ...

        buildTypes {
            release {
                minifyEnabled true //Important step
                shrinkResources true
            }
   }
}
Run Code Online (Sandbox Code Playgroud)

查看官方文档,

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

  • shrinkResources需要proguard才能启用.我有能力proguard的问题:-( (2认同)

phi*_*ipp 16

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


MRo*_*ues 14

请注意,如果在运行lint时使用多种口味.根据您选择的风味,Lint可能会提供错误的未使用资源.


Reh*_*han 12

1--> 在

\n
\n

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

\n
\n

如下图所示:

\n

在此输入图像描述

\n

**

\n
\n

或者

\n
\n

**

\n

2--> 第二种方式

\n

-> Ctrl Alt Shift i并在 Windows 中输入“未使用的资源”(不带引号)

\n

->对于 mac使用\xe2\x8c\x98 Option Shift i

\n

或者

\n

-> 对于 Mac,cmd + Alt + Shift

\n


Ram*_*h R 7

在Android Studio 2.0及更高版本的菜单中选择Refactor - >点击删除未使用的资源...

(要么)

快捷方式也可用

Ctlr + Alt + Shift + i将显示 一个对话框,然后键入未使用的,您将找到选项数量选择并删除未使用的资源


Lin*_*uis 6

在Android Studio中,

分析->按名称运行检查

(对于Mac快捷键shift + command + option + i,在Windows / Linux上为Ctrl + Shift + A)。

并输入“未使用的资源”。

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

从列表中选择所需的检查,然后选择检查范围->确定 在此处输入图片说明


ste*_*osf 5

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