AndroidStudio 如何使用aar详解_Android

一. 简介

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文件夹

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

  1. jar文件 :有的项目是以jar文件形式提供
  2. aar文件 :有的项目是以aar文件形式提供
  3. 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导入本地的东西就是四个:

  1. leakcanary-android
  2. leakcanary-analyzer
  3. leakcanary-watcher
  4. 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

 

 

 

 

 

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, androidstudio
, arr
, 如何使用aar
使用arr
android studio aar、androidstudio打包aar、androidstudio生成aar、androidstudio引用aar、androidstudio导入aar,以便于您获取更多的相关知识。

时间: 2024-08-29 07:31:11

AndroidStudio 如何使用aar详解_Android的相关文章

AndroidStudio 如何使用aar详解

一. 简介 aar 是一个类似于 jar 的文件格式.但是他们之间是有区别的. jar :仅仅包含class和清单文件,没有资源文件. aar :包含了class文件和资源文件.说白了就是Android的专属"jar" 将代码打包成aar文件,可以在一定程度上加快 AndroidStudio 的速度. 尤其是将 Module 打包成 aar 文件,提升的效果很显著. 二. 如何得到aar 1. Module的aar文件 将一个AndroidStudio项目中的 Module 打包成 a

android 网络请求库volley方法详解_Android

使用volley进行网络请求:需先将volley包导入androidstudio中 File下的Project Structrue,点加号导包   volley网络请求步骤:       1. 创建请求队列       RequestQueue queue = Volley.newRequestQueue(this);       2.创建请求对象(3种)                            StringRequest request = new StringRequest("

百度语音识别(Baidu Voice) Android studio版本详解_Android

百度语音识别(Baidu Voice) Android studio版本       已同步更新至个人blog:http://dxjia.cn/2016/02/29/baidu-voice-helper/       最近在一个练手小项目里要用到语音识别,搜索了一下,比较容易集成的就算Baidu voice跟讯飞语音了,baidu提供了直接可以使用的显示控件,而讯飞需要自己实现,另外baidu提供每天5W次的调用频率,对于我来说足够使用啦.所以就选择使用Baidu Voice(控件会有baidu

Android开发实现带有反弹效果仿IOS反弹scrollview教程详解_Android

首先给大家看一下我们今天这个最终实现的效果图:   这个是ios中的反弹效果.当然我们安卓中如果想要实现这种效果,感觉不会那么生硬,滚动到底部或者顶部的时候.当然 使用scrollview是无法实现的.所以我们需要新建一个view继承ScrollView package davidbouncescrollview.qq986945193.com.davidbouncescrollview; import android.annotation.SuppressLint; import androi

Android 原始资源文件的使用详解_Android

背景知识介绍与其他平台的应用程序一样,Android中的应用程序也会使用各种资源,比如图片,字串等,会把它们放入源码的相应文件夹下面,如/res/drawable, /res/xml, /res/values/, /res/raw, /res/layout和/assets.Android也支持并鼓励开发者把UI相关的布局和元素,用XML资源来实现.总结起来,Android中支持的资源有:•颜色值                 /res/values               以resourc

Android实现自定义轮播图片控件详解_Android

首先上效果图 实现原理 要完成一个轮播图片,首先想到的应该是使用ViewPager来实现.ViewPager已经有了滑动的功能,我们只要让它自己滚动.再加上下方的小圆点就行了.所以我们本次的自定义控件就是由ViewPager和LinearLayout叠加起来组成的. 一.创建一个自定义的ViewPager 先上完整的代码 package com.kcode.autoscrollviewpager.view; import android.content.Context; import andro

Android编程输入事件流程详解_Android

本文实例讲述了Android编程输入事件流程.分享给大家供大家参考,具体如下: EventHub对输入设备进行了封装.输入设备驱动程序对用户空间应用程序提供一些设备文件,这些设备文件放在/dev/input里面. EventHub扫描/dev/input下所有设备文件,并打开它们. bool EventHub::openPlatformInput(void) { ... mFDCount = 1; mFDs = (pollfd *)calloc(1, sizeof(mFDs[0])); mDev

Android自定义控件eBook实现翻书效果实例详解_Android

本文实例讲述了Android自定义控件eBook实现翻书效果的方法.分享给大家供大家参考,具体如下: 效果图: Book.java文件: package com.book; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.ImageView; public class Book extend

Android编程实现自定义手势的方法详解_Android

本文实例讲述了Android编程实现自定义手势的方法.分享给大家供大家参考,具体如下: 之前介绍过如何在Android程序中使用手势,主要是系统默认提供的几个手势,这次介绍一下如何自定义手势,以及如何对其进行管理. 先介绍一下Android系统对手势的管理,Android系统允许应用程序把用户的手势以文件的形式保存以前,以后要使用这些手势只需要加载这个手势库文件即可,同时Android系统还提供了诸如手势识别.查找及删除等的函数接口,具体如下: 一.加载手势库文件: staticGestureL