插件化开发的优点

  1. 自解耦

把一部分功能单独编译,减少主App的体积,加快编译

  1. 免安装
  2. 动态更新,模块定制

Android Lite 和 Android HD 问题,腾讯游戏大厅

插件化发展史

image.png

  1. 应用市场支持
    1. 集成插件化框架的App不能在Google Play发布
  2. 跟Google对抗
    1. 维护成本高
    2. 稳定性差

实现插件化需要太多的黑科技,它给项目的维护成本和稳定性增加了诸多不确定性

维术:2018年Android 9.0上私有API的限制几乎称得上是盖棺定论了——曾经波澜壮阔的插件化进程必将要退出历史主流。如今的插件化技术朝两个方向发展:其一,插件化的工程特性:模块化/解耦被抽离,逐渐演进为稳定、务实的的组件化方案;其二,插件化的黑科技特性被进一步发掘,inline hook/method hook大行其道,走向双开,虚拟环境等等

  1. didi/VirtualAPK 2018年停止更新
  2. Manbang/Phantom 2019年7月停止更新,Gradle 3.3 + Android Gradle Plugin 2.3.3,不支持 Android Data Binding

插件化实现原理

待完善

参考

https://github.com/tiann/understand-plugin-framework/blob/master/README.md
插件化技术的演进之路
探索Android开源框架 - 10. 插件化原理
【Android 修炼手册】常用技术篇 — Android 插件化解析 - 掘金
RePlugin 高级话题