最近有需求要发布一套SDK,这套SDK有几个要求:
- 带有Activity和Fragment;
- 有网络请求模块;
- 有依赖jar包;
依照上面的要求我最先想到的就是AAR包了,因为以下几个原因:
- aar包可以包含资源文件和布局文件,这样就可以在SDK中包含Activity了;
- aar包会包含libs目录下的jar包;
1、怎样打包成AAR?
打包aar其实很简单,只需要我们创建一个Library工程就可以了。
这个时候编译Library就会在outputs目录下生成一个aar文件夹,里面包含aar文件。
aar也是可以混淆的,方式和apk一样。
2、怎样引用AAR?
引用aar可以有两种方式,一种是本地引用,一种是远端库引用,目前我只用到了本地引用,远端的以后会补上。首先在bulid.gradle文件中定义一个本地库。
然后在依赖引用的地方添加依赖。
compile(name:'mylibrary-debug', ext:'aar')
name:aar包的名字;ext:扩展名;
3、aar包含jar
打包aar包的时候会自动将lib目录下的jar打包进aar包中。
4、多个aar合并
因为分层的原因,有多个library工程,这样就会有多个aar,发布起来很麻烦,尝试google了半天,发现目前都是一个办法,android-fat-aar,一个gradle脚本,github地址是:https://github.com/adwiv/android-fat-aar 。不过我发现他支持gradle2.2.X之前的版本,新的3.X版本并不能执行。这块还在继续摸索,有知道办法的大神请指教一下~~~~