【Google Play】App Bundle 使用详解 ( 简介 | 应用内更新 | 即时更新 | 灵活更新 )

简介: 【Google Play】App Bundle 使用详解 ( 简介 | 应用内更新 | 即时更新 | 灵活更新 )

文章目录

Google Play 上架完整流程 系列文章目录

一、App Bundle 简介

二、App Bundle 定制化分发

1、应用内更新

①、即时更新

②、灵活更新

参考 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 包 , 删减了很多不必要的资源 ;

image.png



使用 App Bundle 可以实现定制化的灵活的分发 , 可以灵活的决定 分发内容 , 分发目标群体 , 分发时间 等分发要素 ;






二、App Bundle 定制化分发



1、应用内更新


应用内更新 : 可以在应用内直接启用更新机制 ; 类似于热修复 ;


Google Play 自带自动更新功能 , 不是所有的用户都会自动更新 , 如果 用户没有联网 , 连接的是运营商 3/4/5G 按流量收费网络 , 用户设置不自动更新 , 则该用户不会收到 App Bundle 推送的 自动更新 ;


对于开发者来说 , 用户无法更新到最新功能 , 可能会带来一些问题 ; 如 : 修复了重大 BUG , 添加了重要功能 , 都无法推送给用户 ; 多人游戏中 , 所有用户的使用版本必须一致 , 如果用户没有更新 , 则带来各种问题 ;



应用内更新的更新时机 :


即时更新 : 马上触发更新流程 , 不需要开发者有大量的开发 , 整个更新过程由 Google Play 实现 ;

灵活更新 : 开发者需要开发细粒度的更新流程 , 收到 Google Play 的更新推送后 , 选择一个合适的时机进行更新 ;


①、即时更新


即时更新示例 : 用户进入应用后 , 收到 Google Play 推送的更新 , 并显示本次更新内容 , 下载的更新包大小 ; 用户点击更新后 , 开始下载更新 , 并实时显示更新进度条 , 更新完成之后 , 扔留在应用中 , 继续使用 ;


整个下载流程都由 Google Play 控制 ;


开发者只需要触发更新 , 之后的工作都是 Google Play 负责 ;


image.png



即时更新代码示例 : 先创建 AppUpdateManager 对象 , 检查是否有更新 , 如果有则触发即时更新 , 或者像上面的示例一样 , 弹出一个界面 , 显示是否更新按钮 , 让用户触发即时更新 ;

image.png



②、灵活更新


灵活更新示例 : 用户使用应用时 , 提示用户当前有最新软件可用 ; 在界面中显示一个更新图标 ;

用户点击图标后 , 弹出对话框 , 让用户选择是否更新 ;


如果用户选择否 , 则直接退出当前界面 , 继续使用 ;

如果用户选择更新 , 则开始更新 , 更新的同时 , 用户可以继续使用该应用 ;

下载更新包并安装完成后 , 提示用户重启 , 并使用最新的应用功能 ;

image.png

目录
相关文章
|
8天前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
|
2月前
|
移动开发 Android开发 数据安全/隐私保护
移动应用与系统的技术演进:从开发到操作系统的全景解析随着智能手机和平板电脑的普及,移动应用(App)已成为人们日常生活中不可或缺的一部分。无论是社交、娱乐、购物还是办公,移动应用都扮演着重要的角色。而支撑这些应用运行的,正是功能强大且复杂的移动操作系统。本文将深入探讨移动应用的开发过程及其背后的操作系统机制,揭示这一领域的技术演进。
本文旨在提供关于移动应用与系统技术的全面概述,涵盖移动应用的开发生命周期、主要移动操作系统的特点以及它们之间的竞争关系。我们将探讨如何高效地开发移动应用,并分析iOS和Android两大主流操作系统的技术优势与局限。同时,本文还将讨论跨平台解决方案的兴起及其对移动开发领域的影响。通过这篇技术性文章,读者将获得对移动应用开发及操作系统深层理解的钥匙。
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
解密Google Cloud 全新 PaLM2及创新应用
这篇文章深入解析了Google Cloud推出的PaLM2大语言模型的特点及其在不同行业中的创新应用。
|
3月前
【Azure Logic App】在逻辑应用中开启或关闭一个工作流是否会对其它工作流产生影响呢?
【Azure Logic App】在逻辑应用中开启或关闭一个工作流是否会对其它工作流产生影响呢?
|
3月前
|
存储 SQL JSON
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
|
3月前
|
安全 前端开发 网络安全
【Azure App Service】访问App Service应用报错 SSL: WRONG_VERSION_NUMBER
【Azure App Service】访问App Service应用报错 SSL: WRONG_VERSION_NUMBER
137 0
|
3月前
|
存储 Linux 网络安全
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)
|
3月前
|
开发框架 前端开发 JavaScript
【Azure App Service】.NET应用读取静态文件时遇见了404错误的解决方法
【Azure App Service】.NET应用读取静态文件时遇见了404错误的解决方法
|
6月前
|
数据可视化 定位技术 Sentinel
如何用Google Earth Engine快速、大量下载遥感影像数据?
【2月更文挑战第9天】本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,批量下载指定时间范围、空间范围的遥感影像数据(包括Landsat、Sentinel等)的方法~
2477 1
如何用Google Earth Engine快速、大量下载遥感影像数据?
|
6月前
|
编解码 人工智能 算法
Google Earth Engine——促进森林温室气体报告的全球时间序列数据集
Google Earth Engine——促进森林温室气体报告的全球时间序列数据集
88 0

热门文章

最新文章