如何在不同设备之间同步数据

时间:2013-07-16 20:31:10

标签: android synchronization cloud data-synchronization

我计划实施一个应用程序,但我已经达到了一个我不知道什么是最佳方法的地步。

情景:

我有一个应用程序,我正在制作待办事项清单,我正在添加3项。我用我的手机。 然后我拿起我的平板电脑,并希望继续添加另一项任务。过了一会儿,我带着妻子的电话想要添加2个新任务。

基本上我想要一种非常简单的在线存储任务的方法,并能够与应用程序同步。

我看到两种可能的方式:

  • 有一个带有数据库+ Web服务调用的Web服务器。这样做的缺点是让主机付费,学习一些额外的mysql + Web服务技术。

  • 以某种方式存储云上的数据,并允许登录的应用程序访问存储该文件的帐户。我在想像Google Drive / Dropbox这样的东西。但我不知道如何只能同步更新的值,而不是整个文件。因为我在想,如果我将所有任务存储到一个文件中,每次更新文件时,我都需要完全上传,这不是最好的方法。

我愿意接受任何建议。你会推荐什么方法?

5 个答案:

答案 0 :(得分:17)

Google Drive" Application Data"文件夹中。

https://developers.google.com/drive/android/appfolder

这具有使用用户存储空间的优点。

答案 1 :(得分:9)

我会调查Google App EngineAmazon Web Services。他们每个月都会给你免费分配使用费,如果你过去那么你开始付钱,你很可能暂时不会超过免费等级。

AWS目前比GAE更成熟,似乎更容易实现GAE,当我研究它们时

答案 2 :(得分:3)

查看同步适配器的新培训课程: http://developer.android.com/training/sync-adapters/index.html了解从设备向服务器发送数据的基础知识。

在Android设备上,我建议您将任务存储在内容提供商中。这可以帮助您跟踪自上次同步以来的更新。然后,您可以在同步期间查询提供程序,仅发送已更新的数据,并将数据存储在服务器上。

您应该将最后更新时间存储在设备上,这样您就可以判断服务器是否包含设备上尚未存在的数据。请记住,如果您希望所有设备同步,您还必须下载任务。

答案 3 :(得分:0)

您可以查看我们的Rethync框架(带源代码的免费软件)。使用它可以简化检测修改和仅同步更新数据的任务。接下来,Rethync提供客户端和服务器端API,以便您可以创建自己的服务(并在Web端托管它),或者您可以为您选择的云服务编写自己的传输(我们将在未来提供一些传输) ,他们现在正在开发中。)

答案 4 :(得分:0)

您可以试用Google的Firebase。 Firebase为Android和iOS设备提供SDK。而且,firebase支持离线和同步。 Firebase还提供对象存储服务。创建firebase应用程序比你想象的更容易。看看这个firebase's firestore service