前言android
架构,把这个词拆开来看,就是架子与结构。能够形象的比喻成动物的骨架。骨架完成了在填充血肉,会让整个项目进行的更有效。架构
在此以前,须要开发者了解一些gradle在安卓项目中的使用状况。我这里推荐stormzhang的gradle教学文章。对于gradle要具备最初步的了解。app
虽然跟组件化相关,但这里并不讨论关于组件化中最重要的通讯与路由机制。感兴趣的同窗能够学习一下 EventBus/Arouter来进行组件化的使用。模块化
思路组件化
老规矩先上图,这里我只上一个Project的图。学习
咱们一直在强调模块化与解耦,而实际上达到彻底的解耦是不可能的,由于业务之间总会出现你想象不到的关联需求,这里所强调的解耦也只是开发过程当中,把相关的功能尽量的独立到每个人能都单独开发负责的这样一种模式。gradle
这里新建了两个文件夹,android_blocks(用于存放业务模块module),android_libs(用于存放于业务无关的功能性module)。至少在咱们的项目结构中能够很清晰的看到它们存放于不一样的文件夹下,内心至少明白它们在本身所表达的意义上是相互独立存在的。spa
步骤3d
第一步新建你所须要的module,例如我想要独立开发一个设置模块。那么新建settings module。
右键新建module,直接下一步完成后,project根目录下生成settings module,以下图。
咱们来分析一下,设置属于业务模块,那么就要把它放在blocks下面。直接用鼠标拖动,或者剪切到android_blocks下。
点击OK,等待剪切结束。
这个时候移动结束,而后打开Project根目录下的settings.gradle文件。
这里是声明咱们项目中可用module的地方,以下图。
手动把你刚刚移动到android_blocks文件夹的module名称按照图中格式写上去,点击同步。
提示:若是以上出现异常状况,能够把全部的iml文件删除反复把步骤从新操做便可。
这个时候基本工做已经完成了。而后看一下咱们的依赖关系。
因此大体上咱们获得了这样的一个结构。
那么咱们每个block module的依赖尽量的轻量,只依赖base一个便可。
此图仅作参考,切勿照搬。
后记
关于组件化实际上是一种架构的思想,那么集中管理,独立开发是一个提升团协做开发效率的好的思路。尤为是在大公司里,一个app的业务量每每不少,因此相互之间约定好服务于接口,这样有利于开发的异步进行。