文章目录
前言
一、当前 Google Play 上传 APK 文件现状
二、APK 扩展文件名格式
三、APK 扩展文件下载地址
四、博客资源
前言
2021年08月01日 之后 , Google 开始强制新应用必须使用 AAB 格式 的包 , 旧的应用仍可以使用 APK 格式的安装包 ;
目前 Google 不推荐使用 APK 包 , 连带 APK 扩展文件的支持也降低了 , 之前还可以动态修改 APK 扩展文件 , 现在只能在上传 APK 文件时添加扩展文件 ;
一、当前 Google Play 上传 APK 文件现状
Google Play 中上传 APK 文件大小限制到 100MB , 如果 APK 的大小超过 100MB , 则需要将超出部分放置到扩展文件中 ;
开发者可以将超出部分 , 放在扩展文件中 , 在 Google Play 管理中心 , 每个 APK 文件都可以添加 2 22 个扩展文件 , 每个扩展文件最大 2 GB ;
2 22 个扩展文件中 , 一个是 " 主扩展文件 " , 另外一个是 " 补丁扩展文件 " ;
补丁扩展文件 是可选项 , 用于为 主扩展文件 提供更新 , 可以不添加 ;
目前的 Google Play 管理中心中 , 扩展文件只能添加新的 APK 版本时添加 , 不能在上线后额外添加 ;
二、APK 扩展文件名格式
APK 文件的格式可以是任意格式的文件 , 不过一般都采用 zip 或 7z 压缩格式 , 极限压缩到最小 ;
Google 重构后的 APK 扩展文件名称都会是如下格式 :
[main|patch].<expansion-version>.<package-name>.obb
APK 扩展文件的文件名分为 3 33 部分 :
[main|patch] : 如果是 主扩展文件 , 是 main ; 如果是 补丁扩展文件 是 patch ; <expansion-version> : 这是当前 APK 的版本号 , 在 Module 下的 build.gradle 的 android.defaultConfig.versionCode 中定义 ; android { defaultConfig { versionCode 6 } }
<package-name> : 是应用的包名 , 如 com.example.app ;
obb : obb 是 Opaque Binary Blob 的缩写 ;
不管上传到 Google Play 管理平台 中是什么名称的文件 , 下载下来的文件都会是上述格式的 ;
如 : 当前的 APK 版本号是 6 66 , 当前是 主扩展文件 , 文件包名是 com.example.app , 则 主扩展文件 的名称是
main.6.com.example.app.obb
当前的 APK 版本号是 188 188188 , 当前是 补丁扩展文件 , 文件包名是 com.example.app , 则 补丁扩展文件 的名称是
patch.188.com.example.app.obb
三、APK 扩展文件下载地址
从 Google Play 下载 APK 文件时 , 会同时下载 APK 扩展文件到
<shared-storage>/Android/obb/<package-name>/
目录中 , 注意该文件不能删除 , 移动 , 重命名 , 启动应用时 , Android 系统会自动检查该 APK 扩展文件是否存在 , 如果不存在 , 会自动从 Google Play 中下载 , 如果 Google 发现该文件不存在 , 即使已经下载完了 , 还要重新下载一遍 , 浪费流量 ; 该文件就在这放着不动 ;
<shared-storage> 是 SD 卡根目录 ;
<package-name> 是应用的包名 ;
下载完之后 , 可以将该文件解压到 内置存储 / SD 卡 中 , 不过这样就会导致一个文件始终占用两份存储空间 ;
Google 给出的方案是使用 Google 提供的 APK Expansion Zip Library 库 , 可以直接从 ZIP 压缩文件中读取文件 ; 这个库看情况吧 , 我要在 NDK 中读取文件 , 好像用不了 ;