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的调用,实现跨组件通信;
————————————————
版权声明:本文为CSDN博主「ddnosh」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ddnosh/article/details/79075645

©️2020 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值