转载请注明出处: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://juejin.im/entry/58ad2730570c35006bcde6fb
热修复
(图片转自网路)
相信大部分APP软件的开发流程都是上面那样。
版本上线之后,用户或者市场反馈说有bug,然后立马加班紧急修复,接着又发布版本上线;然后又反馈回来说有新的bug,好嘛,接着修复然后发新版本上线;这样一直修复bug发版本上线……
虽然软件的bug避免不了,但是总是发布新版本,让用户去下载更新使用,会让很多用户失去耐心和信息。严重影响用户使用和体验,代价是很大的!
Andfix
Hotfix
Tinker
QFix
Amigo
Robust
Sophix