首先说明本篇文章所用到的关系:
这里三个module,分别为A、B、C,关系为C依赖B,B依赖A。
一、aar打包aar
aar自带资源,但不包括所依赖的aar包。
例如当我们以拷贝方式将C放入我们工程时,还需要拷贝B和A。
确定很明显:当我们moduel有多个时就需要拷贝多个aar包。
解决方法:
1、aar包发布到版本仓库
版本仓库可选择:maven+gradle
如:A、B、C都发布到仓库,这里要注意:B和C依赖方式均要选择版本仓库依赖方式,即C依赖仓库B,B依赖仓库A。
2、合并多个aar
Github上找到一个库android-fat-aar(https://github.com/adwiv/android-fat-aar)。
有兴趣的猿友可以试一下,坑太多,我试了一下没成功放弃了。
二、aar打包jar包
当我们将所需要的jar以拷贝方式放入module时,所生成的aar自带jar包;
若是以仓库依赖方式,所生成的aar内不会自带所使用到的jar包,即C还需要重新compile一次A和B所使用到的jar包。
三、关于混淆
当我们把C作为SDK封装给他人使用时,若不想暴露重要代码则需要对其进行混淆。
这里当我们对C进行混淆时,混淆到的代码只是C部分,A和B代码并无变化,所以必须对A和B单独做混淆。
是不是很烦,所以你有什么好的方法,敬请告知!!!