2011-10-06 80 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文件,我認爲這些文件更難完成(實際檢測哪些活動/服務/接收器/提供程序實際使用等是很困難的)。

我建議通過項目樹勾畫出您懷疑不再使用的資源和類,並刪除那些不會出現在任何地方的資源和類。