Android依赖关系:apklib vs aar文件

从我的理解, apklib包含与Maven共享的代码+资源。 aar文件由Gradle分发。

aaraar区别主要在于:类被编译并包含在aar的根目录下的classes.jar中。 而apklib不能包含编译的类文件或jar子。

1有人可以解释apklibaar文件之间的主要区别吗?

2 Maven可以使用aar吗? Gradle能使用apklib吗?

3哪种格式“更好”?

  • Android Gradle构build中不使用libs文件夹中的jar文件
  • Android Studio Update 0.4.0找不到buildConfig()
  • 如何查看项目中使用的Gradle Android插件版本?
  • 致命exception:java.lang.NoClassDefFoundError:android.support.v7.appcompat.R $ layout
  • 为什么Android Gradle preDexDebug“源和目标必须不同”构build失败?
  • 由于强迫使用android SDK构build工具25.0.0 SDK构build工具版本(23.0.3)对于项目来说太低
  • 在android studio中创build新项目时出错
  • 使用AndroidAnnotations与Scala和Gradle
  • 1有人可以解释apklib与AAR文件之间的主要区别吗?

    在我看来,夫妻之间的差异,除了你所说的:

    1. aar可以不包含源代码和libs文件夹内的java jar,以防您不想提供源代码(如Google Play Services);
    2. aar可以包含自定义proguard文件和自定义lint规则,虽然我不确定他们现在是否考虑到。

    2 Maven可以使用aar吗? Gradle能使用apklib吗?

    Android Maven插件自3.7.0版本开始支持aar 。 Gradle不支持使用apklib依赖关系,但你可以导出你的android-library作为apklib (见这篇文章 )。