提出
以前設(shè)計SDK,基本都是設(shè)計一個模塊,然后將模塊打成jar包,其中還要自己去混淆,后來,發(fā)現(xiàn)其實Android studio給我們提供一種更簡便的方式——aar包,可以同時把class和res文件打包進(jìn)去,現(xiàn)在的support v7 和gson-2.21就是aar打包方式。
aar包的好處
1、自動編譯打包生成,不用像jar包方式那樣,模塊修改后又要自己重新打包。
2、jar包不包含資源文件,應(yīng)用時的有可能會報資源找不到的錯誤,而aar包則包含源碼和資源文件。
3、配置好混淆文件后,aar包生成時會自動混淆,不用再操心混淆問題。
4、加快項目的編譯速度。
打包方法
1.先把想要打包成sdk的項目做成Android libraries B不要建成Android project 然后我們建立一個新的Android project A 去調(diào)用寫好的libraries B
2.寫好混淆文件proguard-rules.pro,配置libraries B的build.gradle,其他的模塊的不要改動,配置方式如下:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
3.運行后,studio就自動把我們的librarys B自動打包成aar包了,這就是我們想要的sdk了(release版的帶混淆,路徑,如圖所示:libraries build outputs aar)

注意:Module中的libs目錄文件會隨著項目的編譯被打包進(jìn)aar文件中,但是build.gradle中的引用庫不會打包進(jìn)aar文件中,這個需要 特別留意。如果你忽略了這個Module的build.gradle中的引用庫,很可能引發(fā)ClassNotFoundException異常。
使用方法
1、把打好的aar包拷貝到需要引用的Android工程libs目錄下

2、 在project的build.gradle文件中添加
repositories {
flatDir {
dirs 'libs'
}
}
3、再在project的build.gradle文件中dependencies標(biāo)簽中添加下面的依賴。 compile(name:’你的aar名字’, ext:’aar’)
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
//compile(name:'aar名字', ext:'aar')
compile (name:'kdweibo_lib',ext:'aar')
}
4、完整截圖

總結(jié)
運行你的項目,就這么簡單,有木有????!