最近我的团队致力于更新我们的 AGP,因为我们已经严重落后,并且将 fullMode 设置为 R8 的默认选项,我们遇到了一些有关构建时间的问题。在本地构建应用程序的干净发布版本大约需要 15 分钟,但在我们的 CI 机器上,混淆过程需要更长的时间(最多一个小时)。运行代码的机器并不比我们的工作机器差,而且我们无法确定问题到底出在哪里,因为 R8 忽略了 Proguard 的 -verbose 选项。
我可以执行哪些故障排除步骤以获得有关此问题根本原因的更多信息?
可以通过设置系统属性让R8测量编译管道每个阶段所花费的时间
-Dcom.android.tools.r8.printtimes
,例如
./gradlew assembleRelease --no-daemon -Dcom.android.tools.r8.printtimes
这会将计时报告打印到标准输出。基于此,您可以在 R8 上提出问题,我们可以看看是否有突出问题。
我们最近根据 Monzo 应用程序的发现进行了一些优化,请参阅https://issuetracker.google.com/378464445。您可以尝试更新到 R8 8.9.21,看看它是否对您的应用程序有帮助。请参阅在 Android Gradle 插件中替换 R8 了解如何执行此操作。