假如我們希望提供一個帶有資源文件的第三方庫給別人使用,總不能直接把源代碼給別人,但是我們知道eclipse打包的時候不能包含res的資源文件,於是Android在發布Android studio的時候就發布了一種獨有的格式AAR,專門用於打包UI組件庫。與jar相比其多了一些UI組件用到的屬性、圖片等一系列文件,它的好處在於你不需要再多創建一個Library Module,只需引用這個AAR文件即可,Android Sudio會自動把AAR包里的文件跟你的項目融合。
要輸出aar文件,必須將Module配置為library,在gradle文件中如下:
- 要輸出 aar:
apply plugin:'com.android.library'
- 要輸出 apk:
apply plugin:'com.android.application'
打包生成 aar
將 Module 配置為 library 后,構建輸出一個 aar 文件,根據渠道和 BuildType 的不同,在相應的目錄下可以找到。比如對 BuildType 為 debug 的配置,輸出為:[ModuleName]/build/outputs/aar/[ModuleName]-debug.aar
。一份 aar 文件其實就是一份 zip 包,和 jar 不同的是,它將一些資源文件、第三方庫文件、so 文件等等都打包在內,而代碼文件編譯后壓縮在classes.jar
中。