原文連結http://www.jianshu.com/p/59efa895589e
一. 簡介
aar
是一個類似于
jar
的檔案格式。但是他們之間是有差別的。
jar
:僅僅包含class和清單檔案,沒有資源檔案。
aar
:包含了class檔案和資源檔案。說白了就是Android的專屬“jar”
将代碼打包成aar檔案,可以在一定程度上加快
AndroidStudio
的速度。
尤其是将
Module
打包成
aar
檔案,提升的效果很顯著。
二. 如何得到aar
1. Module的aar檔案
将一個AndroidStudio項目中的
Module
打包成
aar
其實很簡單。
在每一個
Module
的目錄下面都會有這樣一個檔案夾:
build\outputs\aar
。
這個檔案夾下面就放着這個
Module
對應的
aar
檔案。
一般情況下會有兩個
aar
檔案,一個
debug
版本,一個
release
版本。
我們選擇
release
的就ok。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiADNyEzLcd3LcJzLcJzdllmVldWYtl2Q3UCcpJHdz9CX05WZpJ3bt8Gd1F2LcJjcn9WTldWYtl2Pn5GcuMjMyQTZyAzYmJGZ4ETMjhTLyYTM1IjMy8CXzV2Zh1WafRWYvxGc19CXvlmL1h2cuFWaq5ycldWYtlWLkF2bsBXdvw1LcpDc0RHaiojIsJye.png)
三. 如何使用aar
想要使用aar檔案,需要經過以下幾步:
1. 在app的build.gradle中加入以下配置2. 将aar檔案拷貝到app/libs目錄下 3. 在dependencies中加入aar引用repositories { flatDir { dirs 'libs' // aar目錄 } }
四:Democompile(name: 'zbar-release', ext: 'aar')
apply plugin: 'com.android.application' android { compileSdkVersion 26 buildToolsVersion '25.0.0' defaultConfig { applicationId "xxx" minSdkVersion 20 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }
//生成jniLibs目錄 存放 aar(可有可無) sourceSets { main { jniLibs.srcDirs = ['libs'] } }
// 可以放在android{} 也可以與android 同級别。 repositories { flatDir { dirs 'libs' } } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:26.+', { exclude group: 'com.android.support', module: 'appcompat-v7' } compile 'com.android.support.constraint:constraint-layout:1.0.2' testCompile 'junit:junit:4.12' compile(name: '生成的aar名稱', ext: 'aar') }