我想删除所有未使用的布局,字符串,绘图,颜色等从我的Android res目录。是否有任何工具可以给我一个文件列表,我可以从我的存储库中删除特定文件中的元素(例如未使用的字符串条目),这些文件不再使用?
当前回答
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
其他回答
当我们定义收缩资源为真时,我们也可以定义哪些资源我们想保留,哪些不保留 我已经在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使用,那么....
检查string.xml。
这很简单(至少在我的Eclipse版本中)
在Eclipse for Android(我有版本v22.6.2-1085508)
在“包资源管理器”中左键单击项目名称 选择“Android Tools”。 选择“运行Lint:检查常见错误”。
现在当打开strings.xml时,您将看到未使用的字符串被高亮显示。
您可以修复其他潜在的问题。
这里有非常棒的答案,提供了很好的工具
但如果你打算删除png-drawables(或其他图像文件),你也应该考虑将所有drawable-xxxx文件夹从你的项目中移到一个临时文件夹中,然后重新构建所有文件夹,并查看构建消息列表,它会告诉你哪些文件夹丢失了。
如果你想要获得你正在有效使用的资源的概述,并可能用图标字体或svg资源替换它们,这可能是Android Iconics库的帮助,这可能是特别有用的。
也许有用 Andround Unused Resources是一个Java应用程序,它会扫描你的项目中未使用的资源。未使用的资源会不必要地占用空间,增加构建时间,并使IDE的自动完成列表变得混乱。
要使用它,确保你的工作目录是你的Android项目的根目录,并运行:
java -jar AndroidUnusedResources.jar
https://code.google.com/p/android-unused-resources/
Android Studio 2.0及以上版本 在菜单中选择Refactor—>单击Remove Unused Resources…
(or)
同时提供快捷方式
我按Ctlr + Alt + Shift + 一个对话框将弹出,然后输入未使用的, 你会发现有很多选择 选择并删除未使用的资源
推荐文章
- 警告:API ' variable . getjavacompile()'已过时,已被' variable . getjavacompileprovider()'取代
- 安装APK时出现错误
- 碎片中的onCreateOptionsMenu
- TextView粗体通过XML文件?
- 如何使线性布局的孩子之间的空间?
- DSL元素android.dataBinding。enabled'已过时,已被'android.buildFeatures.dataBinding'取代
- ConstraintLayout:以编程方式更改约束
- PANIC: AVD系统路径损坏。检查ANDROID_SDK_ROOT值
- 如何生成字符串类型的buildConfigField
- Recyclerview不调用onCreateViewHolder
- Android API 21工具栏填充
- Android L中不支持操作栏导航模式
- 如何在TextView中添加一个子弹符号?
- PreferenceManager getDefaultSharedPreferences在Android Q中已弃用
- 在Android Studio中创建aar文件