Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 云同步策略_Android_Google App Engine_Caching_Cloud_Backend - Fatal编程技术网

Android 云同步策略

Android 云同步策略,android,google-app-engine,caching,cloud,backend,Android,Google App Engine,Caching,Cloud,Backend,首先:这将在Android上使用谷歌应用引擎和谷歌云SQL/数据存储实现,但这更像是我有点困惑的超架构策略 我正在创建一个Android应用程序来记录一个活动。然后,我希望能够将此活动同步到云,并在向用户注册的任何其他设备上查看/编辑活动。身份验证、设备注册以及我能解决的所有问题的细节,更让我头疼的是同步策略 要求将是: 活动记录在用户设备上 活动被记录后存储在云中 设备应检查云以获得更新的活动列表,并维护活动的本地“缓存”(将是SQLite数据库)以显示给用户 以下是我对如何实现这一目标的初步

首先:这将在Android上使用谷歌应用引擎和谷歌云SQL/数据存储实现,但这更像是我有点困惑的超架构策略

我正在创建一个Android应用程序来记录一个活动。然后,我希望能够将此活动同步到云,并在向用户注册的任何其他设备上查看/编辑活动。身份验证、设备注册以及我能解决的所有问题的细节,更让我头疼的是同步策略

要求将是:

  • 活动记录在用户设备上
  • 活动被记录后存储在云中
  • 设备应检查云以获得更新的活动列表,并维护活动的本地“缓存”(将是SQLite数据库)以显示给用户
  • 以下是我对如何实现这一目标的初步想法:

    场景:录制活动

  • 在设备上记录活动
  • 一旦记录好,将数据上传到云端
  • 强制与云同步以更新本地缓存
  • 显示用户本地缓存的活动(其中将包括由于上一个同步步骤而最近添加的活动)
  • 场景:更新活动

  • 用户选择缓存的活动
  • 改变
  • 将更改上载到云(并以某种方式将其标记为已修改?不确定这将如何工作)
  • 强制与云同步以更新本地缓存
  • 显示用户本地缓存的活动(由于上一个同步步骤,将包括活动的更新内容)
  • 问题:将本地缓存与云数据同步

    我不太确定如何实现同步(即,前面场景中的步骤3和步骤4)。我不想丢弃本地缓存并重新下载所有内容以确保最新数据,因为这看起来非常高效。最好我只下载不在缓存中的活动,并更新缓存中但自上次同步以来已更改的活动

    是否有任何最佳实践/众所周知的同步模式(易于理解)可以帮助我实现这一点


    亲切的问候

    > P>您还需要考虑连接丢失/重试、电池/电源效率,并可能应用自定义同步算法。 Android已经有了一个优秀的模式/API来解决这些问题,并以高效的方式处理与后端服务器的后台同步

    接下来,如果不需要内容提供者或验证器,您不必实现它们,只需为它们实现存根即可

    这里有几个示例项目可以帮助您完成

    • 基本示例,可在上面找到
    • 查看更多高级用法和最佳实践,包括使用GCM触发同步等