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

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

发布时间:2019-07-05 19:11:11 所属栏目:业界 来源:佚名
导读:克日爱奇艺公布开源基于Android App Bundle的动态化框架Qigsaw。以下是其官方在演讲中对项目标先容。 我们于2019年6月26号正式开源Qigsaw。 Qigsaw是爱奇艺自主研发的动态化框架,其焦点上风如下: 操作Android App Bundle开拓套件,极速开拓体验。 支持An
副问题[/!--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并署名。

(编辑:河北网)

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

热点阅读