一. 简介
aar 是一个类似于 jar 的文件格式。但是他们之间是有区别的。
jar :仅仅包含class和清单文件,没有资源文件。
aar :包含了class文件和资源文件。说白了就是AndroID的专属“jar”
将代码打包成aar文件,可以在一定程度上加快 AndroIDStudio 的速度。
尤其是将 Module 打包成 aar 文件,提升的效果很显著。
二. 如何得到aar
1. Module的aar文件
将一个AndroIDStudio项目中的 Module 打包成 aar 其实很简单。
在每一个 Module 的目录下面都会有这样一个文件夹: build\outputs\aar 。
这个文件夹下面就放着这个 Module 对应的 aar 文件。
一般情况下会有两个 aar 文件,一个 deBUG 版本,一个 release 版本。
我们选择 release 的就ok。
AAR文件图示
注意:
新建的Module是没有这个文件夹的。这时,你可以使用 两种方法 生成这个文件夹
将整个项目运行一遍,这个文件夹会自动生成
执行命令 ./gradlew assembleRelease 也可以生成这个文件夹
2. 远程仓库的aar
在项目里面经常会引用一下远程仓库的依赖库。
这时,我们也可以将它以 aar 的形式引入到项目中。
这个依赖库的aar其实也很好找。
当你配置好一个依赖库以后,点击 Sync Now 。
AndroIDStudio会自动下载这个库到C盘(windows)。你找到这个文件就可以了。
这里我使用的是 Everything 进行搜索,很方便就找到这个库的下载文件夹。其他 *** 作系统就自行搜索吧,总之找见这个项目的下载文件夹就ok。
这个下载文件夹中包含了这个项目所需要的所有东西:包括 aar 、 jar 等文件。
后面会以一个例子详细讲解这个过程
注:
Everything是一个搜索软件,可以瞬间搜索全盘。
是一个非常实用的软件。但是很可惜只有windows版本。
官网地址: https://www.voidtools.com/
三. 如何使用aar
想要使用aar文件,需要经过以下几步:
1. 在app的build.gradle中加入以下配置
repositorIEs { flatDir { dirs 'libs' // aar目录 }}
2. 将aar文件拷贝到app/libs目录下
3. 在dependencIEs中加入aar引用
compile(name: 'zbar-release',ext: 'aar')
四. LeakCanary项目示例
因为Module的例子比较简单,所以选择远程代码库作为示例。
这里使用一个经常使用的内存检测项目 LeakCanary 来做一个示例。
我们通常使用依赖来使用这个库:
deBUGCompile 'com.squareup.leakcanary:leakcanary-androID:1.3'
releaseCompile 'com.squareup.leakcanary:leakcanary-androID-no-op:1.3'
当 Sync Now 完成后,我们可以在C盘(windows)找见这个项目文件夹。
该项目文件夹截图如下:
LeakCanary项目示例图
这个文件夹下面就有我们需要的两个依赖库: leakcanary-androID 和 leakcanary-androID-no-op
点开 leakcanary-androID文件夹 ,目录结构如下( 1.3是对应的版本号 ):
leakcanary-androID文件夹
打开最里层的文件夹,你会发现文件的类型主要有三种:
jar文件 :有的项目是以jar文件形式提供 aar文件 :有的项目是以aar文件形式提供 pom文件 : (Project Object Model),实际上就是个xml,是对一些必要信息的说明。这里我们只关心一个节点信息: <dependencIEs>:声明依赖列表我们用文本编辑器打开 leakcanary-androID文件夹 下面的pom文件:
...<dependencIEs> <dependency> <!--包组 ID,通常是发布者拥有的域名的反向,以免跟别人的重复--> <groupID>com.squareup.leakcanary</groupID> <!--包 artifactID,其实就是组以下应该有一个更小的归类--> <artifactID>leakcanary-analyzer</artifactID> <!--版本号--> <version>1.3</version> <scope>compile</scope> </dependency></dependencIEs>...
想更多了解pom文件, 点击这里
当我们打开 leakcanary-androID 的pom文件,
我们发现 leakcanary-androID 依赖于 leakcanary-analyzer 的1.3版本。
同样的的我们打开 leakcanary-analyzer 的pom文件,
发现 leakcanary-analyzer 依赖 leakcanary-watcher 和 haha 。
leakcanary-watcher 和 haha 则没有依赖任何东西。
这样整个leakcanary-androID导入本地的东西就是四个:
leakcanary-androID leakcanary-analyzer leakcanary-watcher haha同样的方式去一层一层解析 leakcanary-androID-no-op ,将所有需要的文件都导入到AndroIDStudio中。这样整个 LeakCanary 就被我们真正实现本地化了。
两种结果对比如下:
deBUGCompile 'com.squareup.leakcanary:leakcanary-androID:1.3'
releaseCompile 'com.squareup.leakcanary:leakcanary-androID-no-op:1.3'
deBUGCompile(name: 'leakcanary-androID-1.3',ext: 'aar')
compile files('libs/leakcanary-analyzer-1.3.jar')
compile files('libs/leakcanary-watcher-1.3.jar')
compile files('libs/haha-1.1.jar')
releaseCompile(name: 'leakcanary-androID-no-op-1.3',ext: 'aar')
这样就将整个LeakCanary项目完全转换成了本地的依赖。
http://www.jianshu.com/p/59efa895589e
总结
以上是内存溢出为你收集整理的AndroidStudio 如何使用aar详解全部内容,希望文章能够帮你解决AndroidStudio 如何使用aar详解所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)