一个关于安卓打包提速的小改进
<p>作为App开发者,打包和发包是经常要进行的工作。鉴于国内的特殊情况,造就了不可胜举的应用市场。为了便于跟踪统计必要的数据信息,我们通常会针对每个市场都进行打包。这些包总的来说几乎是一致的,可能唯一的的差别就是渠道号信息不一样。</p> <p>Flipboard中国版本目前覆盖了大概10几个渠道,目前唯一不同的就是渠道号信息。</p> <p>最早的实现方式为</p> <pre> buildConfigField "String", "CHANNEL_ID", null == versionProps['CHANNEL_ID'] ? /""/ : '"' + versionProps['CHANNEL_ID'] + '"' </pre> <p>上述实现的缺点有</p> <ul> <li>无法在manifest中配置包含渠道号信息的meta数据</li> <li>会导致每次重新编译代码,以及后续的多次Proguard优化,相对很耗时。打包时间将近4分钟</li> </ul> <p>后来改进的方式为</p> <pre> resValue "string", "channel_id", null == versionProps['CHANNEL_ID'] ? /""/ : '"' + versionProps['CHANNEL_ID'] + '"' </pre> <p>新的实现解决了上面的两个问题</p> <ul> <li>可以在manifest中实现配置渠道号信息</li> <li>无需重新编译源码,也无需后续的proguard的代码优化。只更新resource资源即可。打包时间缩短到14秒左右。</li> </ul> <p>经过如此一个小改动,从此我们不再需要漫长的等待和浪费机器性能。</p> <p> </p> <p>来自:http://droidyue.com/blog/2017/02/19/a-little-improvement-for-speeding-up-gradle-building-apks/</p> <p> </p>
本文由用户 AshlyParnel 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
转载本站原创文章,请注明出处,并保留原始链接、图片水印。
本站是一个以用户分享为主的开源技术平台,欢迎各类分享!