热修复、插件化、组件化的区别

今天这篇比较简单,但是很重要,主要来说热修复、插件化、组件化这三种技术的区别,只有知道了每种技术的区别在看源码的时候,才知道为什么实现细节会有所不同。

插件化和热修复的区别

插件化的目的是为了解耦业务模块,将一个应用里面不同的业务模块都做成一个apk,当用户点击对应的业务模块的时候才去动态加载对应的apk,而没有apk又能够独立运行

这样做的好处是:业务模块解耦、可以并行开发,按需加载内存占用更低。

比如今日头条APP,开始的时候就一个APP,后期把里面的汽车模块抽出来做成「懂车帝」,视频模块抽出来做成「火山小视频」(具体头条是不是使用的插件化我没研究过,这里只是举栗子说明),插件化技术可以很方便的完成这种业务模块的拆分

热修复的目的是为了解决线上的bug或者小功能的更新,做到不用为了解决小bug或者小功能而频繁发布版本。
这样做的好处就是:修复bug和更新小功能做到用户无感知、方便快捷。

插件化和热修复的相同点

它们都是使用动态加载技术来完成,插件化中宿主apk使用动态加载技术加载插件apk,热修复中APP使用动态加载技术加载修复补丁。

所以对当我们去分析一些插件化和热修复的开源框架的源码的时候,比如滴滴的VirtualAPK,微信的Tinker,虽然都是使用动态加载技术,但是由于目的不同,它们的一些实现方式也会不同,从使用场景的角度去理解这些不同就会豁然开朗。

关于组件化

除了插件化,我们还经常听说过一种技术是组件化,其实组件化不是一种技术,而是一种开发模式。

组件化的意思是,当项目越来越大,每个模块之间耦合性越来越高的时候,把项目进行拆分,按照一个一个业务模块进行拆分,然后把每个模块使用到的共同的功能抽取出来做成一个Lib去共同依赖,每个业务模块互不依赖、互相解耦,在开发的时候可以安排不同的开发人员去开发不同的模块,开发完毕以后单模块测试,最后整合到一起总体测试上线。

分析整个流程其实组件化只是一种开发模式,不是一种开发技术,这是它和插件化的最主要的区别。

最后欢迎关注我的公众号,谢谢。

在这里插入图片描述

关注我的公众号,我们一起进步
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值