Android studio再改程序代码压缩器轻松提升程序代码压缩速度

196 阅读3分钟

Android studio 3.3已经进入Beta2阶段,比起3.2版本除了新增了分析内存配置追踪选项外,Android App Bundles也开始支持Instant Apps,建置系统也做了更新,预设使用SDK建置工具28.0.3,另外,还换掉程序代码压缩器Proguard改使用R8。网络大厂持续在降低Android应用程序容量的工作上耕耘,从Android studio 3.2开始支持Android新的发布格式Android App Bundle,让用户安装应用程序,只需要下载装置需要的部分,以大幅减少应用程序容量。而现在网络大厂更让R8成为Android studio中的预设程序代码压缩器。

程序代码压缩可以移除未使用的程序代码和资源,以减少APK的容量,让实际程序代码占用更少的空间,网络大厂提到,这是他们投放资源在程序代码缩减上的原因。新的程序代码压缩器R8能够一步到位进行程序代码压缩、脱糖(Desugaring)以及Dexing,与之前的程序代码压缩器Proguard相比,不只能降低输出的大小,执行速度也更快了。开发者现在可以在Android Studio 3.3 Beta中,让R8搭配Proguard规则使用,不过,也有R8与Proguard不兼容的完整模式,而这将启用更多的优化功能,能更进一步加速执行速度,减少更多应用程序容量。

而为了让Android studio进行分析时,改善应用程序效能,开发者现在可以选取实时内存分配追踪模式,分为完整、抽样以及关闭三种模式,完整模式会捕捉所有对象内存分配,因此当开发者的应用程序使用了许多对象,在分析时会历经严重的效能问题。而开发者可以选择抽样模式,以固定时间抽样捕捉对象的内存分配,而这将成为目前的默认选项,也是在分析时,对应用程序效能影响较小的选项。当然开发者也可以关闭内存配置,而这个选项将在进行CPU纪录时自动启用。

在Android Studio 3.2中开始支持的Android App Bundles,在3.3中完整支持Instant Apps,让使用者免安装就能直接执行应用程序,也就是说开发者现在可以在单一Android Studio项目,同时建构安装应用程序以及Instant Apps,并将他们包在同一个App Bundles中。网络大厂也更新了Android studio 3.3的建置系统,新的SDK建置工具预设更新到了28.0.3。当使用批注处理器时,提升了增量Java编译的效能,在包含Kotlin程序代码的项目中,预设启用增量Java编译,而在只有Java的项目,当批注处理器支持增量批注处理,则预设启用Java编译,但当一个以上批注处理器不支持,则不会启用增量Java编译。另外,也改进了类别路径的相依性同步,Android studio在解析Runtime和编译时类别路径的相依关系时,Android Gradle插件会尝试修复多重类别路径中的依赖关系,以解决下游版本的冲突。Android Gradle现在也使用新的任务配置API,避免不执行的任务,在Gradle配置阶段进行创建和配置产生的成本,这使得插件在建构每个模块变体时,可以减少工作量。部分相关信息:乐彩爱公益 pctchp.org.tw/