【问题标题】:A cloud solution to synchronize app database in AndroidAndroid中同步app数据库的云解决方案
【发布时间】:2013-02-19 02:06:34
【问题描述】:

我正在开发一个自定义联系人应用程序,它将设备上的数据存储在 SQLite 数据库中。由于某些原因,此设备数据库可以与云数据库同步非常重要:

用户可能拥有不止一台设备,并希望在所有设备上更新其应用数据; 用户可能能够从 Web 应用程序访问这些数据; 由于此应用程序将存储许多图片,因此设备内存不足以保存所有数据,并且可以使用存档选项将数据仅保存在云数据库中。 对于较旧的记录,将自动存档到云端。 需要时,可以使用恢复选项下载记录数据。 如您所见,设备数据库将为一个用户保存联系人,而云数据库将是一个类似的数据库,但为所有用户保存数据。所以,这种同步是有逻辑的。这不仅仅是上下复制整个 SQLite DB 文件的问题。这必须是行/列级别的同步。

我想知道我可以使用哪种解决方案来完成此任务?是否可以使用 Google Cloud 或 App Engine 来实现服务器端?我可以在设备端做什么?有什么想法吗?

我非常感谢任何答案。

谢谢。

【问题讨论】:

  • 一直以来我都找到了一些解决方案,尽管它们并不能完全解决我的问题:Dropbox Datastore、Couchbase Lite + Sync Gateway、...

标签: android database synchronization cloud


【解决方案1】:

您可以使用任何您想要的基于“云”的网络服务,您可以在手机上使用 Java 的全部力量和可靠的 http 库。当然可以在 Amazon EC2 或 App Engine 等平台上构建应用程序/网络服务,然后直接从您的应用程序调用它,自行处理安全性、存储和同步。

根据我个人的经验,我在 EC2 上使用 Django/Python(以及各种 AWS 数据服务),效果很好。

另外,我知道有各种各样的初创公司为您的场景构建开箱即用的解决方案 - 即专门针对移动开发人员的特殊 SDK 和后端服务。我对这些没有任何经验,但这里有两个我知道(没有认可,只是链接): https://www.parse.com/ https://www.stackmob.com/

【解决方案2】:

我强烈建议您考虑使用 Google Cloud Messaging,更具体地说。 “发送到同步”模式。

关于检测记录更改和同步的细节,我不能提供好的建议,只能说这个功能是由许多数据库系统完成的,所以你可能想看看他们是如何解决的。最常见的包括时间戳和版本号。

参考链接: GCM 上的 Google I/O 会议(我觉得这是一个很好的介绍,可以让您开始使用 GCM) http://www.youtube.com/watch?v=YoaP6hcDctM&list=PL4C6BCDE45E05F49E&index=9

Google Cloud Messaging 文档(链接直接发送到同步) http://developer.android.com/google/gcm/adv.html#s2s

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 2014-11-21
    • 2017-12-17
    • 1970-01-01
    • 2019-09-14
    • 1970-01-01
    • 2020-01-17
    相关资源
    最近更新 更多