android模块化和组件化区别,Android 模块化、组件化、插件化以及热修复的比较

前言

已经很久很久没有更新博客了,去年后半年太忙,没怎么抽出时间来写博客。之后给本身定个小目标,无论多忙,每周都要写一篇博客。闲话很少说,下面开始扯正题,最近有个同事问我“模块化、组件化,插件化还有热更新他们之间有什么关系和区别?“web

概述

随着产品的业务不断的增长,咱们的APP中代码就会愈来愈多,这时侯为了方便咱们多个成员之间协同开发,因此就出现的根据业务,将咱们代码分割为不一样的模块(用户中心模块,首页模块,启动模块,消息模块等),即便这样随着业务的增长仍是会出现如下问题

一、APP的体积愈来愈大,功能模块愈来愈多,编译速度变慢,但并非全部的用户都用到每一个模块。

二、模块间的耦合程度高,协同开发的成本愈来愈大。

这个时候咱们就出现了组件化,根据业务,把耦合度高的组件或基础库,抽离出来,造成单独的组件,在底层供其余上层模块调用。同时因为APP体积大,一个APP包含太多模块,并非全部的模块都会用到,因此就出现了,先有一个壳(宿主APP),而后根据用户须要动态加载其余模块的APK,这就是插件化技术。咱们上线后有时候会出现须要紧急修复的bug,这时候若是改bug从新出包,很麻烦,耗费人力。因此就出现了热修复技术。

1f8aff84a12abfd567d7705bd0d23c59.png架构

模块化

定义: 就是按照业务逻辑,将功能属于同一业务的代码整合到一块儿,模块的功能相对比较复杂。

使用: 咱们APP中通常都包含首页,用户中心,启动,消息中心等模块,根据业务将属于他们各自的代码整合在一块儿,造成模块化。

目的 隔离,高内聚

架构定位 横向分层,根据业务逻辑进行划分。svg

组件化

定义: 个人理解组件化就是,咱们开发中的一种设计思想,咱们在组件化的过程当中,有些组件或基础库在多个模块中都有调用,咱们能够把这些耦合度高的提炼出来,造成组件。供上层模块调用。

使用 将咱们用到的ListView,TabView,Dialog等抽离成单独的组件。

目的复用 解耦

架构定位纵向分层模块化

插件化

顾名思义,它是把某个功能或者业务模块,单独抽离出来以减小宿主APP的体积,在使用该模块的时候再去加载它,这就是插件化技术。

对于插件化来讲他将APP分红多个模块每一个模块都是一个APk,而对组件化来讲每一个模块是一个lib。

f6ed34d252a3409d2bd03049a81adbe3.png组件化

热修复

热修复就是不用二次安装客户端,在用户没有感知的状况下,修复线上的bug。插件

组件化和模块化的比较

组件化更增强调的是复用,低耦合,一个组件可以在多个模块中重复调用,而模块化更增强调业务的高内聚,相近的业务功能都在同一模块中。设计

组件化和插件化的比较

一、组件化是一种思想,插件化是一种技术。

二、组件化中每一个模块对应的是一个lib,而插件化中每一个模块对应的是一个apk。

三、组件化是为了提升代码中的内聚度,而插件化是为了减小宿主APP的体积而出现的。xml

插件化和热修复的比较

一、二者都是动态加载技术的应用。

二、插件化的对象是插件,也就是要加载运行APK包。 而热修复的对象是补丁,就是要加载运行patch,dex,jar等一系列包含dex修复内容的文件。对象

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值