F-Droid 支持 APK 扩展文件 (OBB)

很多游戏、地图等应用都需要大量的数据才能运行。Android 应用的 APK 文件大小限制在 100MB 以内,然而一个国家的地图文件远远超过 100MB 是很常见的。另外,为了让用户尽快运行,用户不应该第一次使用时仅仅为了启动应用就需要等待下载大量的数据。

为了提供一种灵活的传输大数据方式,Google 创建了 OBB,即“APK 扩展”文件。APK 和 OBB 文件可分开上传,因此这种方式还可以显著节省带宽。比如,游戏资源数据无需经常更改,所以可作为 OBB 提供。当该游戏应用自身(即 APK 文件)更新时,更新数据无需包括 OBB 文件中的游戏数据。

许多应用如游戏和 MAPS.ME 使用 OBB 文件。F-Droid 对 OBB 的支持方式为在 APK 之前下载并安装 OBB。这样 APK 安装之后即可使用,因为 OBB 已安装就位。同时,F-Droid 为应用提供 Intent 方式来获取 OBB 下载 URL,以便通过应用自身来处理 OBB 下载/更新。这种方式类似于 Google Play。

如需使用 OBB 支持,用户的 F-Droid 版本应不低于 v0.102,同时资源库应使用 fdroidserver v0.7.0 或更新版本。将 OBB 文件添加至存储库非常简单:将其复制到 APK 所在的同一文件夹,即 /path/to/fdroid/repo/

开发人员使用方式

在应用中使用 OBB 文件的一个细节是应用商店并不保证 OBB 文件的安装。这意味着在打开应用时可能无法找到 OBB 文件。在这种情况下,应用必须自己下载和安装 OBB 文件。Google Play 推荐使用其专有的应用授权的服务,而 F-Droid 提供了一种完全使用自由软件的解决方案。

应用可能需要两个 OBB 文件,为获取相应的链接,请使用以下 Actions 发送 Intent 至 F-Droid:

  • org.fdroid.fdroid.action.GET_OBB_MAIN_URL
  • org.fdroid.fdroid.action.GET_OBB_PATCH_URL

接着使用你喜欢的方法下载该链接,并确保该文件最终保存在设备外部存储上的 Android/obb/[package.name] 中。