我正在开发一个自定义联系人应用程序,它将数据存储在SQLite数据库中的设备上。由于某些原因,此设备数据库可能与云数据库同步非常重要:
用户可能拥有多台设备,并希望所有设备上的应用数据都是最新的; 用户可能能够从Web应用程序访问这些数据; 由于此应用程序将存储许多图片,因此设备内存不足以容纳所有数据,并且可以使用存档选项将数据仅保留在云数据库中。 存档到云将自动完成旧记录。 可以使用还原选项在需要时下载记录数据。 如您所见,设备数据库将保留一个用户的联系人,云数据库将是一个类似的数据库,但保留所有用户的数据。因此,此同步中存在逻辑。这不仅仅是上下复制整个SQLite DB文件的问题。这必须是行/列级同步。
我想知道我可以使用哪种解决方案来实现这一目标?是否可以使用Google Cloud或App Engine来实施服务器端?我可以在设备端做什么?有什么想法吗?
我真的很感激任何答案。
感谢。
答案 0 :(得分:3)
您可以使用任何您想要的“基于云”的Web服务,您可以在手机上使用Java和完整的http库。当然可以在Amazon EC2或App Engine等平台上构建app / webservice,然后直接从您的应用程序调用它,自行处理安全性,存储和同步。
就个人而言,根据我的经验,我在EC2上使用Django / Python(以及各种AWS数据服务)并且效果很好。
另外,我知道有各种初创公司为您的场景构建开箱即用的解决方案 - 即专门针对移动开发人员的SDK和后端服务。我对这些没有任何经验,但这里有两个我知道的(没有认可,只是链接): https://www.parse.com/ https://www.stackmob.com/
答案 1 :(得分: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