一個關于安卓打包提速的小改進

AshlyParnel 7年前發布 | 4K 次閱讀 軟件開發 Android開發 移動開發

作為App開發者,打包和發包是經常要進行的工作。鑒于國內的特殊情況,造就了不可勝舉的應用市場。為了便于跟蹤統計必要的數據信息,我們通常會針對每個市場都進行打包。這些包總的來說幾乎是一致的,可能唯一的的差別就是渠道號信息不一樣。

Flipboard中國版本目前覆蓋了大概10幾個渠道,目前唯一不同的就是渠道號信息。

最早的實現方式為

buildConfigField "String", "CHANNEL_ID", null == versionProps['CHANNEL_ID'] ? /""/ : '"' + versionProps['CHANNEL_ID'] + '"'

上述實現的缺點有

  • 無法在manifest中配置包含渠道號信息的meta數據
  • 會導致每次重新編譯代碼,以及后續的多次Proguard優化,相對很耗時。打包時間將近4分鐘

后來改進的方式為

resValue "string", "channel_id", null == versionProps['CHANNEL_ID'] ? /""/ : '"' + versionProps['CHANNEL_ID'] + '"'

新的實現解決了上面的兩個問題

  • 可以在manifest中實現配置渠道號信息
  • 無需重新編譯源碼,也無需后續的proguard的代碼優化。只更新resource資源即可。打包時間縮短到14秒左右。

經過如此一個小改動,從此我們不再需要漫長的等待和浪費機器性能。

 

來自:http://droidyue.com/blog/2017/02/19/a-little-improvement-for-speeding-up-gradle-building-apks/

 

 本文由用戶 AshlyParnel 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!