一个组件化工程模板(kotlin,androidX,ARouter)

使用的AS版本3.3。

一个组件化工程模板(kotlin,androidX,ARouter)_第1张图片

2、在本工程新建common、main、news等几个module

一个组件化工程模板(kotlin,androidX,ARouter)_第2张图片

2.1、除了news组件,其它都是特殊组件,先看common的build.gradle:

所有组件的公共依赖库都添加在common里(库的名称在config.gradle里定义了,可以直接引用)。

一个组件化工程模板(kotlin,androidX,ARouter)_第3张图片

common的src目录主要放一些base类,我这里只有一个BaseApplication.java,需要被其它组件继承。

2.2、main组件

app启动的activity放在这里,manifest要配置启动activity。

build.gradle:

 
  

api project(':common'):使用api主要是让壳app能包含common的依赖,其它组件可以使用implement(例如news组件)。

kapt rootProject.ext.dependencies["arouter-compiler"]:阿里的ARouter依赖,每个组件都需要添加。

2.3、news组件

普通的组件,manifest主要配置android的四大组件等

build.gradle:

 
  

2.4、壳app

没有任何业务逻辑,只定义MyApplication,manifest配置application的name属性。

build.gradle:

一个组件化工程模板(kotlin,androidX,ARouter)_第4张图片

包含main组件后,壳app可以执行了。

3、注意

3.1、AS新版本依赖包使用implement,只限本module使用,如果module作为一个library,其它module想共用library的依赖,可以使用compile或api。

3.2、组件(library)的manifest文件中,application标签不能有name属性。

3.3、配置ARouter时一直运行异常,后来网上找到一个配置kotlin的,可以。详细可看github上的工程。

https://github.com/cwwei2005/ModulePatternDemo.git

主要参考了大神的文章:https://blog.csdn.net/guiying712/article/details/55213884

你可能感兴趣的:(android开发)