我有一个带有一堆小图像(大约 200 张图像)(总大小约为 10MB)的应用程序,可以在不同情况下显示在屏幕上。当用户按下某个按钮时,会显示其中一个图像(可能是其中的任何一个)。在未来的任何时候,可能会添加更多图像,因此应用程序会检查服务器上的 xml 文档(如果距上次检查至少 24 小时,则此检查在主要活动的 onCreate() 中完成)。xml 文档列出了所有图像,因此很容易检查文档是否已更改以及是否添加了新图像。如果添加了更多图像,应用程序将从服务器下载这些图像,并将它们与设备上已经存在的图像一起存储。
我的第一个想法是将 10MB 的图像与应用程序捆绑在一起,将它们放在 assets 文件夹中,当应用程序第一次启动时,图像将从 assets 文件夹移动到内部存储。然后如果以后要添加更多的图像,它们也会被下载并保存在内部存储中,所以所有图像都很好地拉在一起,但是经过一些实验,我发现这需要很多设备(在带有 Android 4.1 的 HTC One S 上测试)的时间只是列出资产文件夹中的图像(超过一分钟),更不用说实际复制它们了。这是不可接受的,因为我不希望用户对应用程序的首次体验超过一分钟的等待时间。
我正在使用 AssetManager 类的 list(String path) 方法来列出文件。
所以我想我的问题是:
您将如何以某种方式实现这一点,以便用户在第一次启动时不必等待很长时间,并且应用程序仍然能够即时下载更多图像?