Android studio打包及引用aar

Android aar

1. 简述

Gradle的一些基本依赖配置方式如下:

  • compile fileTree(dir:'xxx',include:['*.jar','*.xxx']): 将某个目录下所有符合扩展名的文件作为依赖
  • compile 'com.xx.xx:ProjectName:Version':配置Maven库为依赖
  • compile project(':otherModule'):配置另一个module作为本Module的依赖,被依赖的Module必须被导入到当前工程中
  • compile file('xxx.jar'): 配置某个jar包作为依赖

2. AAR文件简介

假如我们希望提供一个带有资源文件的第三方库给别人使用,总不能直接把源代码给别人,但是我们知道eclipse打包的时候不能包含res的资源文件,于是Android在发布Android studio的时候就发布了一种独有的格式AAR,专门用于打包UI组件库。与jar相比其多了一些UI组件用到的属性、图片等一系列文件,它的好处在于你不需要再多创建一个Library Module,只需引用这个AAR文件即可,Android Sudio会自动把AAR包里的文件跟你的项目融合。

要输出aar文件,必须将Module配置为library,在gradle文件中如下:

  • 要输出 aar:apply plugin:'com.android.library'
  • 要输出 apk:apply plugin:'com.android.application'

3. 打包生成 aar

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

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

  1. 首先需要将 aar 文件放入引用Module的libs目录下,和一般的jar文件类似;

  2. 然后在gradle配置文件中把libs 目录放入依赖:

    repositories{
            flatDir{
                dirs 'libs'
                }
            }
    
  3. 在gradle文件中使用依赖的方式引用aar,这一句依赖即可关联完毕:
    compile(name:'xxx',ext:'aar')

  4. 重新构建一下工程,在Module的 build/intermediates/exploded-aar 目录下,既可以看到导入的aar生成的临时文件。

参考文献:

    原文作者:csmijo
    原文地址: https://www.jianshu.com/p/9f2112da5460
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞