Android 模块化、组件化、插件化、热修复的区别

1、模块化

Android Studio提出的概念,module模块,包含两种格式application和library。概念是一个module是一个小项目,相对于包来说模块更灵活,耦合更低,随意插拨,根据不同关注点将项目共享部分或业务模块抽取出来形成独立module。

2、组件化

基于模块化,核心思想是角色的转换,在打包时是library,开始调试是application。单位是组件(module),目的是解耦与加快开发,隔离不需要关注的部分。分离独立的业务组件如微信朋友圈。

3、插件化

也是属于模块化的一种体现。将完整的项目按业务划分不同的插件,分治法,越小的模块越容易维护。单位是apk,一个完整的项目。作用与组件化不同于热更新,灵活性在于加载apk,按需下载,动态更新。

  插件化实现原理简单概括三步:

  通过dexclassloader加载。

  代理模式添加生命周期。

  hook思想跳过清单验证。

4、热修复

热修复与插件化都利用classloader实现加载新功能。不同的是热修复是为了修复bug,所以要将新的同名类替代同名的bug类,要抢先加载bug类之前加载新的类。插件化只是增加新的功能或资源文件,所以不涉及抢先加载旧类的使命。插件化比热修复简单,热修复在插件化基础上实现替换旧类bug。

5、模块化、组件化、插件化通讯方式不同

  模块化相互引入,抽取了common,其他模块自然要引入这个module。

  组件化主流是隐式和路由。隐式使解耦和灵活大大降低,因此路由是主流。

  插件化本身是不同进程,因此是binder机制进程间通讯。

不同特点:

    模块化(lib)主要解决问题是重用问题,不强调单独编译
    组件化(lib)主要解决问题是功能拆分,强调单独编译
    插件化(application)是所有组件都为apk的特殊组件化,特点可热更新

通讯方式不同点:

    模块化相互引入,需要引入需要的module
    组件化通讯方式分为隐式和路由。
    插件化本身是不同进程,因此是binder机制进程间通讯。

https://blog.csdn.net/hailong0529/article/details/89392064

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值