2012-05-07 43 views
2

每次我添加一個庫到我的Android項目時,編譯過程變慢。 有沒有辦法緩存(庫)dex文件,所以每次只有應用程序重新編譯?理想情況下,構建過程應檢查庫JAR是否已更改,如果尚未更改,應重新使用預先存在的dex文件。Android:使用預編譯的庫?

我正在使用nbandroid,但我認爲Eclipse構建遭受同樣的問題。

回答

0

Android SDK中的構建過程(特別是在dex步驟中)(無論使用哪個IDE)非常不靈活。 dx.jar據我所知的唯一命令的用法類似下面的東西:

[INFO] C:\ Program Files文件\的Java \ jdk1.6.0_21 \ jre的\ BIN \ java中-Xmx1024M,罐子,C:\ Program Files \ Android \ android-sdk \ platform-tools \ lib \ dx.jar,--dex,--output = C:\ workspace \ myproject \ target \ classes.dex,C:\ workspace \ myproject \ target \ classes ,C:\工作區\ MyProject的\庫\共lib.jar,......

從這裏可以看到外部JAR庫,編譯的類在項目生成時間dexed。

有沒有辦法緩存(庫)dex文件,所以只有應用程序每次重新編譯?

Jar庫得到了dexed,每次構建項目時都不會被Android SDK重新編譯。我不認爲Android SDK提供了dx.jar的另一個命令用法,您可以使用它來只將合併類沒有外部jar庫,然後合併到預先存在的classes.dex(可能是從上次生成的)中。

但是,在項目構建時不可能這樣做,但是,它可能是脫離主題的,但您可能對此感興趣blog討論了在運行時動態加載jar庫,值得檢查一下。

0

我正在使用Eclipse,並有2-3MB庫的一些項目,沒有注意到任何放緩,除非編譯和簽署最後的APK與proguard。看起來Eclipse不會每次重新編譯庫。

+0

我正在使用最新的IDE和SDK,並且每次更新我自己的源代碼後,我都會將應用程序推送到設備,因此我的外部罐子總是處於dx處理狀態。 –