如何清理Android项目?

7
我使用过去创建的安卓应用程序的源代码作为另一个应用程序的基础(许多功能相似,但原始应用程序的约1/3功能已被删除)。
我首先复制源代码树并将新项目导入Eclipse工作区。然后,我删除了一些布局和可绘制文件以及一些java文件 - 显然不需要在新应用程序中的文件。
最后,我编译和测试了新应用程序。现在我想通过删除几乎所有未使用的内容来对项目进行更彻底的清理。
什么是查找所有未在新应用程序中使用的XML和图像文件、Java文件、字符串和颜色资源的最佳方法?通过“未使用”,我的意思是它们没有从任何执行应用程序代码(从主活动开始,转到从中引用的所有其他文件,从那些文件引用的文件 - 以此类推)中引用。
该项目包含数百个可绘制对象(其中许多具有HDPI、MDPI和LDPI版本),大约100个布局和近千个位于十几个不同包中的Java文件。因此,逐个检查它们不是一个选项。
编辑于2012年3月:最新版的Android SDK的lint工具很好地识别了未使用的资源。问题是从我得到的数百条其他消息中过滤出有关未使用资源的消息。当我在我的中型项目上运行链接时,我收到了超过3000条警告,其中大多数我不打算采取任何措施,因为lint无法分析我在代码中如何使用XML布局。
2个回答

2

这看起来是一个很棒的工具。第一次运行时,它告诉我发现了111个未使用的资源。其中大部分看起来确实没有被使用。但是我对其中几个有些怀疑,所以会手动检查一下。 - Aleks G
是的,有一些可能被错误评估。我认为大多数都限于具有父样式的样式。 - Mike dg

0
据我所知,目前没有自动化工具可以实现这一点。我也曾经搜寻过检测未使用资源的方法,并得出结论:目前并无相关工具。另外,您提到了未使用的Java文件,我认为这更难实现(实际上很难检测到哪些活动/服务/接收器/提供者真正被使用)。我的建议是,在项目树中通过grep查找您怀疑不再使用的资源和类,然后删除那些没有任何地方出现的内容。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接