一、簡介
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中的資源文件