问题:
android工程在迭代一定的时间后,总有一些多余的资源和代码,如何删除其中不需要的代码以及资源文件就成了一定的问题。当然手动删除肯定时一种办法,这里给出一种通过android的lint工具以及github上的开源框架实现的自动删除的方法。可以实现瞬间删除不需要的资源以及代码。
准备工作:
1 环境需求:
python>=2.7.*
adt>=16 (android studio 忽略)
2 android-resource-remover
2 安装
pip install android-resource-remover(如果没有pip的话,先安装pip)
开始优化
1对于非gradle工程
先cd到你的工程根目录
然后执行 android-resource-remover --lint /home/renlei/soft/code/sdk/tools/lint
其中lint前面的路径时sdklint的目录,也可以采用配置环境来给lint配置一个环境
执行后的结果
git一下可以看见没有用的资源都被删除了,并且生成了一个lint-result.xml的文件。
2对于gradle工程
配置build.gradle加入
lintOptions { abortOnError false }
选择run--> edit configuration在右侧的最下方点击加号 ,添加一个run gradle task任务
选择需要执行lint任务的工程 tasks 直接输入lint就可以
点击ok run工程,自己的工程的build/outputs/会生成三个lint的文件,
】
最后执行 android-resource-remover --xml app/build/outputs/lint-results.xml
即可删除所有没有用的资源以及代码
这里有几点需要注意
其一是在执行之前最好对自己的工程进行一次备份,或者有个版本控制,因为lint以及脚本都没有那么的精确,有时候会多删除一两个文件或者一两行代码都是很正常的
其二是在删除完一次后,可以在重复的多删除几次,因为一次并不能全部都删除完毕,建议执行4次左右