android - aar 对比 "plain module"的优势

标签 android android-gradle-plugin aar library-project

如果我有一个链接了许多库项目的项目,我可以通过将每个库项目打包到 AAR 中并将其包含在主项目中来提高构建性能吗?或者这不会有任何区别,因为当编译器需要组装 apk 时,它无论如何都需要将所有东西打包在一起?

感谢任何能给我一些关于这两种方法之间性能差异的澄清的人

最佳答案

我不认为通过将现有的 .jar 文件包装到 .aar 文件中并使用它来代替原始的 .jar 文件可以节省任何构建时间。

作为this SO post notes, .aar 文件基本上只是 zip 文件,其中可能包含一个 jar 文件和一些 android 资源。

此外,由于 .aar 文件未预编译为 Dalvik 字节代码,因此 apk 文件的构建过程仍必须至少执行一次该步骤。因此,仅通过将 .jar 文件包装到 .aar 文件中也不会节省 dexing 时间。

如果您构建一个典型的 Android Studio 项目(在 gradle 构建文件中指定了一些 Android 库依赖项),您可以在 app/build/intermediates/exploded-aar 下看到这些文件已解压缩的目录。即使您使用的是 .aar 文件,该工作仍必须由您的构建机器完成。

最后,正如您所指出的,.apk 打包工作仍然必须在构建结束时完成。

关于android - aar 对比 "plain module"的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38313710/

相关文章:

java - ACR122U - 传输 APDU 时出现 InvalidDeviceStateException

android - 无法将 aar 导入 android studio 中的库项目

android - 修改 Android .aar 文件内容/转换为 .zip 格式

java - 使用Gradle无法解析Aar库的传递依赖

android - 构建 android apk 时的 transformClassesWithMultidexlistForDevDebug & ClassNotFoundException

android - 如何修复 android Studio 4.1.1 中的 aapt2 错误?

android - 什么时候使用 Android Activity ?

android - 无法在 android 中使用 AlarmManger 停止服务

android - 使用 Android 相机应用程序以与启动时不同的方向拍照后应用程序崩溃

java - Gradle 没有从存储库中拉取 .jar