2011-09-25 47 views
16

將Google Guava r09添加到我們的Android項目後,構建時間顯着增加,尤其是DEX生成階段。我明白,DEX世代需要我們所有的類+我們所依賴的所有jar,並將它們轉換爲DEX格式。番石榴是一個相當大的瓶子1.1MB左右將Google Guava添加到Android項目中 - 顯着降低構建效果

  1. 它可能是建設放緩的原因?
  2. 有什麼可以做到加快速度?

附:通常我從Intellij構建,但我也嘗試用Maven構建 - 同樣的結果。

感謝

亞歷

+0

我也注意到了這一點。添加番石榴使我的構建花費約30秒而不是約8秒。 – goncalossilva

+0

我已經分開了我從番石榴使用的課程。這有助於減少我的構建時間。不幸的是,除非Guava傢伙決定將圖書館分成更小的模塊,否則這是加速開發構建的唯一途徑。 – AlexV

回答

12

對於它的價值,我的直覺是,這不是原因。只需要1.1MB的字節碼很難花費很長時間;我從來沒有注意到dex需要花很多時間。但讓我們假設這是爭論的問題。

如果它足夠重要,你可能會切片番石榴.jar刪除整個包,你不使用。它由幾部分組成,不一定都是相互關聯的。

我不認爲這會加快速度,但也許值得一提:如果您運行通過Proguard的(現在捆綁了SDK優化器)構建,它可以刪除未使用的類你到DEX之前(並且對字節碼進行一系列其他優化)。但當然,這個過程本身可能需要更長的時間而不是分配。

+0

我試着切我需要了類,但相當快發現自己有40類和計數,除了它的醜陋:) 使用ProGuard的事情是,我還沒有找到一種方法來將其嵌入的IntelliJ構建。謝謝。 – AlexV

+0

提及Proguard +1,即使花費時間也是值得的(至少在這種情況下) – Premraj

+1

@AlexV:你能不能手動運行ProGuard來找出需要哪些類?我敢打賭,它不會累到數到40 ... – maaartinus

相關問題