组件化极简的两套方案

作者: Android小调 | 来源:发表于2019-04-01 17:47 被阅读32次

简介

随着项目越来越完善,功能越来越多,代码也变得越来越复杂。为了更方便开发,以及多个模块并行开发,之前的模块分包的方式已经不能满足当前的需求,所以组件化开发势在必行。本文介绍了当前比较流行的组件化方案,模块间通信采用阿里的ARoute路由,并且在项目中提供了两种不同的组件化运行的方式,各有优劣,可根据自己的项目来选择不同的方式。

思路

模块解耦,把公共的功能三方及工具类下沉到底层,其他模块为可独立运行的模块

模块间通信采用ARoute方案

组件运行方案一:配置各个模块的.gradle文件,通过配置来区分运行的状态(集成模式、独立模式),以及该模块是以“library”/“application”的身份运行,并且根据运行状态配置对应的资源、清单文件、以及代码文件等。通过更改配置参数来达到是独立模块或集成模式运行。

组件运行方案二:这个方案比较简单,那就是直接添加一个和app同样的“application”模块(暂称之为go_model),用于直接运行独立模块。这样app模块h和go_model都可以运行调试独立模块,并且不用修改配置。可以每个子模块创建一个go_model模块,也可以所有子模块共用一个go_model模块,如果共用一个go_model模块的话需要经常更改go_model模块的配置。

方案一的缺点是每个模块的配置文件中都要添加配置不同模式的代码。并且每次改完配置都要重新编译比较耗时。方案二的缺点是如果每个模块都添加一个go_model模块,会产生很多模块,方便运行,但不利于维护。如果只有一个共用的go_model模块,就需要根据运行的不同模块来改变配置。

实例

如图为简单的项目结构。

方案一

创建一个配置文件,用于统一配置项目中的版本号及参数

app模块中的配置

各个子模块中的配置

运行

手动更改运行状态,然后运行

isModule =false//true:组件化(独立模块)false:集成

方案二

创建go_model模块

子模块de设置

apply plugin:'com.android.library'

运行

总结

目前有很多组件化方案,多数是文中这种思路使用ARouter,不过也有向Appjoint等其他的选择,适合的就是最好的,选择一个适合自己项目的组件化,未开发赋能

附:组件化学习导图以及 组件化学习免费资料

组件化学习导图

资料群:4112676  加群免费领取,验证:组件化视频

组件化及插件化视频

资料群:4112676  加群免费领取,验证:组件化视频

相关文章

  • 组件化极简的两套方案

    简介 随着项目越来越完善,功能越来越多,代码也变得越来越复杂。为了更方便开发,以及多个模块并行开发,之前的模块分包...

  • iOS组件化方案

    iOS组件化方案 iOS组件化方案

  • iOS 组件化方案探索

    组件化方案相关链接: 一、Limboy的组件化方案: 原文1 原文2二、Casa的组件化方案: 原文

  • 组件化方案

    组件化方案引用 在现有工程中实施基于CTMediator的组件化方案 iOS组件化实践(一):简介 iOS组件化实...

  • iOS组件化文章汇总

    iOS应用架构谈 组件化方案 APP组件化之路 我所理解的组件化之路 iOS 组件化方案探索 围观神仙打架,反革命...

  • iOS:组件化的三种通讯方案

    组件化 本文主要介绍组件化常用三种通讯方式. 常⽤的三种组件化通讯方案 组件化通信方案组件化最重要的是兄弟模块的通...

  • iOS 组件化

    喜马拉雅企业版组件化记录 组件化的作用: 组件化过程: 业界采用 好的组件化方案具有一下特点: 开源方案分析 模仿...

  • Android组件化方案

    Android组件化方案Android彻底组件化demo发布

  • iOS 组件化方案学习

    最近不忙学习了下组件化。现在方案有蘑菇街的组件化架构和casatwy组件化方案。看了不少文章写了原理性的东西。ba...

  • 07 CTMediator iOS组件化方案

    关于iOS组件化方案在Casa的iOS应用架构谈 组件化方案写得已经很清楚了。方案本身并不难,CTMediator...

网友评论

    本文标题:组件化极简的两套方案

    本文链接:https://www.haomeiwen.com/subject/fdjvbqtx.html