2011-07-25 78 views
10

我只是想知道,我正在設計一個庫,以便與我的Android項目一起使用。現在我開始包含諸如apache FTP jar之類的東西來支持一些調試文件上傳。我知道不是所有的項目都會使用庫的所有部分(例如,某些項目根本沒有FTP上傳,但想要使用庫中的UI工具)。Proguard是否會刪除未使用的代碼(在Android上)

現在我有三個問題:

  1. 不Proguard的去除unsused源(自己的代碼),例如像我的UI工具類,如果它們永遠不是來自主項目的引用 - 這意味着不在應用程序中使用。

  2. 如果從未使用過,Proguard會刪除外部庫(例如apache ftp jar)。如果沒有,我可以包括來源,如果選項1適用。例如:我使用存儲在庫項目中的默認標記編寫谷歌地圖擴展插件。如果我不需要地圖,那麼這些文件會包含在每個Android項目中 - 並且有一種簡單的方法可以防止這種情況發生。

更多背景:我試圖儘可能長時間地將所有圖書館資料保存在一個項目中。我不知道分割圖庫的好處,所以我不想過分地爲所有東西創建獨立的庫(過去是這樣做的,而且大部分時間都是模塊化的方式)...

感謝您的任何見解, 克里斯

+1

「Desinging」聽起來像:-) –

+0

該死的德國人...我們得到了很多-ing和一個有趣的過程,通常沒有-ign - 校正orthograpic愛好者:-) –

回答

9

不Proguard的去除unsused來源

它嘗試,在正確配置。

如果從未使用過,Proguard會刪除外部庫(例如apache ftp jar)。

它試圖,如果配置正確。

怎麼樣資源文件(不是真的Proguards工作,更IntelliJ或Eclipse) - 例如:我使用默認標記,存儲在庫項目中編寫谷歌地圖擴展。如果我不需要地圖,那麼這些文件會包含在每個Android項目中 - 並且有一種簡單的方法可以防止這種情況發生。

+0

所以在我的庫中包含源代碼和jar包沒有區別。大多數罐子都提供了源代碼,但如果我正確理解你的答案,只要我弄清楚如何正確使用Proguard,就沒有什麼好處。包括Apache公共資源與罐子。 –

+0

@Christian:對。在任何情況下,Proguard都無法使用源代碼AFAIK - 它不依賴於.class文件。 – CommonsWare

+0

@CommonsWare如果你已經添加了一個基本的例子如何正確配置它將是很好的。 – rekire

相關問題