【Google Play】App Bundle 使用详解 ( 简介 | 应用内更新 | 即时更新 | 灵活更新 )
Google Play 上架完整流程 系列文章目录
【Google Play】创建 Google 开发者账号 ( 注册邮箱账号 | 创建开发者账号 )
【Google Play】创建并设置应用 ( 访问权限 | 内容分级 | 受众群体 | 类别及联系方式 | 商品详情 )
【Google Play】App Bundle 使用详解 ( 简介 | 应用内更新 | 即时更新 | 灵活更新 )
参考 Create and set up your app 文档 , 创建 Google Play 中要上架的应用 ;
一、App Bundle 简介
App Bundle 是 Android 提供的新的应用分发格式 , 用于取代之前传统的 APK 分发格式 ;
Android App Bundle 文件不能直接用于下载 , Google Play 会从该 App Bundle 中提取必要文件 , 自动生成一个匹配用户的 APK 文件 ; 这些优化的 APK 文件 , 比传统的单一 APK 文件体积小很多 ;
如 : 用户使用的是 arm64 芯片的 xxhdpi 手机 , 当前语言环境是英文的 , Google Play 就会按照如下要求生成新的 APK 文件 ;
- 动态库方面 : 删除 armeabi-v7a , x86 , x86_64 的动态库 , 只保留 arm64-v8a 动态库 ;
- 资源文件方面 : 删除除 xxhdpi 之外的资源文件 , 只保留 xxhdpi 资源文件 ;
- 国际化资源方面 : 只保留英文国际化资源 ;
APK 进行了上述优化 , 肯定会一定程度上减少了应用体积 ;
开发者上传 单一的 App Bundle , 由 Google Play 进行 动态分发 , 比上传多个 APK 更易于维护 ;
下图是官方提供的演示效果 , 左侧是传统 APK 打包过程 , 将所有资源打包到 APK 文件中 ; 右侧是使用 App Bundle 后 , Google Play 为下载应用的用户生成的定制 APK 包 , 删减了很多不必要的资源 ;
使用 App Bundle 可以实现定制化的灵活的分发 , 可以灵活的决定 分发内容 , 分发目标群体 , 分发时间 等分发要素 ;
二、App Bundle 定制化分发
1、应用内更新
应用内更新 : 可以在应用内直接启用更新机制 ; 类似于热修复 ;
Google Play 自带自动更新功能 , 不是所有的用户都会自动更新 , 如果 用户没有联网 , 连接的是运营商 3/4/5G 按流量收费网络 , 用户设置不自动更新 , 则该用户不会收到 App Bundle 推送的 自动更新 ;
对于开发者来说 , 用户无法更新到最新功能 , 可能会带来一些问题 ; 如 : 修复了重大 BUG , 添加了重要功能 , 都无法推送给用户 ; 多人游戏中 , 所有用户的使用版本必须一致 , 如果用户没有更新 , 则带来各种问题 ;
应用内更新的更新时机 :
- 即时更新 : 马上触发更新流程 , 不需要开发者有大量的开发 , 整个更新过程由 Google Play 实现 ;
- 灵活更新 : 开发者需要开发细粒度的更新流程 , 收到 Google Play 的更新推送后 , 选择一个合适的时机进行更新 ;
①、即时更新
即时更新示例 : 用户进入应用后 , 收到 Google Play 推送的更新 , 并显示本次更新内容 , 下载的更新包大小 ; 用户点击更新后 , 开始下载更新 , 并实时显示更新进度条 , 更新完成之后 , 扔留在应用中 , 继续使用 ;
整个下载流程都由 Google Play 控制 ;
开发者只需要触发更新 , 之后的工作都是 Google Play 负责 ;
即时更新代码示例 : 先创建 AppUpdateManager 对象 , 检查是否有更新 , 如果有则触发即时更新 , 或者像上面的示例一样 , 弹出一个界面 , 显示是否更新按钮 , 让用户触发即时更新 ;
②、灵活更新
灵活更新示例 : 用户使用应用时 , 提示用户当前有最新软件可用 ; 在界面中显示一个更新图标 ;
用户点击图标后 , 弹出对话框 , 让用户选择是否更新 ;
- 如果用户选择否 , 则直接退出当前界面 , 继续使用 ;
- 如果用户选择更新 , 则开始更新 , 更新的同时 , 用户可以继续使用该应用 ;
下载更新包并安装完成后 , 提示用户重启 , 并使用最新的应用功能 ;
相关文章
- Google Earth Engine APP(GEE) ——一个简单的添加红绿蓝图例的APP
- Google Earth Engine(GEE)app——巴西非法采矿森林扰动监测
- Google Earth Engine APP(GEE)——一个简单的NDVI/EVI区域时序变化情况chart图表
- Google Earth Engine APP(GEE)——用一个选择器选择不同城市的应用
- Google Earth Engine APP —— 全球地表温度监测APP(时序折线图和直方图展示)按照每个月展示
- Google Earth Engine APP——在线计算23类植被指数app代码
- Google Earth Engine APP——影像条带色差、色调不均匀等现象解决方案Landsat5 NDWI Image Restoration APP
- Google Earth Engine APP ——Forest Health监测APP(可下载)
- Google Earth Engine APP—— 一个不用写代码可以直接下载相应区域的1984-2021年的GIF遥感影像动态图
- Google Earth Engine APP——一个完整的地图图例APP(美国西部土地利用分类)
- Google Earth Engine APP(GEE)—查看亚马逊平原的1984——至今的每一景影像
- Google Earth Engine 教程——栅格矢量数据转化和导出
- Google Earth Engine(GEE)——使用ee.Algorithms.IsEqual查看两张影像相等靠谱不?
- Google Earth Engine——Landsat基于单张影像的循环批量下载
- Google Earth Engine(GEE)——NDVI影像波段的融合成一幅影像:Landsat的NDVI影像举例
- 云平台家族新星MAAP(Multi-Mission Algorithm and Analysis Platform)的出现GEE(Google Earth Engine)和微软行星云计算还能扛得住吗?
- Google Earth Engine(GEE)——在线实现Sentinel-2 和 Landsat 8 SWIR1 反射率之间的线性关系(在线出线性图)
- Google Earth Engine ——用GPP和NPP计算生物量(朝鲜为例)
- Google Earth Engine APP(GEE)——用Sentinel1和2进行指定区域的NDVI监测(逐月)
- Google Earth Engine(GEE)——计算特定区域得每年特点月份得1985-2021年得ndvi影像值
- Google Earth Engine App(GEE)——Global Safety Net
- Google Earth Engine(GEE)——image.select(...).rgbToHsv is not a function
- Google Earth Engine(GEE)扩展——制作的GEE app的误区
- Google Earth Engine APP(GEE)——加拿大陆地生态系统中的土壤碳储量数据集
- Google Earth Engine——全球土地覆盖产品的基础数据集是MODIS年度土地覆盖产品(MCD12Q1)中的IGBP层
- Google Earth Engine ——1958-2020年TerraClimate 全球陆地表面每月气候和气候水平衡的数据集
- Google 2019上海开发者大会一日游(安卓)
- Google Web Toolkit 教程