模块化?组件化?插件化?热更新?热修复?

转载 2018年04月17日 19:23:45

转载请注明出处:http://blog.csdn.net/crazy1235/article/details/76349554


如今面对Android开发,市面上各种xx化的词汇,你都明白吗?

各种化,模块化、组件化、插件化、热更新、热修复……

  • 模块化:项目按照独立的模块进行划分

  • 组件化:将项目按照单一的组件来进行划分结构

模块化与组件化的差别在于颗粒度,个人认为模块相对于组件的粒度较大!组件分的更细。一个模块可以由很多个组件构成~

  • 热修复:当线上应用出现紧急BUG,为了避免重新发版,并且保证修复的及时性而进行的一项在线推送补丁的修复方案。

  • 热更新:与热修复同义!

  • 插件化:一个程序划分为不同的部分,以插件的形式加载到应用中去,本质上它使用的技术还是热修复技术,只是加入了更多工程实践,让它支持大规模的代码更新以及资源和SO包的更新。


模块化&组件化

个人感觉模块化和组件化无非就是业务和基础支撑库拆分粒度的区别。

当项目越来越复杂,体积也变得臃肿,代码量激增,各个模块相互引用导致耦合性很高。 
并且各个模块无法单独开发调试以及测试 
无法快速剥离组件开发新应用 
… 
基于以上问题:模块化(组件化)是比较好的解决方法!

项目组件化的重要环节在于,将项目按照模块来进行拆分,拆分成一个个业务module和其他支撑module(lib),各个业务module之间互不依赖,互相解耦!

每个业务module都可以安排不同的开发人员团队来进行开发,不强制使用一种开发模式,MVP可以,MVC也可以!

然后各个业务module之间通过路由机制进行跳转和传递!

所以重点就是两点:

  • 分模块

  • 路由机制

关于组件化更详细的内容请移步:Android组件化开发实践


模块化和组件化都是一种开发模式,并没有设计太高深的技术。但是后面要说的插件化、热更新、热修复等技术就不是那么简单了!


Android开发最前沿的技术当真属于热修复和插件化了,目前已被大部分一线互联网公司所采用 
极大的提高了应用的稳定性,增强了用户体验

http://blog.csdn.net/luzhenyuxfcy/article/details/52669971?locationNum=5

插件化

  • Atlas

  • DroidPlugin

http://blog.csdn.net/wangbaochu/article/details/50518536

https://juejin.im/entry/57b2833a0a2b58006334e73a

https://juejin.im/entry/57d746dbd20309006a0b168e

https://juejin.im/entry/583bb48c61ff4b006cbf091b

https://mp.weixin.qq.com/s?__biz=MzA3ODg4MDk0Ng==&mid=2651113434&idx=1&sn=99a473c6fad2f7b366b2cba2afb96f7a&chksm=844c6e07b33be7112222c0d78be23979912f12d6c99ad2c7bfac766e67e4be4619709f170b09&mpshare=1&scene=1&srcid=0628gRj4w4sW8cxYupnu3TXk&pass_ticket=1bsPf4vfDjr2a7E45NfjrXCTMdvwi6/DgVwYPA7Byx5Zi5zQCgScguDpY/3gXkdO#rd

https://juejin.im/entry/58ad2730570c35006bcde6fb

热修复

这里写图片描述

(图片转自网路)

相信大部分APP软件的开发流程都是上面那样。

版本上线之后,用户或者市场反馈说有bug,然后立马加班紧急修复,接着又发布版本上线;然后又反馈回来说有新的bug,好嘛,接着修复然后发新版本上线;这样一直修复bug发版本上线……

虽然软件的bug避免不了,但是总是发布新版本,让用户去下载更新使用,会让很多用户失去耐心和信息。严重影响用户使用和体验,代价是很大的!

  • Andfix

  • Hotfix

  • Tinker

  • QFix

  • Amigo

  • Robust

  • Sophix

这里写图片描述

这里写图片描述


参考

Unity3D入门到精通-(4)Unity热更新

-
  • 1970年01月01日 08:00

Android插件化,热修复,模块化开发

为什么要做Android插件化,热修复,模块化开发? app的模块越来越多,有点模块用一段时间就不用了,删除了担心下次还会用,不删除又增加了app的体积。有没有一种方法在我需要这个模块的时候就可以用...
  • zzq272804553
  • zzq272804553
  • 2016-12-30 13:39:48
  • 1784

android插件化,热修复,热更新。

android插件化,热修复,热更新。
  • donghejk
  • donghejk
  • 2017-12-11 20:35:23
  • 250

组件化,插件化和热更新

组件化,插件化和热更新什么是组件化:
  • llayjun
  • llayjun
  • 2017-08-11 14:20:18
  • 948

android热插件,热更新,热修复,模块化

应用层开发,有一段时间是谈native色变,把原生app开发者干了,用那个js来写应用,经过市场沉淀,人们也理智了。见过最过分的,两万元每月招RN工程师,做创业项目。真叫一个狠!     去年火起来...
  • u011216417
  • u011216417
  • 2017-06-09 23:16:53
  • 2561

Android插件化和热修复的区别和联系

【原文地址 点击打开链接】(文章最后一部分内容) 插件化框架: 此处输入图片的描述 插件化发展历史:博客一博客二 说到未来,也不得不提去年出来的ReactNative,RN比插件化...
  • wenyiqingnianiii
  • wenyiqingnianiii
  • 2016-10-21 13:02:26
  • 3478

插件化、模块化、组件化、热修复、增量更新、Gradle

1,对热修复和插件化的理解2,插件化原理分析3,模块化实现(好处,原因)4,热修复,插件化5,项目组件化的理解答:什么是组件化开发?个人理解是一种高内聚低耦合的开发模式。在移动开发里,它将一个大功能整...
  • fajuary
  • fajuary
  • 2018-03-29 22:07:28
  • 20

从模块化到组件化再到插件化

从模块化到组件化再到插件化 参考: http://blog.xiaohansong.com/2015/10/21/IoC-and-DI/ http://blog.csdn.net/dd86414...
  • u011486491
  • u011486491
  • 2017-04-17 22:02:35
  • 4427

Android 组件化,模块化,插件化

简单来说,模块化就是将一个程序按照其功能做拆分,分成相互独立的模块,以便于每个模块只包含与其功能相关的内容。模块我们相对熟悉,比如登录功能可以是一个模块,搜索功能可以是一个模块,汽车的发送机也可是一个...
  • xinnian25
  • xinnian25
  • 2017-06-24 21:37:16
  • 556

Android热修复与插件化(四)AndFix

一、热修复技术种类 技术对比 二、AndFix的基本介绍 官网 集成阶段: 1、在gradle中添加依赖 2、在...
  • qq_28595679
  • qq_28595679
  • 2017-07-28 15:27:05
  • 211
收藏助手
不良信息举报
您举报文章:模块化?组件化?插件化?热更新?热修复?
举报原因:
原因补充:

(最多只允许输入30个字)