问题描述
|
我想从我的Android res目录中删除所有未使用的布局,字符串,可绘制对象,颜色等。是否有任何工具可以给我列出文件,并且可以从存储库中删除不再使用的特定文件(例如,未使用的字符串条目)中的元素?
解决方法
您可以轻松地从Android Studio中搜索未使用的资源。只需按CtrlAltShifti并键入\“未使用的资源\”(不带引号)。这将执行皮棉。运行lint命令(以及IDE中的其他内容)的超级简单方法。
要么
在Android Studio菜单中>重构>删除未使用的资源...
选择要删除的资源。您可以通过右键单击资源项来排除要保留的资源。
使用“执行重构”一次删除所有资源。
更新:为Mac使用⌘OptionShifti
, 从ADT 16开始,您可以使用Android Lint。这真的是一个了不起的工具。
Android Lint是ADT 16(和工具16)的新工具,可扫描Android项目源中的潜在错误。
以下是一些其查找的错误类型的示例:
缺少翻译(和未使用的翻译)
布局性能问题(所有旧的layoutopt工具用来查找的问题,等等)
未使用的资源
数组大小不一致(在多个配置中定义了数组时)
可访问性和国际化问题(硬编码字符串,缺少contentDescription等)
图标问题(例如密度丢失,图标重复,尺寸错误等)
可用性问题(如未在文本字段中指定输入类型)
清单错误等。
但是,它存在一些问题(不知道它们是否已解决),并且是否要删除数百个所谓的未使用资源,建议您在删除资源期间多次手动编译项目,以确保Lint没有删除所需的内容。
, 由于对Eclipse中ADT的支持已经结束,因此我们必须使用Android Studio。
在Android Studio 2.0+中,使用
Refactor > Remove Unused Resources...
, 适用于Android的Gradle构建系统支持“资源缩减”:在构建时会自动删除打包应用中未使用的资源。除了删除项目中在运行时实际不需要的资源之外,这还将从您所依赖的库中删除资源,如果您的应用程序实际上不需要这些资源。
要启用此功能,请在gradle文件中添加一行rinkleResources true。
android {
...
buildTypes {
release {
minifyEnabled true //Important step
shrinkResources true
}
}
}
在此处查看官方文档,
http://tools.android.com/tech-docs/new-build-system/resource-shrinking
, 我们开放源代码的工具,可根据lint输出删除android项目中所有未使用的资源。
可以在这里找到:https://github.com/KeepSafe/android-resource-remover
, 运行皮棉时,请注意是否使用多种口味。棉绒可能会提供错误的未使用资源,具体取决于您选择的口味。
, 在Android Studio 2.0及更高版本中
在菜单中选择“重构”->单击“删除未使用的资源...”。
(要么)
快捷方式也可用
按Ctlr + Alt + Shift + i
将出现一个对话框,然后键入未使用的,
您会找到很多选择
选择并删除未使用的资源
, 在Android Studio中,
分析->按名称运行检查
(对于Mac快捷键shift + command + option + i,在Windows / Linux上为Ctrl + Shift + A)。
并输入“未使用的资源”。
这样,您可以删除未使用的资源,变量,符号,本地化,库等。
从列表中选择所需的检查,然后选择检查范围->确定
, Android Wear开发人员注意:\“删除未使用的资源\”将删除您在其中声明功能名称(res / values / wear.xml)的xml文件,并且手机将无法连接到手表。我花了几个小时试图找出我的应用程序中的错误。
, 要检查string.xml。
很简单(至少在我的Eclipse版本中)
在Eclipse for Android中(我的版本是v22.6.2-1085508)
在\“ Package Explorer \”中的项目名称上单击鼠标左键
选择\“ Android工具\”。
选择“运行Lint:检查常见错误”。
现在,当您打开strings.xml时,您将看到未使用的字符串突出显示。
您可以解决其他潜在问题。
,也许有用
Andround未使用的资源是一个Java应用程序,它将扫描您的项目中是否有未使用的资源。未使用的资源不必要地占用空间,增加了构建时间,并且使IDE的自动完成列表变得混乱。
要使用它,请确保您的工作目录是Android项目的根目录,然后运行:
java -jar AndroidUnusedResources.jar
https://code.google.com/p/android-unused-resources/
, 当我们定义收缩资源为真时,我们还可以定义我们要保留哪些资源,哪些不保留
我已经在res / raw文件夹中添加了名为keep.xml的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名称删除布局
如果该可绘制对象已被布局使用,等等。
, 这里有非常好的答案,建议使用好的工具
但是,如果您打算删除png-drawables(或其他图像文件),则还应考虑将所有drawable-xxxx文件夹从项目中移出到临时文件夹中,然后进行全部重建,并查看构建情况消息列表,它将告诉您缺少哪些。
如果您想概述有效使用的资源,并可能用图标字体或svg资源替换它们,可能需要借助Android Iconics库,此功能特别有用。
, Android Assets Viewer旨在帮助视觉检查.apk中打包的图形(作为可绘制对象)(如果您愿意,也可以仅上传res文件夹的zip文件):
http://www.cellebellum.net/AndroidAssetsViewer/
因此,对于删除未使用的资源,这可能与Lint检查配合使用,可以帮助确保应该存在的所有内容。它还可以帮助您确定可绘制对象的其他一些潜在问题:错误的存储桶,错误的图形等。
, 在Android Studio中运行Lint并找到所有未使用的资源后,可以从“检查”选项卡中单击其中之一。它提供了有关该问题的一些详细信息以及一些修复此问题的选项。其中之一是“删除所有未使用的资源”。选择该选项将删除所有未使用的资源。