APK 扩展文件(obb)
Google Play 要求用户下载的压缩后 APK 大小不超过 100 MB。 对于大多数应用而言,这个空间足够存放应用的所有代码和资产。 不过,有些应用需要更多空间存放高保真图形、媒体文件及其他大型资产。 以前,如果应用的压缩后下载大小超过 100 MB,您必须自行托管这些额外的资源并在用户打开应用时下载这些资源。托管和传送额外文件的成本可能并不低,而且用户体验通常也不太理想。为简化这一过程并改善用户体验,Google Play 现在允许您附加两个大型扩展文件以补充您的 APK。
Google Play 可以免费为您的应用托管这些扩展文件并将这些文件传送到设备。扩展文件保存在设备的共享存储位置(SD 卡或 USB 挂载分区;也称为“外部”存储空间),您的应用可以在此处访问扩展文件。在大多数设备上,Google Play 会同时下载扩展文件和 APK,因此当用户首次打开您的应用时,所需的一切都已准备就绪。不过在某些情况下,您的应用必须在启动时从 Google Play 下载这些文件。
概述
每当您使用 Google Play 管理中心上传 APK 时,您都可以选择向 APK 添加一个或两个扩展文件。每个文件的大小上限为 2 GB, 也就是说整个app包括扩展文件在内最大不能超过4.1GB(两个2GB的扩展文件 + 一个100MB的apk文件)。
* 主扩展文件是应用必需的额外资源所在的主要扩展文件。
* 补丁扩展文件是可选的,用于为主扩展文件提供小规模的更新。
两个扩展文件下载下来后的文件名是固定的,main扩展文件的文件名是main.<expansion-version>.<package-name>.obb,patch扩展文件的文件名是patch.<expansion-version>.<package-name>.obb。<expansion-version>表示该obb文件上传时所关联的apk文件的版本号(apk中AndroidManifest.xml中配置的android:versionCode字段的值),是一个整数值。<package-name>是apk的包名(apk中AndroidManifest.xml中配置的package字段的值)。扩展名始终为obb。文件名是上传时由Google Play自动重命名的,不需要开发者自己修改要上传文件的文件名。
存储位置
把apk安装到Android设备,然后将对应obb文件改名为:
main.<Bundle Version Code>.<包名>.obb
并拷贝到Android设备的“/android/obb/<包名>/ ”路径下。
下载流程
大多数情况下,Google Play 在将 APK 下载到设备上的同时会下载并保存您的扩展文件。不过,在某些情况下(Google Play SD卡权限未打开),Google Play 可能无法下载扩展文件,或者用户删除了以前下载的扩展文件。为应对这些情况,您的应用必须能够在主 Activity 启动时,使用 Google Play 提供的网址自行下载这些文件。
下载流程大致如下所示:
- 用户选择通过 Google Play 安装您的应用。
- 如果 Google Play 能够下载扩展文件(在大部分设备上都是如此),就会同时下载扩展文件和 APK。
如果 Google Play 无法下载扩展文件,就会仅下载 APK。 - 当用户启动您的应用时,应用必须检查扩展文件是否已保存在设备上。
a) 如果已保存,就说明应用已准备就绪。
b) 如果未保存,您的应用必须通过 HTTP 协议从 Google Play 下载扩展文件。在这种情况下,您的应用必须使用 Google Play 的应用许可服务向 Google Play 客户端发送请求,以获得包含每个扩展文件的名称、文件大小和网址的响应。有了这些信息,您就可以下载文件并将其保存到适当的存储位置。(就是在MainActivity启动的时候需要去请求下载obb,并下载到指定文件夹)
Unity打包obb
image.pngunity的分包只要勾选如图的split application binary就可以进行分包了,产生出apk和对应的obb数据包文件
网友评论