腾讯开源的零反射全动态 Android 插件化框架

xfcyhades 2019-06-24

腾讯开源的零反射全动态 Android 插件化框架

从 2012 年插件化概念被提出,到现在插件化的百花争艳,可以说,插件化技术引领着 Android 技术的进步,所以插件化也是 Android 高级工程师需要掌握的技能之一。

今天推荐的这个项目是腾讯最新开源的:

Shadow

,它是一个腾讯自主研发的 Android 插件框架,经过线上亿级用户量检验。Shadow 不仅开源分享了插件技术的关键代码,还完整的分享了上线部署所需要的所有设计。与市面上其他插件框架相比,Shadow 主要具有以下特点:

  • 复用独立安装 App 的源码:插件 App 的源码原本就是可以正常安装运行的。
  • 零反射无 Hack 实现插件技术:从理论上就已经确定无需对任何系统做兼容开发,更无任何隐藏 API 调用,和 Google 限制非公开 SDK 接口访问的策略完全不冲突。
  • 全动态插件框架:一次性实现完美的插件框架很难,但 Shadow 将这些实现全部动态化起来,使插件框架的代码成为了插件的一部分。插件的迭代不再受宿主打包了旧版本插件框架所限制。
  • 宿主增量极小:得益于全动态实现,真正合入宿主程序的代码量极小。
  • Kotlin实现:core.loader,core.transform 核心代码完全用 Kotlin 实现,代码简洁易维护。

支持特性:

  • 四大组件
  • Fragment(代码添加和 Xml 添加)
  • DataBinding(无需特别支持,但已验证可正常工作)
  • 跨进程使用插件 Service
  • 自定义 Theme
  • 插件访问宿主类
  • So 加载
  • 分段加载插件(多 Apk 分别加载或多 Apk 以此依赖加载)
  • 一个 Activity 中加载多个 Apk 中的 View

阅读原文下载源码体验一波吧。

开源项目地址:

https://github.com/Tencent/Shadow

开源项目组织:Tencent

推荐阅读:

插件化框架知多少

一款更懂程序员的 Markdown 笔记工具

一个不错的音视频快速处理框架

今天的推荐不知道大家喜欢吗?如果你喜欢,请在文章底部留言和点赞,以表示对我的支持,你们的留言、点赞和转发关注是我持续更新的动力哦!

更多独立开发者赚钱经验分享,请关注公众号:非著名程序员,对话框回复关键字 “1024”,免费领取 30 本经典编程书籍。

相关推荐