前言
现在通过Android Studio进行多Module开发已经非常常见了,除了方便我们分离项目业务,还可以很好的实现基础代码的复用
问题
我们在多Module开发后,如果是直接打包apk还好,直接可以通过gradle命令或者通过AS图形化界面就可以实现打包apk;但是如果我们只是为了提供一个功能模块,方便其他开发人员接入呢,我们使用了多个Module,能不能最终只对外提供一个aar呢,而不是每个Module都生成一个aar?
解决方案
在github上有个类似的项目,解决思路大概是在gradle的打包任务不同task中插入一些task,从而实现将多个Module最终打包成一个aar。
项目地址
缺点: Android gradle的版本更新较快,维护成本太大,作者应该也是看着维护成本较大,所以后来不维护了吧
在需求的不断紧逼下,最终我们通过另外一种方式来实现,思路如下:
在打包aar前,先将多个Module合并成一个Module,合并成一个Module后再通过gradle来打包aar,这样打包出来就是一个aar了。
主要需要解决如下两个问题:
- 资源文件的合并
- 多个Module下的Manifest文件中的标签的合并
资源合并还好,只要在复制到同一个Module前,分别将不同Module下的