提出
以前设计SDK,基本都是设计一个模块,然后将模块打成jar包,其中还要自己去混淆,后来,发现其实Android studio给我们提供一种更简便的方式——aar包,可以同时把class和res文件打包进去,现在的support v7 和gson-2.21就是aar打包方式。
aar包的好处
1、自动编译打包生成,不用像jar包方式那样,模块修改后又要自己重新打包。
2、jar包不包含资源文件,应用时的有可能会报资源找不到的错误,而aar包则包含源码和资源文件。
3、配置好混淆文件后,aar包生成时会自动混淆,不用再操心混淆问题。
4、加快项目的编译速度。
打包方法
1.先把想要打包成sdk的项目做成Android libraries B不要建成Android project 然后我们建立一个新的Android project A 去调用写好的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目录文件会随着项目的编译被打包进aar文件中,但是build.gradle中的引用库不会打包进aar文件中,这个需要 特别留意。如果你忽略了这个Module的build.gradle中的引用库,很可能引发ClassNotFoundException异常。
使用方法
1、把打好的aar包拷贝到需要引用的Android工程libs目录下
2、 在project的build.gradle文件中添加
repositories {
flatDir {
dirs 'libs'
}
}
3、再在project的build.gradle文件中dependencies标签中添加下面的依赖。 compile(name:’你的aar名字’, ext:’aar’)
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
//compile(name:'aar名字', ext:'aar')
compile (name:'kdweibo_lib',ext:'aar')
}
4、完整截图
总结
运行你的项目,就这么简单,有木有??!!