从android下载/上传图像

从android下载/上传图像,android,web-services,mongodb,Android,Web Services,Mongodb,首先,我还没有编写任何代码,我只是在设计/思考阶段,所以我正在研究如何做我想做的事情,这篇文章是为了在我开始编码之前了解一些情况 因此,我想制作一个应用程序,它可以将一些信息和图像(最好是从相机中)一起上传到我的测试计算机中的一个数据库,以后可能还会上传到一个专用服务器 我的想法是制作一些web服务,包括传输服务,这样我就可以从我的数据库下载和上传图像,数据库是MongoDB,没有SQL数据库(没有RDBMS)。这个数据库基于文档,这使得查询速度非常快,存储二进制文件不再是一个问题 但是,这是我

首先,我还没有编写任何代码,我只是在设计/思考阶段,所以我正在研究如何做我想做的事情,这篇文章是为了在我开始编码之前了解一些情况

因此,我想制作一个应用程序,它可以将一些信息和图像(最好是从相机中)一起上传到我的测试计算机中的一个数据库,以后可能还会上传到一个专用服务器

我的想法是制作一些web服务,包括传输服务,这样我就可以从我的数据库下载和上传图像,数据库是MongoDB,没有SQL数据库(没有RDBMS)。这个数据库基于文档,这使得查询速度非常快,存储二进制文件不再是一个问题

但是,这是我的第一个问题:使用web服务上传/下载文件好吗?尤其是对于移动设备?。如果不是,我可以使用什么,如果不是问题,我应该使用什么框架(我想是Axis2),以及为什么。我将尝试使用一些库来提高传输时间,使文件大小尽可能小

第二个问题是是否最好在一天中的特定时间进行批量上传,或者在设备上完成操作后立即上传文件?,我知道这是一个简单的问题,但这是一个启发性的探索,我想知道,尤其是在移动设备上,什么是最好的

现在,我应该使用什么样的流进行上传/下载?我一直在阅读,将图像转换为字节数组会消耗大量CPU,我不希望我的应用程序运行缓慢,但这是最简单的方法。然后是使用
DataHandlers
进行传输,但这似乎很复杂,但对CPU来说并不苛刻(如果我错了,请纠正我在这里说的任何话),所以我不知道该使用什么

谢谢你的时间,也谢谢你阅读这篇文章,但我正在努力提高我的技能,所以任何帮助都将不胜感激

编辑

我发现这个线程对于我正在尝试做的事情非常有用:


如果是我,我会使用套接字进行通信。在每个图像被捕获、标记等之后,启动一个新的线程进行上传——甚至可能是一个服务,因此如果你的应用程序关闭,上传将继续。您可以在顶部栏ala市场中跟踪进度。您的手机可以在开始上传之前进行CRC排序,然后让服务器在上传之后进行同样的排序,这样您也可以进行错误检查。您可以将服务中的所有上载排队

转换成字节数组其实没什么大不了的。特别是如果你把整个过程都安排好

Is it good to upload/download a file using a web service? 
是的,您可以,使用web服务,您可以轻松地从服务器上载/下载文件。但您还必须在服务器端进行SCRPT(使用PHP、.net等)。它对您将来的使用也很有用,只是您需要更改服务器的地址

It is better to make a batch upload at specific times of day, or upload the files immediately after the operations are finished on the device?
您可以根据您的需要和网络的可用性来实现,也可以将操作编号与文件一起上传。您可以在应用程序运行时在后台(使用AsyncTask、Service、Thread等)执行此操作,因此我认为前端活动没有开销

What kind of stream should I use for the upload/download?
这还取决于您如何维护服务器上的数据或操作服务器上的数据。如果您在webservice的请求中使用direct file(有一个可用的apache库)来上传下载,我认为您不必在ByteArray中进行复杂的数据转换工作(但我认为在后台会发生这种情况)


希望你的工作完成。

谢谢,这就是我需要的。