最近我挖掘了移动开发。我开始使用Android原生,因为它可能是该应用程序将要发布的第一个移动操作系统,但在学习了一种新语言,并尝试习惯新的IDE和API之后,我切换到PhoneGap,因为它总是计划将应用程序放在多个操作系统上。此外,我有多年的Web开发经验。
所以现在我遇到了我面临的问题,因为我的应用程序将处理大量图像,是如何存储所有这些图像。 我对可以做的事情有几点想法:
拥有托管图像的某种云存储,然后在运行应用程序时,它会将所有图像下载到设备,但这会占用设备上的大量存储空间并且可能需要很长时间
云端存储,但是当应用程序运行时,它会将它们下载到缓存中,只使用当前需要的缓存,然后在用户完成后将其丢弃,甚至可以尝试逐个下载需要的。
第二种方法对我来说对性能和设备存储最有意义,但它会迫使应用程序始终在线。在第一个例子中,没有必要。我无能为力,但认为有更好的方法可以解决这个问题。
此外,本地最佳路径是什么,这意味着对本机API的更严格控制,但是失去了通用功能,并且必须为每种语言中的不同操作系统单独或以某种方式做同样的事情不知何故在混合环境中?
答案 0 :(得分:1)
我的应用程序做了类似的事情,但是我们用Java完成所有操作,所以如果你决定回到那条路线,这可能会有所帮助。我们在云中托管了大量图像(超过30,000个)。用户可以浏览这些图像(我们已预先生成每个图像的缩略图),在客户端上我们有以下内容:
ImageView
的子类,它还处理执行下载图像的异步任务。这项工作做得不错,但您还需要查看Google的Managing Bitmaps文章,并了解如果您在Gingerbread或更早版本上运行,您将如何回收位图。
哦,我差点忘了,你可能也想看看Picasso
答案 1 :(得分:1)
Phonegap / cordova应用程序只是具有Webview中大多数功能的本机应用程序,因此您可以利用毕加索代码(通过本机插件)并使用phonegap。
那就是说,我可能会做Carl所做的事情,但为PhoneGap编写一个插件,为每个平台调用不同的本机代码。
由于您知道该应用程序将是跨平台的,因此尝试使用PhoneGap查看它是否能够运行良好是有意义的。
你也可以看一下js中的缓存,利用这里的一些想法:https://github.com/bperin/imageCache