返回
经过优化,Android项目构建速度可从130秒缩短至17秒!
Android
2023-10-24 11:42:12
加快APK构建速度,如何把编译时间从130秒降到17秒(二) #
本文紧接上一篇文章《加快APK构建速度,如何把编译时间从130秒降到17秒》,讲述了初步优化的思路与实现,经过一段时间的优化,性能和稳定性都有很大提高,感谢大家提出的建议以及Github上的issue。本文主要介绍主要优化的点、新功能以及填补的坑。
Android中的可编译脚本
在之前修改了library工程中Library代码的组织方式,让多个module可以编译一个aar。这种方法也存在一些局限性:
- 在Android中,gradle不能用来生成非Java代码(XML、Java资源等),因此我们无法从library的gradle脚本中生成这些代码。
- 在Android中,gradle脚本是由Android Studio维护的,如果有人编辑了Android Studio中的build.gradle脚本,我们的修改会被覆盖。
- 只针对library模块优化,没法优化其他模块。
所以在后续工作中,我们设计了Android的可编译脚本(简称ACS)。ACS是用来生成非Java代码和资源的,从而优化构建速度。
ACS的工作原理
ACS是一个Gradle脚本插件,可以生成Android资源和代码。它包括两个部分:
- 一个生成器脚本,用于生成代码和资源。
- 一个Gradle脚本插件,用于将生成器脚本集成到Gradle构建过程中。
使用ACS,可以将Android项目的构建过程分为两个阶段:
- 生成阶段:ACS生成代码和资源。
- 构建阶段:Gradle构建项目。
将Android项目的构建过程分为两个阶段,可以大大提高构建速度,因为在生成阶段,Gradle只需要生成一次代码和资源,而在构建阶段,Gradle只需要将生成的代码和资源打包成APK文件。
使用ACS优化项目
要使用ACS优化项目,需要执行以下步骤:
- 安装ACS插件。
- 在项目的build.gradle脚本中应用ACS插件。
- 创建一个ACS生成器脚本。
- 在ACS生成器脚本中,生成代码和资源。
- 运行Gradle构建项目。
ACS插件可以从Gradle插件仓库下载,也可以从Github上下载。ACS生成器脚本可以放在项目中的任何位置,但通常放在src/main/acs目录下。
ACS的优势
ACS具有以下优势:
- 提高构建速度:ACS可以将Android项目的构建过程分为两个阶段,从而大大提高构建速度。
- 提高稳定性:ACS将代码和资源的生成与Gradle构建过程分开,从而提高了构建的稳定性。
- 提高灵活性:ACS可以生成任何类型的代码和资源,因此可以用于优化任何类型的Android项目。
ACS的不足
ACS也存在一些不足:
- 学习曲线陡峭:ACS是一个新的工具,因此需要一些时间来学习如何使用。
- 兼容性问题:ACS目前只支持Gradle 4.0及更高版本,并且只支持Android Studio 3.0及更高版本。
结语
ACS是一种可以大大提高Android项目构建速度的工具。它简单易用,可以与任何类型的Android项目一起使用。如果您正在寻找一种方法来提高项目的构建速度,那么ACS是一个很好的选择。