概述
插件化是一种动态升级app功能的解决方案,不同于热修复(仅仅是修复功能),类似于RN、Weex(目的类似)。都是为了在不发版本的情况下,可以让用户用上最新的功能。不过RN、Weex还额外支持跨平台。相对于RN和Weex,插件化有以下的优缺点:
优点:
- 对于业务方,无额外的学习成本,基本无感知
- 性能等同于原生、可以做任何原生可以做的事情
- 天然代码隔离、使得插件化的代码更加的“高内聚、低耦合”
- 插件并发开发,开发之间互不影响
缺点:
- 稳定性差,使用了大量大反射来实现,尤其是Android P以后Google对系统API的调用做出了限制,虽然有办法跳过(后面会说),但是却无疑增加了使用风险。
- 安全性低,恶意插件将会有比较大的权限,来做破坏软件的事情。(一般会添加签名校验)
- 插件化目前没有一套通用的规范,基本上都是各用各的,导致插件无法通用
- 只适用于android,无法和iOS保持方案统一
事实上,有一部分的项目采用动态化、不仅仅是为了其动态性,更是为了对模块化的升级,对于大型复杂项目而言,单纯的“模块化”已经不能很好的隔离分解项目的复杂性,而“插件化”可以帮助项目,将独立且足够内聚的业务独立出来成为一个插件,然后交给其他团队来维护。
康威定律:软件源代码的组织结构要与开发团队的组织结构尽量保持一致

本文探讨了Android插件化的概念、优缺点,核心在于类加载和资源加载的实现。面对四大组件启动、资源命名冲突、Android P后的反射限制及插件与宿主三方库冲突等问题,文章提出了各种解决方案,包括占坑法、欺上瞒下、资源ID的定制和编译脚本优化。随着Android系统的更新,插件化的未来趋势和替代方案成为关注点。
最低0.47元/天 解锁文章
402

被折叠的 条评论
为什么被折叠?



