最近有需求要發(fā)布一套SDK,這套SDK有幾個要求:
- 帶有Activity和Fragment;
- 有網(wǎng)絡(luò)請求模塊;
- 有依賴jar包;
依照上面的要求我最先想到的就是AAR包了,因為以下幾個原因:
- aar包可以包含資源文件和布局文件,這樣就可以在SDK中包含Activity了;
- aar包會包含libs目錄下的jar包;
1、怎樣打包成AAR?
打包aar其實很簡單,只需要我們創(chuàng)建一個Library工程就可以了。
創(chuàng)建Library的Module
這個時候編譯Library就會在outputs目錄下生成一個aar文件夾,里面包含aar文件。
AAR文件
aar也是可以混淆的,方式和apk一樣。
混淆
2、怎樣引用AAR?
引用aar可以有兩種方式,一種是本地引用,一種是遠(yuǎn)端庫引用,目前我只用到了本地引用,遠(yuǎn)端的以后會補(bǔ)上。首先在bulid.gradle文件中定義一個本地庫。
這里寫圖片描述
然后在依賴引用的地方添加依賴。
依賴本地倉庫
compile(name:'mylibrary-debug', ext:'aar')
name:aar包的名字;ext:擴(kuò)展名;
3、aar包含jar
打包aar包的時候會自動將lib目錄下的jar打包進(jìn)aar包中。
解壓后libs目錄包含jar文件
4、多個aar合并
因為分層的原因,有多個library工程,這樣就會有多個aar,發(fā)布起來很麻煩,嘗試google了半天,發(fā)現(xiàn)目前都是一個辦法,android-fat-aar,一個gradle腳本,github地址是:https://github.com/adwiv/android-fat-aar 。不過我發(fā)現(xiàn)他支持gradle2.2.X之前的版本,新的3.X版本并不能執(zhí)行。這塊還在繼續(xù)摸索,有知道辦法的大神請指教一下~~~~