android应用程序还需要包含扩展文件下载程序吗?

android应用程序还需要包含扩展文件下载程序吗?,android,apk-expansion-files,Android,Apk Expansion Files,我的问题是,当应用程序大于50MB并且必须使用扩展文件时,应用程序是否需要能够下载扩展文件 根据Android开发者帮助,应用程序可以依赖于扩展文件和更新的设备,扩展文件在APK前后自动下载,而在“旧设备”上,开发者可以使用谷歌提供的库来管理下载 然而,这一信息已经提供两年多了。 这里有一篇文章对此进行了讨论: 如果这些设备在当时是“旧”的,那么它们现在已经过时了,可能不在我的Android应用程序的目标设备范围内 那么,哪些旧设备在安装过程中可能无法下载扩展文件?他们之间有什么共同点?这种设备

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

根据Android开发者帮助,应用程序可以依赖于扩展文件和更新的设备,扩展文件在APK前后自动下载,而在“旧设备”上,开发者可以使用谷歌提供的库来管理下载

然而,这一信息已经提供两年多了。 这里有一篇文章对此进行了讨论: 如果这些设备在当时是“旧”的,那么它们现在已经过时了,可能不在我的Android应用程序的目标设备范围内

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


我之所以问这个问题,是因为我不想在我的应用程序中添加java下载库(和下载接口),因为它是一个原生应用程序,使用Android NDK开发,它会给项目以及我主要原生活动的生命周期和生命周期的处理带来复杂性

下载失败的不仅仅是旧设备,还有任何设备——例如,如果网络在下载过程中中断,或者如果有人在下载扩展文件后删除了扩展文件

委员会:

下载过程

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


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

不,您不需要下载程序库

当你在谷歌控制台网站上传你的APK时,你需要做的就是上传你的OBB文件(主OBB文件或主和扩展文件)

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

如果不删除OBB文件,则应用程序文件大小会增加。您可能希望按原样使用它,也可能希望从中提取文件,然后将其删除。但是您可以自己控制文件,并且不需要文件下载程序库

问题发生在一些设备上(我不能告诉你是哪种设备,但也有一些可能是5.0等较旧的Android版本),这些设备没有授予用户访问OBB文件夹的权限,OBB文件夹是下载和复制OBB文件的地方,因此你的应用程序找不到该文件。有一些解决办法,比如重启应用程序,我现在不记得了


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

在这些情况下(安装过程中网络丢失或用户删除了文件),我会要求他们重新安装应用程序来处理,这应该可以恢复文件,除非网络普遍出现问题,这意味着我的应用程序也无法下载它们。所以我仍然不知道必须从何而来..要求他们重新安装可能也行,但不是很友好,并且有点假设你的用户比一般人更聪明。友好且易于理解的做法是他们启动你的应用程序,并自动获取必要的文件;您建议的不太友好的方式是让用户通过手动卸载(丢失任何应用程序数据)自行解决问题然后再次安装-这是一个相当复杂的过程,在这种情况下,大部分用户可能会干脆放弃使用你的应用程序,而不是那样做。所讨论的应用程序是一个游戏,所有游戏数据也将存储在云中,因此在重新安装过程中不会丢失任何东西。Ofc重新安装一个应用程序并不是件小事,但我可以接受这个限制(目前),只要这是唯一出现的问题。我需要知道的是,即使网络连接良好,是否存在重新安装无法工作的用例。根据您的经验,您是否找到了合适的答案?感谢您检查我是否正确:从今天起,如果您使用的是APK扩展文件,并且目标是相对较新的设备,那么您可以假设Play Store应用程序将下载OBB。除非在下载APK和/或OBB时存在网络/空间不足问题,否则会出现这种情况。在这种情况下,我不确定您到达的状态。正确,据我所知,如果设备中有足够的空间,Play Store应用程序将下载您的整个apk(带有OBB文件)。如果没有足够的空间,Play Store应用程序将向用户发出空间不足的消息,并帮助用户释放空间。现在,如果在应用程序下载之后,在应用程序安装期间,空间用完了,你的应用程序必须检查OBB文件是否已安装,如果你没有空间继续,你需要给用户一条消息,说明他们需要释放空间,以便你可以从OBB文件中提取数据(如果需要提取)。如果出现网络错误,Play Store应用程序将向其用户发送一条消息,该应用程序未下载