【问题标题】:Download/upload image from android从安卓下载/上传图片
【发布时间】:2011-11-21 03:30:20
【问题描述】:

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

所以,我想制作一个应用程序,它可以获取一些信息以及图像(最好来自相机)并将其上传到我的测试计算机中的数据库,然后可能会上传到专用服务器。

我在想的是做一些网络服务,包括传输服务,所以我可以从我的数据库下载和上传图像,数据库是 MongoDB 一个 No-SQL 数据库 (No-RDBMS)。该数据库基于文档,这使得查询速度非常快,并且存储二进制文件不再是问题。

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

第二个问题是是在一天中的特定时间批量上传,还是在设备上完成操作后立即上传文件更好?,我知道这是一个一个简单的问题,但这是对启蒙的追求,我想知道,尤其是在移动设备上什么是最好的。

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

感谢您抽出宝贵时间阅读这堵文字墙,但我正在努力提高我的技能,因此我们将不胜感激。

编辑

我发现这个帖子对我正在尝试做的事情非常有用:

Thread

【问题讨论】:

    标签: android web-services mongodb


    【解决方案1】:
    Is it good to upload/download a file using a web service? 
    

    是的,您可以,使用网络服务,您可以轻松地从服务器上传/下载文件。但是您还必须在服务器端执行脚本(使用 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?
    

    这也取决于您如何维护服务器上的数据或操作服务器上的数据。如果您在 web 服务请求中使用直接文件(有一个 apache 库可用)来上传下载,我认为您不必复杂的工作来转换 ByteArray 中的数据,(但我认为它在后台发生)。

    希望现在你的工作完成了。

    【讨论】:

    • 谢谢,这正是我需要的。
    【解决方案2】:

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

    转换为 BYTE 数组并不是什么大问题。特别是如果您将整个过程线程化。

    【讨论】:

      猜你喜欢
      • 2016-07-08
      • 1970-01-01
      • 2011-06-23
      • 1970-01-01
      • 2019-12-18
      • 1970-01-01
      • 1970-01-01
      • 2016-04-23
      相关资源
      最近更新 更多