android studio打包aar心得

在比较大的 Android 项目的开发中,咱们常常会遇到工程、jar 包等等之间相互引用的方式。通常咱们经过在 gradle 文件中配置依赖来解决,好比:android

通用配置

Gradle 的一些基本依赖配置方式以下架构

compile fileTree(dir: "xxx', include: ['*.jar', "*.xxx"]):将某个目录下全部符合扩展名的文件做为依赖; compile 'com.xx.xx:ProjectName:Version':配置Maven` 库做为依赖;在 Maven 库中心 能够搜索本身想用的库进行依赖; compile project(':AnotherModule'):配置另外一个 Module 做为本 Module 的依赖,被依赖的 Module 必须被导入到当前工程中; compile files('xxx.jar'):配置某个 jar 包做为依赖。app

看起来不错,基本通用的配置都已经存在了。通常对于中等小型的工程,这种开发方式彻底没有问题。可是有时候 A 和 B 两个工程,想同时引用另外一个公共的 Module C,而这个 Module 多是一个比较复杂的 Android Module,可能包含了一些主题、UI 、资源文件等等,这时候,若是用 Module 依赖的方式来配置,难免有些困难,由于 A 和 B 都要导入 C,并且要随时关注 C 的更改。eclipse

好在 Android Studio 提供了 aar 库的打包方式,咱们能够把 C 做为 library 进行打包,输出 aar 文件,而后在 A 和 B 中,配置 aar 库依赖,就能够解决。gradle

二、aar 文件简介

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

输出 aar : apply plugin: 'com.android.library'; 输出 apk :apply plugin: 'com.android.application'。spa

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

studio的项目结构:是以eclipse的工做空间做为项目名称,而eclipse的项目做为studio的moudle而存在。如此则是这样一个项目架构:debug

如上图所示整个项目架构中包含有library,aar包。orm

咱们首先须要把library中所须要的依赖库添加到project中进行依赖,而后进行导入aar/jar操做,找到library中build下的output中aar文件引用,等待build完成,此时在将aar依赖于project当中,这样就能够了。

相关文章
相关标签/搜索