爱奇艺基于 Android App Bundle 动态化框架 Qigsaw 1.2.0 版本发布啦

1,456 阅读2分钟

更新日志如下:

  1. 修复多ClassLoader模式,插件Application可能未初始化的问题。

  2. 插件多ABI支持,依据用户当前设备CPU架构及APK自身ABIs来加载对应插件ABI的Native Library。

  3. 依据项目工程NDK配置以及APK文件lib目录的ABI类型,来自动选择内置插件存放APK lib还是assets目录。内置插件存放APK lib目录可减少插件一次拷贝工作,节省用户磁盘空间。

  4. Qigsaw Gradle Plugin 修复3.2~3.5兼容性bug。

  5. 调整Report相关接口,包括SplitLoadReporter、SplitInstallReporter等,提供更多插件信息供开发者投递。

  6. SplitInstallReporter 和 SplitLoadReporter 失败通知,包含已加载或安装成功的插件数据。

  7. 应 Qigsaw 接入者需求,增加是否校验插件签名配置。详情参考 SplitConfiguration 中 verifySignature 配置。

Qigsaw 是国内首款且唯一一款基于 Android App Bundles 的 Android 插件化技术。Android App Bundles 是 Google 于 2018 年推出的一款 全新应用分发流程,可以在应用版本不更新的情况下,动态加载插件。由于 Android App Bundles 依托于 Google Play Service, 因此,在国内无法使用该技术。Qigsaw 核心功能是利于 Android App Bundle 开发工具及周边打包出 App 及插件,并自研一套 插件加载方案在应用运行期动态加载插件。

其核心优势如下:

  1. 完全利用 Android App Bundle 开发工具,让插件开发者享受极速开发体验。
  2. 如果有国际化需求,Qigsaw 可无缝切换至 Android App Bundles 方案。
  3. Qigsaw Core SDK 完全仿照 Android App Bundles 提供的公开 SDK 接口,开发者阅读官方文档即可开发。
  4. 超高稳定性,全局仅一处 Hook 和极少量私有 API 访问。
  5. 插件接入改造非常方便,对开发者相当友好,开发者无需关心插件的分发及上传,Qigsaw 提供一条龙服务。

Qigsaw 目前在爱奇艺 APP 矩阵中全面开花。爱奇艺 App 已接入插件数 8 个,包括百度小程序框架、爱奇艺小游戏框架、小视频、泡泡、弹幕等为爱奇艺 App 节省包体积 18.5 M之多。 爱奇艺极速版在其项目立项阶段就决定使用 Qigsaw 作为缩减包体积的重要手段,目前已用 Qigsaw 减少 7M 之多的包体积。 爱奇艺内部其他业务线包括好多视频、游戏中心、直播机等都已接入 Qigsaw。

Qigsaw 开源地址:github.com/iqiyi/Qigsa… 。 欢迎大家 Star 交流。