Android组件化开发之三:组件化开发手册

组件化开发系列文章

1. Android组件化开发之一:为什么要进行组件化开发
2. Android组件化开发之二:组件化架构
3. Android组件化开发之三:组件化开发手册
4. Android组件化开发之四:组件化填坑之旅

5. Android组件化开发之五:组件化开发实战Demo

开发模式为project

新建一个项目专门用来对此业务模块的组件化进行开发,项目内可分为application工程(app)和library工程(module)。
app工程主要用来调测module工程使用,比如测试module工程的接口功能实现。
module工程主要实现业务逻辑,同时可以含有UI实现,即对外提供的UI,包括但不限于activity和fragment;

当项目调测完毕时,将module工程编译生成aar文件,并且通过gradle脚本提交到maven仓库。

 

开发模式为module

需要在现有的主项目里面新建module工程,每一个module工程就是一个业务组件。
module工程的开发模式:
main:作为项目的组建时使用;main里面的provider代表这个组件对外开放(组件间通信)的能力;每一个provider需要在ServiceManager里面进行声明并交由其管理;
debug:作为独立模块运行时使用,需要新建一个application和androidmanifest文件;
总的来说,以debug模式和release模式去区分,在debug模式下,各个业务线作为application可以单独运行,而在release模式下,则作为library,可以提供给主app进行依赖。
这样一来就可以做到每个业务线的平行开发,在Release模式下再合到一起,非常的灵活。
现有项目的app模块:
app模块是一个壳工程,主要负责app的配置(build.gradle、AndroidManifest.xml)、初始化(AppApplication)工作;
app模块的AppApplication需要通过ModuleOptions.ModuleBuilder(this)的addModule方法将各个组件的引用添加进来;
base-core组件
base-core组件需包含ARouter管理。

 

 

开放模式为公开

一般此种模式下,是对外提供jar或aar包供其它主工程或库工程引用。
如果存在引用关系,比如A引用B,那么A可以直接调用B中的方法或页面,也就不存在ARouter来搭建桥梁;

 

 

开放模式为内部

一般此种模式下,是在项目内部的module工程(此module工程也可以在外部独立新建一个项目来实现,但是必须使用主项目同样的路由架构比如ARouter);
module之间不存在引用关系,因此必须使用路由架构比如ARouter来实现。

 

 

关于ARouter

不同的模块负责自己的业务实现,不和其他模块有依赖关系的存在,也就是模块之间没有直接的compile关系。
假如这个模块需要启动别的模块的Activity或者是调用别的模块的方法,我们就通过ARouter提供的方法去实现。
router的管理在base-core组件下的router文件夹内;
provider:各个组件定义的接口,包含对外提供的能力;
module:一般命名为xxService,是各个组件对外调用的服务入口;
ServiceManager:通过annotation实例化各个组件的provider并统一管理;通过ServiceManager对目标组件provider的调用,实现跨组件通信;

 

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