一、简介
Android 库在结构上与 Android 应用模块相同。它可以提供构建应用所需的一切内容,包括源代码、资源文件和 Android 清单。不过,Android 库将编译到您可以用作 Android 应用模块依赖项的 Android 归档 (AAR) 文件,而不是在设备上运行的 APK。与 JAR 文件不同,AAR 文件可以包含 Android 资源和一个清单文件,这样,除了 Java 类与方法外,您还可以捆绑布局和可绘制对象等共享资源。
简单来说:
xx.jar
:只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。
xx.aar
:包含所有资源 ,class 以及 res 资源文件全部包含
要输出aar文件,必须将Module配置为library,在gradle文件中如下:
要输出 aar:apply plugin:‘com.android.library’
要输出 apk:apply plugin:‘com.android.application’
二、创建AAR
用android studio打开一个工程,选择菜单File -> New -> New Module...
,新建一个Module,新建Module时候选择Android Library,后面按新建普通工程操作
新建Module 类型为android Library 后如下图所示
在Module里新建一个测试类,导入测试图片资源,如下图:
三、导出AAR
打开Gradle
,依次打开MyApplication -> :mylibrary -> Tasks -> build
,其中assembleDebug 和 assembleRelease 分别是打debug和release包的命令,assemble命令则是debug和release包同时生成,打包之前先执行clean命令,打包之后生成的aar文件在mylibrary -> build -> outputs -> aar
目录下
四、其他工程引入AAR
- 将aar包复制到libs目录下
- 配置app/build.gradle文件
加入:
repositories {flatDir {dirs 'libs'}}compile(name:'mylibrary-release', ext:'aar')
完整的配置文件如下:
apply plugin: 'com.android.application'android {compileSdkVersion 23buildToolsVersion "23.0.3"defaultConfig {applicationId "com.aartest"minSdkVersion 16targetSdkVersion 23versionCode 1versionName "1.0"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}repositories {flatDir {dirs 'libs'}}
}
dependencies {compile fileTree(dir: 'libs', include: ['*.jar'])testCompile 'junit:junit:4.12'compile(name:'mylibrary-release', ext:'aar')
}
- 编译工程
- 调用aar中的资源文件