Android
aar
1. 簡(jiǎn)述
Gradle的一些基本依賴配置方式如下:
-
compile fileTree(dir:'xxx',include:['*.jar','*.xxx'])
: 將某個(gè)目錄下所有符合擴(kuò)展名的文件作為依賴 -
compile 'com.xx.xx:ProjectName:Version'
:配置Maven庫(kù)為依賴 -
compile project(':otherModule')
:配置另一個(gè)module作為本Module的依賴陪汽,被依賴的Module必須被導(dǎo)入到當(dāng)前工程中 -
compile file('xxx.jar')
: 配置某個(gè)jar包作為依賴
2. AAR文件簡(jiǎn)介
假如我們希望提供一個(gè)帶有資源文件的第三方庫(kù)給別人使用擦耀,總不能直接把源代碼給別人碴卧,但是我們知道eclipse打包的時(shí)候不能包含res的資源文件,于是Android在發(fā)布Android studio的時(shí)候就發(fā)布了一種獨(dú)有的格式AAR格带,專門(mén)用于打包UI組件庫(kù)隐解。與jar相比其多了一些UI組件用到的屬性、圖片等一系列文件久又,它的好處在于你不需要再多創(chuàng)建一個(gè)Library Module,只需引用這個(gè)AAR文件即可,Android Sudio會(huì)自動(dòng)把AAR包里的文件跟你的項(xiàng)目融合地消。
要輸出aar文件炉峰,必須將Module配置為library,在gradle文件中如下:
- 要輸出 aar:
apply plugin:'com.android.library'
- 要輸出 apk:
apply plugin:'com.android.application'
3. 打包生成 aar
將 Module 配置為 library 后脉执,構(gòu)建輸出一個(gè) aar 文件疼阔,根據(jù)渠道和 BuildType 的不同,在相應(yīng)的目錄下可以找到半夷。比如對(duì) BuildType 為 debug 的配置婆廊,輸出為:[ModuleName]/build/outputs/aar/[ModuleName]-debug.aar
。一份 aar 文件其實(shí)就是一份 zip 包巫橄,和 jar 不同的是否彩,它將一些資源文件、第三方庫(kù)文件嗦随、so 文件等等都打包在內(nèi)列荔,而代碼文件編譯后壓縮在classes.jar
中。
4. 使用配置依賴的方式引用
首先需要將 aar 文件放入引用Module的libs目錄下枚尼,和一般的jar文件類似贴浙;
-
然后在gradle配置文件中把libs 目錄放入依賴:
repositories{ flatDir{ dirs 'libs' } }
在gradle文件中使用依賴的方式引用aar,這一句依賴即可關(guān)聯(lián)完畢:
compile(name:'xxx',ext:'aar')
重新構(gòu)建一下工程署恍,在Module的
build/intermediates/exploded-aar
目錄下崎溃,既可以看到導(dǎo)入的aar生成的臨時(shí)文件。
參考文獻(xiàn):