2012-06-12 34 views
2

自從一段時間以來,我正在使用一個包含大量可重用代碼的庫項目。這樣,如果有錯誤,我只能在一個地方修復它。該項目還包含一堆資源。它包含所有這些東西並不是一個真正的問題,因爲在大多數項目中,我幾乎都使用它們。如何僅編譯已使用的資源

現在我正在研究一個非常小的項目,並且還使用我的庫項目。但我只需要它的一小部分,並且我的想法是,java編譯器足夠聰明,知道我需要什麼類和資源。那麼,直到我看到完整軟件包的文件大小......經過一些反編譯後,我發現我的庫項目中沒有使用的所有資源也被編譯到apk中。

所以,現在我的問題是,有沒有辦法告訴android編譯器,它應該忽略不使用的資源?

+0

我也希望工具鏈能夠自動放棄鏈接的Android庫項目中未使用的資源。在這種情況下手動操作並不簡單,Lint也無濟於事。我不想癱瘓或創建我的圖書館的縮減副本。以下是Android問題跟蹤器網站上的功能請求:http://code.google.com/p/android/issues/detail?id=25254 – tiguchi

回答

0

嘗試使用類似Proguard的工具。除此之外,它還能夠檢測未使用的類,字段等,從而實現更小的封裝尺寸。

從它的功能集的摘錄:

ProGuard是一個免費的Java類文件收縮機,優化,混淆和預校驗。它檢測並刪除未使用的類,字段,方法和屬性。它優化字節碼並刪除未使用的指令。 (...)

編輯:還有一個專門用於Android的優化器,名爲DeXGuard

+0

感謝您提供關於Proguard的提示。我前段時間嘗試過,但是我發現它並沒有刪除未使用的圖像,只是在R類中引用它。我想實現的是,如果可能,圖像也將被刪除... – Arne517

+0

要刪除未使用的資源,請嘗試使用[Android Lint](http://tools.android.com/tips/) lint)工具。 – Neo

+1

Lint僅在存在未使用的資源時發出警告。它不會從apk中刪除它們。 (或者我錯過了什麼地方?) 由於我正在使用多個應用程序中使用的庫項目,因此我不能只刪除它中的資源。 – Arne517