一個關于安卓打包提速的小改進
作為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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!