2011-10-06 97 views
7

我使用过去创建的android应用程序的源代码作为另一个应用程序的基础(很多功能类似,但是大约有1/3的原始应用程序的功能被删除)。如何清理Android项目?

我通过复制源代码树并将新项目导入Eclipse工作区开始。之后,我删除了一些布局和可绘制文件以及几个.java文件 - 这些在新应用程序中显然不需要。

最后,我编译并测试了新的应用程序。现在我想通过删除几乎没有使用的所有东西来更彻底地清理项目。

寻找新应用程序中未使用的所有XML和图像文件,Java文件,字符串和颜色资源的最佳方法是什么?通过“未使用”,我的意思是它们没有被任何正在执行的应用程序代码引用(从主要活动开始,转到从其引用的所有其他文件,从这些文件引用的文件 - 等等)。

该项目包含数百个Drawable(其中许多版本具有HDPI,MDPI和LDPI版本),大约一百个左右的布局以及几十个不同包中的一千个Java文件。因此,逐个检查它们不是一种选择。

编辑2012年3月:最新版本的android SDK的lint工具很好地识别未使用的资源。问题是过滤来自我得到的数百条其他消息中未使用资源的消息。当我在我的中型项目上运行链接时,我收到了超过3000条警告,其中大部分我都不想做任何事情,因为lint无法分析我在代码中使用XML布局执行的操作。

回答

2

退房http://code.google.com/p/android-unused-resources/

它是开源的,在积极发展,并创建/一个伟大的开发维护。

+0

这看起来像一个伟大的工具。在第一次运行中,它告诉我它找到了111个未使用的资源。他们中的大多数看起来像是真的没有用过。我对他们中的一些人有些怀疑,所以会手动检查。 –

+0

是的,有一些可能被错误地评估。我认为这些大部分仅限于具有父级风格的样式。 –

0

AFAIK,这里没有自动化工具。我也搜索了一种方法来检测未使用的资源,并得出结论,没有任何工具。另外,您正在讨论未使用的Java文件,我认为这些文件更难完成(实际检测哪些活动/服务/接收器/提供程序实际使用等是很困难的)。

我建议通过项目树勾画出您怀疑不再使用的资源和类,并删除那些不会出现在任何地方的资源和类。