加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

爱奇艺开源 Qigsaw,基于 Android App Bundle 的动态化框架

发布时间:2019-07-05 20:09:48 所属栏目:业界 来源:佚名
导读:副标题#e# 近日爱奇艺宣布开源基于Android App Bundle的动态化框架Qigsaw。以下是其官方在演讲中对项目的介绍。 我们于2019年6月26号正式开源Qigsaw。 Qigsaw是爱奇艺自主研发的动态化框架,其核心优势如下: 利用Android App Bundle开发套件,极速开发体验

应用进程所使用到的ClassLoader和Resources均在LoadedAPK中创建。

爱奇艺开源 Qigsaw,基于 Android App Bundle 的动态化框架

通过Android 9.0 LoadedAPK源码片段,我们一起了解下Split APKs加载过程。

ClassLoader创建。

爱奇艺开源 Qigsaw,基于 Android App Bundle 的动态化框架

通过createOrUpdateClassLoaderLocked方法名,可以知道该方法是用于创建和更新ClassLoader。该方法有两个核心步骤。

  1. 如果mClassLoader为空,则创建PathClassLoader实例。

  2. 如果addedPaths不为空,则更新PathClassLoader实例。

该方法指明,应用进程是可以动态加载Split APKs代码。

Resources创建。

爱奇艺开源 Qigsaw,基于 Android App Bundle 的动态化框架

通过getResources方法代码片段,可知Split APKs的资源路径作为mResources创建参数。

关于更多Split APKs加载原理细节,请阅读相关Android源码。

Play Core Library

文章开始介绍Qigsaw核心优势有提到,Qigsaw"山寨"Play Core Library公开接口实现,开发者阅读其官方文档即可开发。因此,在此主要介绍下Play Core Library工作流程。

爱奇艺开源 Qigsaw,基于 Android App Bundle 的动态化框架

当爱奇艺App在运行过程中,用户需要使用游戏插件,会经历以下过程。

  1. 爱奇艺App通过Play Core Library发起游戏APK安装请求。

  2. 当Google Play收到请求后,首先请求游戏APK相关数据信息,请求成功后开始下载并安装游戏APK。

  3. 在请求、下载以及安装整个过程中,Google Play会将整个过程所有状态返回给爱奇艺App,包括请求结果、下载进度、安装结果等。

  4. 当安装完成以后,爱奇艺App就可以使用游戏APK。

在Android 7.0版本之前,当Split APK安装完成之后,应用无法立即使用Split APK。因此Play Core Library提供SplitCompat模式让App可立即使用Split APK。

爱奇艺动态化框架Qigsaw

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读