Android Studio 如何打包和引用 aar

原创 2016年08月30日 17:02:52
文章将会讲解android studio中如恶化打包和引用aar的问题

这边文章来自个人网易博客,直接复制到SCDN。为什么图片都显示不出来呢(很纠结)。

欢迎大家我的网易博客

http://bgwan.blog.163.com/blog/static/239301016201673035518338/
文章将会讲解android studio中如恶化打包和引用aar的问题

首先:

jar包与aar包的区别

  • jar是java字节码文件(class文件)的归档文件,其不包含android中的资源文件等信息;

  • aar是android中特有的归档文件,既包含字节码文件也包含android的资源文件等;

关于如何打包jar的请自行google。
1。构建项目
要输出aar的包,必须将项目配置成library 。
Android Studio 打包及引用 aar - Nakama - Bgwan
 
在gradle文件中进行输出AAR。如下
apply plugin: 'com.android.library'

如果需要输出apk文件则是下面这个样子:

apply plugin: 'com.android.application'

将 Module 配置为 library 后,构建输出一个 aar 文件,根据渠道和 BuildType 的不同,在相应的目录下可以找到。比如对 BuildType 为 debug 的配置,输出为:[ModuleName]/build/outputs/aar/[ModuleName]-debug.aar。一份 aar 文件其实就是一份 zip 包,和 jar 不同的是,它将一些资源文件、第三方库文件、so 文件等等都打包在内,而代码文件编译后压缩在在 classes.jar 中。

2。 运行输出AAR包。

aar在想对应的module这个文件下面,如图。

Android Studio 打包及引用 aar - Nakama - Bgwan

 

3。导入aar项目。

这种方式比较简单,打开一个project struture ,添加一个新 Module,然后选择 Import *.JAR or *.AAR Package 的方式导入:

Android Studio 打包及引用 aar - Nakama - Bgwan

 导入成功以后就可以在project目录中看到刚刚导入的项目了,里面有awaarssnst-debug.aar这个文件,和android studio ,以及gradle的配置文件。如图

Android Studio 打包及引用 aar - Nakama - Bgwan

然后,就可以在 gradle 中配置依赖了,其他 Module 可以引用这个 Module 了,依赖方式使用 compile project 的方式即可。

缺点:如果没有原项目,被依赖的 aar 无法 F3 跟进去,无法看到资源文件内容以及目录层级等等缺陷(其实我们可以反编译)。

4。使用配置依赖的方式引用。

这里官网查过,使用aar有两种方式。

1)app的gradle.buid配置文件中,如下代码(被注释掉的地方为个人aar应用的utils)

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile(name: 'AndroidUtils', ext: 'aar')
// compile project(":AndroidUtils")
compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:recyclerview-v7:23.2.1'
compile 'com.android.support:cardview-v7:23.1.1'
}

首先需要将 aar 文件放入引用 Module 的 libs 目录下,和一般的 jar 文件类似。然后在 gradle 配置文件中把 libs 目录加入依赖:(再对比下面发生的变化)

repositories {
flatDir {
dirs 'libs' //this way we can find the .aar file in libs folder
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile(name: 'AndroidUtils', ext: 'aar')
// compile project(":AndroidUtils")
compile project(":awaarssnst-debug")
compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:recyclerview-v7:23.2.1'
compile 'com.android.support:cardview-v7:23.1.1'
}

在 gradle 的依赖配置中加入 compile(name: 'xxx', ext: 'aar') 这一句,依赖即可关联完毕。

构建一下工程,在 Module 的 build/intermediates/exploded-aar 目录下,可以看到有一些临时文件生成,如图:

Android Studio 打包及引用 aar - Nakama - Bgwan

 

如果android studio安装了反编译工具则可以按F3进入代码,查看源代码文件,如果有这部分文件则可以编译修改代码进行有话。

细心的朋友已近看到我这里有两个aar,是的,其中一个AndroidUtils就是个人封装的Utils的工具类,带有资源,方便自己对代码进行集中管理,一些常用的东西都封装在了里面。比如里面含有一个搜集用户错误的Log日志系统,还有一些常用的字符串的校验,以及MD5加密算法的,如果想要研究的话,可以自己动手封装自己的AAR库。


5。总结很重要。

以上就实战的分析了android如何创建AAR,以及引用的AAR的两种方式,细心的读者可能发现了,我并没有明说,第二种引用的方式,其实再仔细点你就会发现我已经指出来compile project(":AndroidUtils") .

一个是compile project 一个compile ;一个控制权在你的手中,一个在别人手中。你觉得哪个好。

说明:项目中出现的awNightDay项目是一个 实现了关于 如何实现知乎和简书的夜间模式以及它的切换效果,其中内用用到了AAR引用的日志系统。

https://github.com/qydq/awNightDay


参考链接:

http://jingyan.baidu.com/article/ca2d939d0faed1eb6c31ced9.html

http://blog.csdn.net/qq_23547831/article/details/51966166




这里感谢 ,一帆枫叶作者,个人一直在拜读他的文章,写的很好,大家可以去看看,以上是他的链接。





Android Studio 打包及引用 aar

简要介绍了生成 aar 以及其他工程引用 aar 文件的一些方法。

Android Studio中打包aar并引用及打jar包

1.如何打aar包: 在属性为library的module中,***\build\outputs\aar目录下有两个aar文件,后缀分别为debug和release. 2.如何引用aar: 将aar放...

Android Studio打包apk,aar,jar包

文本我们将讲解Android studio打包apk,aar,jar包的相关知识。apk包就是android系统的安装包,这里没什么好说的,aar包是android中独有的类库包,而jar包是Java...

Android studio中aar打包以及使用

场景 项目中app需要依赖自己写的module,而module中包含第三方的aar和assets文件,想要在app中不出现第三方文件,这种情况下有两种方式实现依赖 1 直接使用module...

Android Studio Project 中Module打包成aar包

在公司开发中遇到这样需求,将一个独立的应用嵌入其他应用当中; 相关方法有两种: 第一种是将被嵌入的应用打包成 jar 包,但是这样的局限性是无法将被嵌入的应用所使用的资源性文件一起打包; 第二种是将被...

Android Studio 打包jar,aar

1.Jar &Aarjar包与aar包的区别jar是java字节码文件(class文件)的归档文件,其不包含android中的资源文件等信息; aar是android中特有的归档文件,既包含字节码文...

Android 打包jar,aar以及在项目中的引用

关于jar和aar的作用就不多说了1.先来看jar和aar的打包和获取吧, 直接一张图看明白 首先把要封装的模块放到moudle中(可以File ->New ->New Moudle(选择Andr...

Android Stuido Ndk-Jni 开发(四):Jni打包及引用aar

Android Stuido Ndk-Jni 开发(四):Jni打包及引用aaraar包介绍在介绍aar之前,先来看看jar。现在在android开发过程中经常需要引用jar等第三方库。你可以很容易把...
  • loque
  • loque
  • 2016年03月01日 11:01
  • 2078

AndroidStudio打包及引用aar - Android

我们非半天劲封装了一些通用的类库和一些自定义视图控件后,为了能够更好的实现复用,那么最方便的办法就是打包类库文件了。 然而不得不吐槽一下啊,安卓封装点东西打包什么的都好麻烦,这点真的跟.net没法比...

Android Stuido Ndk-Jni 开发(四)Jni打包及引用aar

原文地址:http://www.lai18.com/content/6735900.html aar包介绍 在介绍aar之前,先来看看jar。现在在android开发过程中...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android Studio 如何打包和引用 aar
举报原因:
原因补充:

(最多只允许输入30个字)