Android开发如何实现和服务器的数据同步

原创 2015年11月18日 23:21:28
这个问题,分为两部分,一个是客户端数据有变化了就上传,这个好说;第二个是服务器端有变化了,客户端要能知晓并从服务器端拉取到数据。这个有几种解决方法:
方法1:
定期从服务器上轮询和上传,缺点是不实时,不优美。
方法2:服务器通过发送短信告诉客户端数据变化,客户端再去拉取。缺点是费钱,客户端在国外时貌似也不实时。
方法3:服务器和客户端建立Socket并保持心跳,优点是实时,缺点是耗电。
方法4:使用google的C2DM的Push服务,这是方法3的升级版,很不错,但缺点是每个手机上都需要一个google帐号,才能使用该服务。


1、同步时间:首先要考虑需求,是不是一定要实时数据,如果数据不要求实时允许有延迟:客户端添加同步点,例如每次请求数据的时候都会附带请求是否有需要同步的数据,软件每次打开时同步一次,每次登陆时同步一次,再加上手动同步,基本满足需求。

2、同步内容:如果客户端当前用户可以唯一标识(比如需要登录),应该把数据比对放到服务端,也就是客户端现在有哪些数据服务端应该是知道的,通过时间戳和同步表(记录哪个表增删改查了哪条数据)来双向同步。有一个原则,能在服务端做的事就不要放客户端。

3、同步方式:我们用的是hessian(http、二进制),效率还行,也可以直接走json,需要实测网速以及同步数据块大小来决定采取哪种方式。


对业务数据表,建相对应的更新记录表(索引,更新时间,操作人,动作类型...)。同步的时候通过WebService读取服务器更新表的更新时间=客户端的更新时间,下面的行就是有改动的。然后更新。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android中后台定时任务实现,即时数据同步问题思考!

http://my.oschina.net/banxi/blog/57984 如果你正在找Android后台定时任务实现,那么你找对了,但是其实如果你正在找Java后台任务实现,你就不会找到我的...

Android客户端与服务器端数据同步

应用场景 假设我们在做一个通讯录软件,我们既可以在本地做增删改的操作,也可以在PC上的Web端做增删改的操作。那么这篇文章中我们要解决的问题是如何在客户端与服务端只传输经过增删改操作的数据,来使得客...

Android应用使用SyncAdapter传输数据

介绍Android同步框架的使用,翻译自Android官方开发文档。
  • javensun
  • javensun
  • 2015年05月11日 23:03
  • 10475

安卓数据云端同步(一)生成操作Sqlite记录

同步思想: 先介绍客户端为最新数据的数据同步问题,这种机制常常应用在云笔记,随手记类似的app。 这里我建了一个listview,对listview上item的增删改,来代替实际项目中的情况。 ...

Android BLE与终端通信(三)——客户端与服务端通信过程以及实现数据通信

Android BLE与终端通信(三)——客户端与服务端通信过程以及实现过几天更新...

Android客户端与服务器端数据库同步

应用场景 假设我们在做一个通讯录软件,我们可以在多个客户端对服务端的数据进行增删改。那么这篇文章中我们要解决的问题是如何在客户端与服务端只传输经过增删改操作的数据,来使得客户端与服务端的数据是同...

android同步数据库数据

今天遇到一个问题:在一个ActivityGroup和Activity中同时要访问数据库,并且可能都会做修改,那么这是否需要同步?         首先,ActivityGroup和Activity是...

ORM对象关系映射之GreenDAO高级用法

CRUD增加:dao.insert(Student entity);//添加一个 dao.insertInTx(Student... entity);//批量添加删除:dao.deleteByKey(...

通过WEB服务器访问MYSQL,并且数据同步到android SQLite数据库

本文出自http://blog.csdn.net/Mary881225 1、创建MYSQL数据库,并建表(如:menu表)。 2、连接数据库。 3、访问数据库        过程2、3 具体...

通过web服务器访问MYSQL数据库,使其数据同步到android SQLite数据库

通过web服务器访问MYSQL数据库有以下几个过程: 1、创建MYSQL数据库,并建表(如:menu表)。 2、连接数据库。 3、访问数据库 过程2、3 具体步骤: 1、在Myeclip...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android开发如何实现和服务器的数据同步
举报原因:
原因补充:

(最多只允许输入30个字)