那么在 Android 中,何为「 插件化 」,顾名思义,就是把一些核心复杂依赖度高的业务模块封装成独立的插件,然后根据不同业务需求进行不同组合,动态进行替换,可对插件进行管理、更新,后期对插件也可进行版本管理等操作。在插件化中有两个概念需要讲解下:
- 宿主
所谓宿主,就是需要能提供运行环境,给资源调用提供上下文环境,一般也就是我们主 APK ,要运行的应用,它作为应用的主工程所在,实现了一套插件的加载和管理的框架,插件都是依托于宿主的APK而存在的。
- 插件
插件可以想象成每个独立的功能模块封装为一个小的 APK ,可以通过在线配置和更新实现插件 APK 在宿主 APK 中的上线和下线,以及动态更新等功能。
那么为何要使用插件化技术,它有何优势,能给我们带来什么样好处,这里简单列举了以下几点:
-
让用户不用重新安装 APK 就能升级应用功能,减少发版本频率,增加用户体验。
-
提供一种快速修复线上 BUG 和更新的能力。
-
按需加载不同的模块,实现灵活的功能配置,减少服务器对旧版本接口兼容压力。
-
模块化、解耦合、并行开发、 65535 问题。
深入理解Android插件化技术
现在普通人一听“宿主”第一想到的就是欧美电影里的恐怖画面,甚至感觉瘆得慌。但是在移动开发领域,我们经常会提及的“宿主”却有完全不一样的意义,那就是支持插件的app主体。
从2012年插件化概念被提出,到2016年的时候,插件化技术百家争鸣,被一线大厂广泛使用,可以说成为了Android高级工程师所必须具备的技能之一,几乎引领了Android技术的进步!
近些年,一线互联网大厂几乎对移动互联网形成了垄断,app的功能越来越多,比如下面这些app(美团、支付宝等):
每个app都集成了许多功能入口,美团上有“