专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Android Studio使用Gradle引入第三方库文件时发生了什么

一、Android Studio中Gradle是如何从仓库上获取一个library库文件的

在 build.gradle输入如下代码的时候,这些库是如何奇迹般下载到我们的项目中的呢。举个例子:

compile 'com.squareup.picasso:picasso:2.5.2'

1、library库文件的字符串结构

一般来说,需要知道library的字符串形式,包含3部分:GROUP_ID:ARTIFACT_ID:VERSION

上面的例子中,GROUP_ID是com.squareup.picasso ,ARTIFACT_ID是picasso,VERSION是2.5.2。

  • GROUP_ID定义了library的group。有可能在同样的上下文中存在多个不同功能的library。如果library具有相同的group,那么它们将共享一个GROUP_ID。通常我们以开发者包名紧跟着library的group名称来命名,比如com.squareup.picasso。
  • ARTIFACT_ID是library的真实名称。
  • VERSION是版本包,可以是任意文字,建议设置为x.y.z的形式,如果喜欢还可以加上beta这样的后缀。

下面是Square library的一个例子。可以看到每个都可以很容易的分辨出library和开发者的名称。

dependencies {
  compile 'com.squareup:otto:1.3.7'
  compile 'com.squareup.picasso:picasso:2.5.2'
  compile 'com.squareup.okhttp:okhttp:2.4.0'
  compile 'com.squareup.retrofit:retrofit:1.9.0'
}

2、在添加了上面的依赖之后会发生什么呢?

Gradle会询问Maven仓库服务器这个library是否存在:如果存在,Gradle会获得请求library的路径,一般这个路径都是这样的形式:GROUP_ID/ARTIFACT_ID/VERSION_ID。比如可以在 http://jcenter.bintray.com/com/squareup/otto/1.3.7https://oss.sonatype.org/content/repositories/releases/com/squareup/otto/1.3.7/ 下获得com.squareup:otto:1.3.7的library文件。 这时Android Studio 将这些文件下载到我们的电脑上,与我们的项目一起编译。整个过程就是这么简单,一点都不复杂。

二、Android Studio中Gradle下载的library库文件在硬盘上的存放位置

现在应该清楚的知道从仓库上下载的library只是存储在仓库服务器上的jar 或者aar文件而已。就像自己去下载这些文件,拷贝到工程里和项目一起编译。但是使用Gradle依赖管理的最大好处是,除了添加几行文字之外啥也不做,library一下子就可以在项目中使用了。

1、那么这些library库文件被Gradle下载下来放到什么位置了呢

在Android Studio中的”External Libraries”下有引用的library的列表, 选择某个library右键->”Library Properties”就可以看到你引用的库本地的存放路径了, 如下图:

58_1.png

2、aar文件

仓库中存储的有两种类型的library库文件:jar和aar。jar文件很熟悉了,什么是aar文件呢?

aar文件是在jar文件之上开发的。之所以有它是因为有些Android Library需要植入一些安卓特有的文件,比如AndroidManifest.xml,资源文件,Assets或者JNI。这些都不是jar文件的标准。

总的来说它和jar一样只是普通的zip文件,不过具有不同的文件结构。jar文件以classes.jar的名字被嵌入到aar文件中。

58_2.pngaar文件包括资源文件和布局文件,但jar没有,所以aar文件是专门为安卓设计的。

文章永久链接:https://tech.souyunku.com/27669

未经允许不得转载:搜云库技术团队 » Android Studio使用Gradle引入第三方库文件时发生了什么

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们