【问题标题】:Do android apps still need to contain an expansion files downloader?安卓应用还需要包含扩展文件下载器吗?
【发布时间】:2019-08-30 00:09:50
【问题描述】:

我的问题是当应用程序大于 50MB 并且必须使用它们时,需要应用程序能够下载扩展文件。

根据 Android 开发者帮助,应用程序可以依赖扩展文件,并且在较新的设备上,扩展文件会在 APK 之前/之后自动下载,而在“旧设备”上,开发者可以使用 Google 提供的库来管理下载。

但是,此信息已经提供了两年多。 这是一篇引用它的文章:http://www.anandtech.com/show/5629/android-market-app-size-raised-to-4gb-from-50mb 如果那些设备当时“旧”,那么它们现在很古老,可能不在我的 Android 应用程序目标设备的范围内。

那么这些旧设备在安装过程中可能无法下载扩展文件?他们之间有什么共同点?这种设备可能使用的 API 级别是什么?最近(今天是 2014 年 5 月 7 日)有没有人真正需要在他们的应用程序中安装下载器? 请尽可能多地发布有关这些“旧设备”用例的信息,这些用例在安装期间不会下载扩展文件(并且仅要求用户重新安装应用程序是行不通的)。

我问的原因是因为我想避免将 java 下载库(和下载界面)添加到我的应用程序中,因为它是使用 Android NDK 开发的本机应用程序,它会给项目和处理我的主要原生活动的生命周期和生命周期。

【问题讨论】:

  • 根据您的经验,您找到合适的答案了吗?谢谢

标签: android apk-expansion-files


【解决方案1】:

不只是旧设备无法下载,任何设备都可能 - 例如,如果在下载过程中网络中断,或者有人在下载后设法删除了扩展文件。

docs state

下载过程

大多数情况下,Google Play 会在将 APK 下载到设备的同时下载并保存您的扩展文件。但是,在某些情况下,Google Play 无法下载扩展文件,或者用户可能已经删除了之前下载的扩展文件。要处理这些情况,您的应用必须能够在主 Activity 启动时使用 Google Play 提供的 URL 自行下载文件。

因此,如果您完全使用扩展文件,则需要处理当前未下载文件的情况。

【讨论】:

  • 在这些情况下(安装过程中网络丢失或用户删除了文件)我会要求他们重新安装应用程序来处理 - 这应该可以很好地重新获得文件,除非网络通常遇到问题意味着我的应用程序也无法下载它们。所以我仍然看不到必须来自哪里..
  • 要求他们重新安装也可以,但不是很友好,并且有点假设您的用户比普通用户更聪明。友好且易于理解的事情是他们启动您的应用程序,它会自动处理获取必要的文件;您建议的不太友好的方法是让您的用户通过手动卸载(丢失任何应用程序数据)然后再次安装来自行解决问题 - 这是一个相当复杂的过程,在这种情况下很大一部分用户可能会简单地放弃使用你的应用而不是那样做。
  • 所讨论的应用程序是一款游戏,所有游戏数据也将存储在云端,因此在重新安装期间不会丢失任何东西。 Ofc 重新安装应用程序并非易事,但我可以忍受这个限制(暂时),只要它是唯一出现的问题。我需要知道的是,即使网络连接正常,是否存在重新安装不起作用的用例。
【解决方案2】:

不,您不需要下载器库。

当您在 Google 控制台网站上传 APK 时,您只需上传 OBB 文件(主 OBB 文件或主文件和扩展文件)。

因此,当用户下载您的应用程序时,OBB 是 APK 的一部分,并被下载并安装在设备的 OBB 文件夹中。

如果您不删除 OBB 文件,您的应用文件大小会增加。您可能希望按原样使用它,或者您可能希望从中提取文件,然后再将其删除。但是你自己控制文件,你不需要文件下载器库。

问题发生在某些设备上(我无法告诉您是哪些设备,但有些设备可能是 5.0 等较旧的 Android 版本),这些设备未授予用户对下载 obb 文件的 OBB 文件夹的权限,并且复制到,因此您的应用找不到该文件。有一些解决方法,例如重新启动应用程序,我现在不记得了。

我决定停止使用 obb 文件,因为一些用户抱怨应用程序的大小,并在安装后开始使用 Dropbox 来下载我的应用程序所需的文件。 Dropbox 使用起来非常简单,您可以通过 url 下载文件。从那以后我再也没有抱怨过。

【讨论】:

  • 只是为了检查我是否正确:截至今天,如果有人使用 APK 扩展文件并针对相对最近的设备,可以假设 Play Store 应用程序将下载 OBB。除非在下载 APK 和/或 OBB 时出现网络/空间不足问题。在这种情况下,我不确定你到达什么状态。
  • 正确,据我所知,如果设备中有足够的空间,Play Store 应用程序将下载您的整个 apk(带有 OBB 文件)。如果空间不足,Play Store 应用会向用户提示空间不足,并帮助他们释放空间。现在,如果在应用程序下载后,在应用程序安装过程中,空间用完,您的应用程序必须检查 OBB 文件是否已安装,如果您没有空间继续,您需要给用户一个消息,他们需要释放空间,以便您可以从 OBB 文件中提取数据(如果需要提取)。
  • 如果出现网络错误,Play Store应用会向用户发送消息,应用没有下载,用户必须重新下载。他们将无法安装它。只有下载成功才能保证OBB文件下载成功。
  • 是的,必须先下载整个 APK,然后才能安装应用程序。我好像有1GB的游戏,如果安装过程中没有足够的空间,他们会提示用户释放空间。但此时 OBB 文件已完全下载。我只有大约 100 MB 的额外空间,所以 DropBox 非常好用。这很简单,将您的文件上传到 Dropbox,他们将获得一个 URL,您可以通过 HTTP 标准 Java 库在您的应用程序中下载该 URL。
  • 只是一个更正:如果您的应用有更新,则只有在您删除或重命名 OBB 文件时才会重新下载整个 OBB 文件。如果您以与原始方式相同的方式将其存储在设备中,则不会重新下载。
猜你喜欢
  • 2012-12-17
  • 2011-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-28
  • 2015-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多