Android开发如何实现和服务器的数据同步
这个问题,分为两部分,⼀个是客户端数据有变化了就上传,这个好说;第⼆个是服务器端有变化了,客户端要能知晓并从服务器端拉取到数据。这个有⼏种解决⽅法:
⽅法1:
定期从服务器上轮询和上传,缺点是不实时,不优美。
⽅法2:服务器通过告诉客户端数据变化,客户端再去拉取。缺点是费钱,客户端在国外时貌似也不实时。
如何生成webservice客户端⽅法3:服务器和客户端建⽴Socket并保持⼼跳,优点是实时,缺点是耗电。
⽅法4:使⽤google的C2DM的Push服务,这是⽅法3的升级版,很不错,但缺点是每个⼿机上都需要⼀个google帐号,才能使⽤该服务。
1、同步时间:⾸先要考虑需求,是不是⼀定要实时数据,如果数据不要求实时允许有延迟:客户端添加同步点,例如每次请求数据的时候都会附带请求是否有需要同步的数据,软件每次打开时同步⼀次,每次登陆时同步⼀次,再加上⼿动同步,基本满⾜需求。
2、同步内容:如果客户端当前⽤户可以唯⼀标识(⽐如需要登录),应该把数据⽐对放到服务端,也就是客户端现在有哪些数据服务端应该是知道的,通过时间戳和同步表(记录哪个表增删改查了哪条数据)来双向同步。有⼀个原则,能在服务端做的事就不要放客户端。
3、同步⽅式:我们⽤的是hessian(http、⼆进制),效率还⾏,也可以直接⾛json,需要实测⽹速以及同步数据块⼤⼩来决定采取哪种⽅式。
对业务数据表,建相对应的更新记录表(索引,更新时间,操作⼈,动作类型...)。同步的时候通过WebService读取服务器更新表的更新时间=客户端的更新时间,下⾯的⾏就是有改动的。然后更新。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论