Android AAR的引用及项目的实际应用
这段时间,公司的项目正好遇到了这种情况,简单介绍下,这个项目本身是一个整体,领导希望我们将它拆成三部分,主框架+A部分+B部分,A和B分别交给两拨人马去维护,这样A和B可以单独修改代码,而不会影响彼此,好了,情况就是这个情况,我们决定使用AAR的方式去实现它
AAR是什么?
何为aar?大家都知道jar文件把,如果你有一个Android Library项目,可以很容易的导出jar文件,然后在其他项目中很方便的引用,aar和jar类似,区别就是一个Android Library项目导出的jar文件不能包含资源文件,比如一些drawable文件、xml资源文件之类的,所以这就有很大的限制,在gradle之前我们要引用带资源文件的Android Library必须要把整个library导入进来进行引用,但是有了gradle之后,Android Library项目可以直接导出成aar,然后其他项目像引用jar的方式直接方便的引用。
AAR怎么打包呢?
然后在主工程中添加这个AAR包
在gradle中添加依赖
这样基本就搞定了aar的添加,但是我们的项目中有很多很多的Activity,那么分割成三部分之后呢,会存在很多冲突的问题,我简单总结了一下,不是很全面,但应该能给大家一些建议,
1.资源文件不能同名,大量改动
2.Application需要主APP传递给AAR,AAR再做单例模式
3.扫描模块需要AAR自己初始化
4.jar尽量用maven,如果是本地的libs,需要exlude so和provided jar
5.AAR可以通过主APP的application初始化自己的数据库
6.轻量数据,可以用intent启动AAR的时候传递
7.如果有基础数据需要提供服务,可以用contentProvider
8.butterknife需要统一用8.4.0以上的版本,不然报错
9.AAR模块用butterknife需要把资源R改为R2(批量替换)
大家有什么问题,可以直接联系我,希望我们能够一起解决遇到的问题