模块化和组件化可以理解为同一个概念:
将一个app分成多个模块,每个模块都是一个组件(module),开发过程中让这些组件相互依赖或者单独调试某个组件。在发布的时候将这些组件合并成一个apk。
Android组件化我的理解是 application与library之间相互转换。
因为 在AndroidStudio开发中每个module中的build文件中第一句话都是:apply plugin: 'com.android.application'
或者是:apply plugin: 'com.android.library'
module之间双向调用可以采用BroadCast广播或者是EventBus。
还可以使用路由框架:阿里的ARouter,这个路由框架解决了模块跳转和模块间服务调用。
Android原生路由存在的问题:
Android原生路由方案一般通过显示Intent和隐式Intent两种方式实现的。
显示Intent会存在类之间的依赖关系,耦合性非常严重;
隐式Intent需要定义规则进行管理,操作不灵活,一般定义规则是在Manifest中,导致扩展性比较差。
而且使用原生的路由方案会出现跳转过程无法控制,比如使用startActivity,中间的任何环节只能交给系统处理,一旦跳转失败无法做降级处理,只能抛出异常。
为什么要用路由组件:
随着业务逻辑的增加,一款APP达到一定体量的时候,开发团队规模也会越来越大,这个时候就需要组件化开发。
可以将APP按照一定功能和业务拆分成多个小组件,不同的组件由不同开发小组负责。
路由框架的特点:
1 分发:可以将一个请求或者一个URL按照一定的规则分配给一个服务或者页面来处理。也可以理解为简单的跳转。
2 管理:将组件和页面按照一定的规则管理起来,在分发的时候提供搜索、加载、修改等操作。
3 控制:就像路由器一样,会有限速、屏蔽等一些控制操作。
总结:
Android模块化 / 组件化个人简单理解就这样,当然感觉还不够,还需要全面分析一下,我打算下一篇写的更详细一点,并且根据路由框架来说比如阿里的ARouter框架