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

我计划实现一个应用程序,我已经到了一个我不知道什么是最好的方法。

场景:

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

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

我看到两种可能的方式:

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

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

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

    我会研究Google App Engine或Amazon Web Services 。 他们都给你每月免费分配使用量,如果你过去然后开始付款,你有可能暂时不会超过免费等级。

    AWS目前比GAE更成熟,并且在我研究GAE时似乎更容易实现GAE

    还有Google Drive的“Application Data”文件夹。

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

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

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

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

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

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

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