close
当前位置: 物联网在线 > 技术文库 > android >

AndroidStudio之如何使用aar

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。

AndroidStudio之如何使用aar

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)找见这个项目文件夹。

该项目文件夹截图如下:

AndroidStudio之如何使用aar

LeakCanary项目示例图

这个文件夹下面就有我们需要的两个依赖库: leakcanary-android 和 leakcanary-android-no-op
点开 leakcanary-android文件夹 ,目录结构如下( 1.3是对应的版本号 ):

AndroidStudio之如何使用aar

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 就被我们真正实现本地化了。


(责任编辑:ioter)

用户喜欢...

使用Android Studio开发可独立运行(runnable)混淆过的Jar程序

之前开发Java程序一直都是使用Eclipse 开发Jar程序,现在开发基本上都已经弃用Eclipse了,但是有时偶尔开发个小的Jar程序,还要切换回去好麻烦,刚好前几天有人问几个相关的问题,就顺便整...


如何解决 Android Studio 上远程依赖包重复的问题(com.android.dex.DexException)

你们是不是会经常遇到这样的一个错误:com.android.dex.DexException: Multiple dex files define XXXX,一般情况下,是我们项目中引用了重复的库或者jar包引起的,我们找到去掉即可解决,但是如果你远程...


Android Studio使用小技巧,只能说666

一般的什么快捷键,技巧的文章也有很多。我也看过很多。下面这些事我在来自国外大神发布的:Android Studio Tips of the Day( https://plus.google.com/u/0/collection/wtO0PB )查看到的,而且对于我来说有...


android studio 使用gradle打jar包并混淆

昨天准备把写好的代码使用gradle打jar包出来,并打算加混淆。打jar包容易,结果在混淆上走了弯路。 首先打jar包的配置很简单,使用jar的task,具体代码如下: task buildJar(type: Jar, dependsOn: ['...


用AndroidStudio开发自定义 Gradle plugin

利用AndroidStudio,编写自定义Gradle plugin MavenDeployer 发布plugin 使用Gradle plugin 简介 项目中引入自定义Gradle plugin一般有三种方法: 直接写在 build.gradle中. plugin源码放到rootProjectDir/buildSrc/src/main/groo...


详解如何使用代码进行音频合成,以Java为示例语言,以Android为示例平台

音频合成在现实生活中应用广泛,在网上可以搜索到不少相关的讲解和代码实现,但个人感觉在网上搜索到的音频合成相关文章的讲解都并非十分透彻,故而写下本篇博文,计划通过讲解如何...


Android应用性能优化之使用SparseArray

最近在看一些Android应用性能优化的文章时,发现提到了SparseArray替代HashMap可以优化app性能,就对SparseArray做了一番了解,并记录使用心得。 我们来看看SparseArray点击进去包含了那些方法 ////...


Android线程,线程池使用及原理博文参考

这块的知识可以说是一大块,要撸清楚还是要花点时间,线程池中关联到的队列不仅在线程池中使用,在各种第三方网络框架和图片框架等等中也是通过自己调度队列来实现异步。有关理论的东西...


手把手教你AndroidStudio多渠道打包

最近不断有朋友向我咨询AndroidStudio多渠道的打包方法,今天整理一下之前积累的打包套路,写一篇文章,手把手的教给大家。 说到多渠道,这里不得不提一下友盟统计,友盟统计是大家日常...


Android滑动效果是如何产生的

相对于Android2.X版本中常见的长按、点击操作,滑动的操作方式具有更好的用户体验性。因此,从Android4.X版本开始,滑动操作就大量出现在了Android系统中,各种第三方应用也竞相模仿这种效果...