模块化实现(好处,原因)

项目组件化的理解?

模块化是一种处理复杂系统分解为更好的可管理模块的方式。

 

为什么模块间解耦,复用?

原因:对业务进行模块化拆分后,为了使各业务模块间解耦,因此各个都是独立的模块,它们之间是没有依赖关系。每个模块负责的功能不同,业务逻辑不同,模块间业务解耦。模块功能比较单一,可在多个项目中使用。

 

为什么可单独编译某个模块,提升开发效率?

原因:每个模块实际上也是一个完整的项目,可以进行单独编译,调试

 

为什么可以多团队并行开发,测试?

原因:每个团队负责不同的模块,提升开发,测试效率
组件化与模块化

组件化是指以重用化为目的,将一个系统拆分为一个个单独的组件

  1. 避免重复造轮子,节省开发维护成本;
  2. 降低项目复杂性,提升开发效率;
  3. 多个团队公用同一个组件,在一定层度上确保了技术方案的统一性。

模块化业务分层:由下到上

  1. 基础组件层:底层使用的库和封装的一些工具库(libs),比如okhttp,rxjava,rxandroid,glide等
  2. 业务组件层:与业务相关,封装第三方sdk,比如封装后的支付,即时通行等
  3. 业务模块层:按照业务划分模块,比如说IM模块,资讯模块等

 

Android 模块化开发介绍;

模块化开发思路就是:单独开发每个模块,用集成的方式把他们组合起来,就能拼出一个app。app可以理解成很多功能模块的组合,而且有些功能模块是通用的,必备的,像自动更新,反馈,推送,都可以提炼成模块,和搭积木很像,由一个壳包含很多个模块。

Android 模块化开发的好处;

  1. 模块升级会单独升级,升级的时候往往不只是增加资源,有时候会去删资源,这样做和其它的模块的资源不掺乎。比如:我用umeng的自动更新sdk时就需要我连着资源一块进来,加进来容易以后不想用umeng的了再挑出去就很费事了。
  2. 再假如push开始用的百度的后来换成极光的,对app的组合者其实是不关心的,对他影响很小。解耦很好。
  3. 如果是主力带实习生这种开发的话,核心代码就不用和他们分享,让他们去做独立的功能,做好直接调用就行。以后整理代码,重构什么的都只重构这个模块的代码,他们不会不小心改了核心代码。


模块化开发的架构分层

命名建议:
底层:Library
中间层:Module + 业务或功能名字
上层:App + 项目名字

 

建议分层进行

1.底层:包含基础库和底层库

(1)基础库:包含所有模块需要的依赖库,以及一些工具类,比如封装了的常用网络请求,封装图片处理fresco,数据库相关等,还包含所有模块需要的依赖库;

(2)底层库:主要是使用C/C++开发的跨平台的引擎或者库,以so的形式存在。例如:游戏引擎cocos2d

2.中间层

先分模块肯定要按照功能分,独立的一个功能,不能杂。比如、更新、登录、分享、播放,都可以。

其次、我采取aar的形式作为模块的最小单位,为什么是aar不是jar,更不是library,因为jar不能带资源只能带java代码,library的话太容易被修改了,aar的好处是能带资源并且是编译好的,不能被修改。保证了模块的版本不会在被别人调用的时候随意修改,如果想修改就要联系做aar的人,让他去升级aar的版本。

用android studio,打aar用maven;aar其实就是依赖,只不过之前的依赖都是存到了maven远程库里,自己用的话可以自己建和私有的maven库,太蛮烦的话可以直接用本地的aar文件做依赖。

3.上层

将所有的业务模块聚合在一起,加上配置,形成主应用,一个模块化做的好的应用,主应用应该很简单,并且非常的稳定。

猜你喜欢

转载自blog.csdn.net/github_37130188/article/details/89762654
今日推荐