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

开发模式为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开发除了flutter还有什么是必须掌握的吗?

相信大多数从事Android开发的朋友们越来越发现,找工作越来越难了,面试的要求越来越高了

除了基础扎实的java知识,数据结构算法,设计模式还要求会底层源码,NDK技术,性能调优,还有会些小程序和跨平台,比如说flutter,以思维脑图的方式展示在下图;

![](https://upload-images.jianshu.io/upload_images/14847428-0bca65c080c52621.png?imageMogr2/auto-orien

t/strip%7CimageView2/2/w/1240)

外链图片转存中…(img-84T1viJU-1716043033848)]
t/strip%7CimageView2/2/w/1240)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值