Android 多module合并打包笔记
这篇文章记录Android多module打包合并aar遇见的几个坑。希望对你我的工作能有一点帮助。。。
前言
由于工作需要,近期需要将项目中的library提供出一个sdk供给第三方公司开发。项目中的library中包含有多个的module,当Android studio打包aar时只会打包本module中相关资源,所以,最初提供sdk时,包含了n个jar、aar以及compile配置。为了能提供一个简单的优雅的sdk,我们对如何有效的合并module进行了一些尝试。
方案一 手动合并所有module
首先找到的一个可行的方案是手动去合并所有module。
然后在library中将依赖的其他module的源码全部复制过来。步骤大致可以这么划分:
- 1、先手动将library中依赖的module中需要的第三方jar、so库,assets等移过来
- 2、将src目录下相关资源移动过来
- 3、build library后,进行测试
这是最初的方案,经过实际实验,确实可行。但是会有一些不足,首先,这样的改动破坏了原因项目的设计架构,单单一个library模块显得相当冗余,不符合软件工程的设计思想。
另外,作为服务方,我们需要考虑,当第三方接入时,需要实现自定义时,比如,仅仅需要硬件交互方面的SDK、或者是只需要后端服务API时应该如何来做。因此,我们又有了优化的方案二
方案二
尽量将所有的Android module改成java modul