7

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

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

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

我真的很感激任何答案。

谢谢。

4

2 回答 2

3

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

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

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

于 2013-02-19T02:16:25.993 回答
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

于 2013-02-19T02:28:34.353 回答