图书馆与图书馆项目与外部图书馆的区别

Agg*_*sor 7 android jar gradle android-studio android-gradle-plugin

在Android Studio IDE中,您可以添加.jar文件.您还可以添加" 库项目 "的整个项目.此外,还有Android库(来自Gradle)作为外部库添加.

.罐 罐子

图书馆计划 图书馆计划

外部图书馆 外部图书馆

我明白了.jars就是这样.但是,为什么需要添加其他库(库项目),这些库具有自己的整个构建文件(如gradle,res,src等).而且进一步使我的理解变得复杂,Gradle下载的那些被添加为"外部库",并且具有.jar文件和res文件夹.

你能解释为什么库可以添加为.jar,整个项目或外部库吗?

Gab*_*tti 4

您能否解释一下为什么库可以添加为 .jar、整个项目或外部库?

你有不同的可能性,因为你可以有不同的情况。通常该库是由其他团队构建的,您无法决定它如何分发。

  • 您可以在本地拥有自己的库或分支。在这种情况下,您拥有代码,并且可以将此库添加为模块

在这种情况下,只需添加module/build.gradle

apply plugin: 'com.android.library'
Run Code Online (Sandbox Code Playgroud)

并在主项目中添加依赖项,例如:

dependencies{
  compile project(':module')
}
Run Code Online (Sandbox Code Playgroud)
  • 您可以使用Maven 依赖项。在本例中,有人将库上传到 Maven 存储库中。
    目前我认为这是最好的解决方案。

在这种情况下,只需在您的项目中添加依赖项

dependencies{
  compile 'group:name:version'
}
Run Code Online (Sandbox Code Playgroud)

这个依赖可以是aar文件,也可以是jar文件。
您还可以在公共或私人 Maven 中发布您自己的库。

  • 您可以在项目中添加aar文件

在这种情况下,定义您的平面存储库:

repositories {
    flatDir {
        dirs 'libs'
    }
}
Run Code Online (Sandbox Code Playgroud)

并添加依赖项:

dependencies {
   compile(name:'nameOfYourAARFileWithoutExtension', ext:'aar')
 }
Run Code Online (Sandbox Code Playgroud)
  • 您可以在项目中添加jar文件

在这种情况下,通常可以将所有 jar 放在 libs 文件夹中并添加依赖项:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}
Run Code Online (Sandbox Code Playgroud)