Android组件化架构—阿里路由ARouter的介绍(一)

一、什么是组件化?
一般地, 在项目中开发过程中,将公用的代码提取出来作为基础模块Base module,将某些简单的单独功能封装到Library module中,根据业务来划分module,组内的每个人分别开发各自的模块,这一系列的过程我们称为组件化。

二、为什么要组件化?
随着项目的不断壮大,业务需求不断的变更,模块间的相互依赖势必会增加,最终导致各个模块耦合极其严重,并且代码非常的难以维护,难以测试。这是其一,我相信作为android工程师,都逃不了android的编译死亡时间,每次编译都异常的久,每修改一处代码后都要重新编译打包测试,简直是想砸电脑的节奏(有些人可能会说,可以引入freeline呀,确实这是一个解决方案,但是耦合还是要解决的,所以你懂的...)所以当项目功能迭代的越来越多,就必须重新架构项目,组件化方案是一个不错的选择。

三、如何组件化?
首先,带你看一张组件化基础图,便于更好的理解组件化设计

Android组件化架构—阿里路由ARouter的介绍(一)_第1张图片
base.png

上面是一个非常基础的组件化架构图,图中从上向下分别为应用层、组件层和基础层。

基础层: 基础层很容易理解,其中包含的是一些基础库以及对基础库的封装,比如常用的图片加载,网络请求,数据存储操作等等,其他模块或者组件都可以引用同一套基础库,这样不但只需要开发一套代码,还解耦了基础功能和业务功能的耦合,在基础库变更时更加容易操作。

组件层: 基础层往上是组件层,组件层就包含一些简单的功能组件,比如登录、图片浏览等。

应用层: 组件层往上是应用层,这里为了简单,只添加了一个 APP ,APP 就相当于我们的模块,一个具体的业务模块会按需引用不同的组件,最终实现业务功能,这里如果又多个业务模块,就可以各自按需引用组件,最后将各个模块统筹输出 APP。

解析完了各个层的作用,相信大家对组件化架构也有了一定的理解。那么如何实现组件化呢?这里我推荐大家一个阿里出品的ARouter框架,它是阿里开源的一款android路由框架。通过路由进行界面跳转,区别于 Intent的显隐式跳转。在模块化的项目中,友好的解决了因模块互相依赖冲突,而界面互相跳转不了的问题,使用它进行跳转,两个 library互相不依赖,也可以相互跳转。

四、ARouter路由原理
ARouter拥有自身的编译时注解框架,在编译期,通过注解编译,生成了路由表(路由表中有路径和目标activity的对应关系),利用arouter来跳转的时候会传入目标activity路径,arouter根据路径从路由表中找到目标activity,然后将目标activity设置到intent上,再通过startActivity来实现跳转。是不是原理很简单呢?其实它还有更强大的功能,支持带参数跳转、支持转场动画等。

好了,到此相信大家对组件化架构也已经有了基本了解,下一个章节我将带你如何使用ARouter实现项目组件化。

你可能感兴趣的:(Android组件化架构—阿里路由ARouter的介绍(一))