我是靠谱客的博主 娇气黑猫,最近开发中收集的这篇文章主要介绍AndroidStudio之如何引入和使用aar包一. 简介二. 如何得到aar三. 如何使用aar四. LeakCanary项目示例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一. 简介

aar是一个类似于jar的文件格式。但是他们之间是有区别的。jar:仅仅包含class和清单文件,没有资源文件。aar:包含了class文件和资源文件。说白了就是Android的专属“jar”

将代码打包成aar文件,可以在一定程度上加快AndroidStudio的速度。尤其是将Module打包成aar文件,提升的效果很显著。

二. 如何得到aar

1. Module的aar文件

将一个AndroidStudio项目中的Module打包成aar其实很简单。在每一个Module的目录下面都会有这样一个文件夹:buildoutputsaar。这个文件夹下面就放着这个Module对应

 

aar文件。一般情况下会有两个aar文件,一个debug版本,一个release版本。我们选择release的就ok。

 

  

AAR文件图示

注意:新建的Module是没有这个文件夹的。这时,你可以使用 两种方法 生成这个文件夹

  1. 将整个项目运行一遍,这个文件夹会自动生成
  2. 执行命令 ** ./gradlew assembleRelease** 也可以生成这个文件夹

Module中的libs目录文件会随着项目的编译被打包进aar文件中,但是build.gradle中的引用库不会打包进aar文件中,这个需要 特别留意。如果你忽略了这个Module的build.gradle中的引用库,很可能引发ClassNotFoundException异常。

2. 远程仓库的aar

在项目里面经常会引用一下远程仓库的依赖库。这时,我们也可以将它以aar的形式引入到项目中。这个依赖库的aar其实也很好找。当你配置好一个依赖库以后,点击 Sync Now 。AndroidStudio会自动下载这个库到C盘(windows)。你找到这个文件就可以了。这里我使用的是Everything进行搜索,很方便就找到这个库的下载文件夹。其他操作系统就自行搜索吧,总之找见这个项目的下载文件夹就ok。这个下载文件夹中包含了这个项目所需要的所有东西:包括aarjar等文件。

后面会以一个例子详细讲解这个过程

注:Everything是一个搜索软件,可以瞬间搜索全盘。是一个非常实用的软件。但是很可惜只有windows版本。官网地址:https://www.voidtools.com/

三. 如何使用aar

想要使用aar文件,需要经过以下几步:

1. 在app的build.gradle中加入以下配置

 
  1. repositories {

  2. flatDir {

  3. dirs 'libs' // aar目录

  4. }

  5. }

2. 将aar文件拷贝到app/libs目录下

3. 在dependencies中加入aar引用

compile(name: 'zbar-release', ext: 'aar')

四. LeakCanary项目示例

因为Module的例子比较简单,所以选择远程代码库作为示例。
这里使用一个经常使用的内存检测项目LeakCanary来做一个示例。
我们通常使用依赖来使用这个库:

 
  1. debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3'

  2. releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3'

Sync Now完成后,我们可以在C盘(windows)找见这个项目文件夹。
该项目文件夹截图如下:

 

LeakCanary项目示例图

 

这个文件夹下面就有我们需要的两个依赖库:leakcanary-androidleakcanary-android-no-op

点开leakcanary-android文件夹,目录结构如下(1.3是对应的版本号):

 

leakcanary-android文件夹

 

打开最里层的文件夹,你会发现文件的类型主要有三种:

 

jar文件:有的项目是以jar文件形式提供
aar文件:有的项目是以aar文件形式提供
pom文件: (Project Object Model),实际上就是个xml,是对一些必要信息的说明。这里我们只关心一个节点信息: <dependencies>:声明依赖列表

我们用文本编辑器打开 leakcanary-android文件夹下面的pom文件:

 

 
  1. ...

  2. <dependencies>

  3. <dependency>

  4. <!--包组 id,通常是发布者拥有的域名的反向,以免跟别人的重复-->

  5. <groupId>com.squareup.leakcanary</groupId>

  6. <!--包 artifactId,其实就是组以下应该有一个更小的归类-->

  7. <artifactId>leakcanary-analyzer</artifactId>

  8. <!--版本号-->

  9. <version>1.3</version>

  10. <scope>compile</scope>

  11. </dependency>

  12. </dependencies>

  13. ...

 

想更多了解pom文件,点击这里

当我们打开leakcanary-android的pom文件,
我们发现leakcanary-android依赖于leakcanary-analyzer的1.3版本。

同样的的我们打开leakcanary-analyzer 的pom文件,
发现leakcanary-analyzer依赖leakcanary-watcherhaha

leakcanary-watcherhaha则没有依赖任何东西。

这样整个leakcanary-android导入本地的东西就是四个:

  1. leakcanary-android
  2. leakcanary-analyzer
  3. leakcanary-watcher
  4. haha

同样的方式去一层一层解析leakcanary-android-no-op,将所有需要的文件都导入到AndroidStudio中。这样整个LeakCanary就被我们真正实现本地化了。

两种结果对比如下:

 
  1. debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3'

  2. releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3'

 
  1. debugCompile(name: 'leakcanary-android-1.3', ext: 'aar')

  2. compile files('libs/leakcanary-analyzer-1.3.jar')

  3. compile files('libs/leakcanary-watcher-1.3.jar')

  4. compile files('libs/haha-1.1.jar')

  5. releaseCompile(name: 'leakcanary-android-no-op-1.3', ext: 'aar')

这样就将整个LeakCanary项目完全转换成了本地的依赖。

最后

以上就是娇气黑猫为你收集整理的AndroidStudio之如何引入和使用aar包一. 简介二. 如何得到aar三. 如何使用aar四. LeakCanary项目示例的全部内容,希望文章能够帮你解决AndroidStudio之如何引入和使用aar包一. 简介二. 如何得到aar三. 如何使用aar四. LeakCanary项目示例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部