我如何在Android设备和网络服务器之间双向同步数据?

时间:2012-02-10 06:11:52

标签: android database sync

我的项目设置就像这样

服务器端

我有PHP服务器,MySQL数据库apache

在Android设备端

我有sqlite数据库

只要数据库的任何一方有任何更新,我想在设备端和服务器端的这两个数据库之间同步数据。 android有没有任何包来做到这一点?或者我需要自己使用PHP脚本和Android的HttpClient api来处理这个问题吗?

2 个答案:

答案 0 :(得分:3)

如果你自己写这些是要牢记的一些要点

  • 设备与Sync Server之间的正确身份验证

  • 设备和服务器之间的同步协议。它通常分为3个阶段,认证,数据交换,状态交换(哪些操作有效,哪些失败)

  • 选择您的有效负载格式。我建议基于SyncML的XML与基于JSON的格式混合来表示实际数据。因此协议的SyncML和正在交换的实际数据的JSON

  • 跟踪客户端和服务器上的数据更改。您可以维护更改的更改日志,这些更改会在同步会话期间进行更改和提取。此外,在对象成功同步时清除更改日志

  • 当服务器上的数据发生变化时,需要有办法从服务器与设备通信以启动同步会话。您可以使用C2DM或编写自己的基于持久性tcp的通信。 tcp方法很无缝

  • 一种跨多个设备复制数据更改的方法

  • 最后但并非最不重要的是,一种检测和处理冲突的方法

希望这有助于作为一个良好的起点

答案 1 :(得分:0)

对于上述目的,您需要在web services中创建PHP。您可以从web services方拨打这些Android进行同步。