加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱故事小小网_铜陵站长网 (http://www.0562zz.com/)- 视频终端、云渲染、应用安全、数据安全、安全管理!
当前位置: 首页 > 站长资讯 > 评论 > 正文

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

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

近日爱奇艺宣布开源基于Android App Bundle的动态化框架 Qigsaw。以下是其官方在演讲中对项目的介绍。

我们于2019年6月26号正式开源Qigsaw。

Qigsaw是爱奇艺自主研发的动态化框架,其核心优势如下:

  1. 利用Android App Bundle开发套件,极速开发体验。
  2. 支持Android App Bundle所有功能特性,"山寨"Play Core Library公开接口实现,开发者阅读官方文档即可愉快开发。
  3. 任何进程均可动态加载插件,支持Android四大组件动态加载。
  4. 如果您的应用有出海需求,可无缝切换至Android App Bundle方案。
  5. 仅一处Hook,少量私有API访问,保证框架稳定性。

Android动态化方案,在国内已蓬勃发展数年之久,其核心目的是减少应用包体积,提升应用安装率。Google在减少应用包体积上的探索也从未停息,下面我们一起来看看Google在这方面的努力。

Google减少应用包体积方案演进

回首Android第一个10年,其应用发布方式如下。

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

从应用开发到上传应用商店,最后再到用户下载环节,参与产物都是APK。

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

您的应用将包含所有CPU架构so文件、所有屏幕分辨率资源文件以及所有语言资源文件,那么存在如下两个问题。

  1. APK文件过大导致用户下载时长增加。

  2. 大量不会被使用的代码和资源侵占用户磁盘空间。

在国内,开发者一般都只会放一种CPU架构的so文件和一种屏幕分辨率资源文件,以此来减少包体积,但这种方式一定程度上会影响用户体验。

根据Google官方数据统计,从2012年至今,应用包体积平均增长了5倍左右,爱奇艺也不例外。

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

经过七年发展,爱奇艺越来越"膨胀"。

Google意识到包体积问题的严峻性,于Android 5.0推出Multiple APK,旨在减少安装包体积。

Multiple APK

Multiple APK是Google Play提供一个功能,它允许您的应用针对不同的设备配置发布不同的APK。通过一张图来了解下其工作流程。

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

图中左边手机是nexus 5,右边手机是nexus 6p,它们的CPU架构、屏幕分辨率均不同,因此Google Play会根据当前设备配置下载对应APK。

Google提供打包配置选项,让开发者根据不同设备配置生成不同APK文件。

  1. android { 
  2.   ... 
  3.   splits { 
  4.  
  5.     // Configures multiple APKs based on screen density. 
  6.  
  7.   density { 
  8.      ... 
  9.      // Specifies a list of screen densities Gradle should not create multiple APKs for. 
  10.       exclude "ldpi", "xxhdpi", "xxxhdpi" 
  11.     } 
  12.     // Configures multiple APKs based on ABI. 
  13.  
  14.     abi { 
  15.       ... 
  16.       // Specifies a list of ABIs that Gradle should create APKs for. 
  17.       include "x86", “x86_64" 
  18.  
  19.       // Specifies that we do not want to also generate a universal APK that includes all ABIs. 
  20.       universalApk false 
  21.     } 
  22.   } 

通过density abi 两个配置维度即可生成一系列APKs。

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

上图中生成的产物,通过文件名我们可以很清楚知道该APK作用于何种配置的设备。

Android设备的多样性,导致Multiple APK并未朝着Google期待的方向发展。因为您有可能为每个版本构建数百个APKs,大大降低迭代效率。国外开发者对此也并不感冒,这也成为Google的一块心病。

Android App Bundle

Android App Bundle是一种全新的应用上传格式(.aab),它包含所有编译代码和资源。当您上传aab文件至Google Play后,Google Play将aab文件拆分成一系列APKs并签名。

(编辑:我爱故事小小网_铜陵站长网)

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

推荐文章
    热点阅读