有些应用程序可以在 iOS 和 Android(手机和平板电脑)上运行,并且它们设法在不同设备之间同步数据。
- 有没有提供这种同步功能的框架或库?
- 如果不是,有哪些不同的实施方案?
- iCloud 可以用于在 Android 和 iOS 设备之间同步应用程序数据吗?
有没有提供这种同步功能的框架或库?
您可以查看 OpenMobster 云平台。同步服务确实在 Android 和 iOS 设备之间安全复制数据。您所要做的就是在云端开发 Java Sync Channel,并在设备端使用 Device API 来访问您的数据。这是该项目的链接:http: //openmobster.googlecode.com
全面披露:我是 OpenMobster 平台的总工程师
有没有提供这种同步功能的框架或库?
不,没有任何框架或库可以提供 iCloud 为 Apple 设备提供的那种跨平台同步。
如果不是,有哪些不同的实施方案?
iCloud 可以用于在 Android 和 iOS 设备之间同步应用程序数据吗?
不可以。iCloud 仅适用于 Apple 设备(截至 2012 年 7 月)。
Dropbox Datastore API 可以同步你的结构数据(database),以及同步 API 和同步图片、文档等文件。
https://www.dropbox.com/developers/datastore
https://www.dropbox.com/developers/sync
他们有 iOS 和 Android 版本。
Orando Labs的 EnduroSync是一款完全符合您要求的新产品。有适用于 iOS 和 Android 的客户端,还会有更多。
全面披露:我在 Orando Labs 工作。
EnduroSync 客户端允许您在本地设备上创建对象数据存储。客户端相当复杂——数据被建模为我们支持的每个客户端的本地对象(现在是 iOS 和 Android,还有更多)。客户离线和在线工作。数据保存在本地的 sqlite 数据库中。
当您更改模型中的对象时,增量会记录在设备上。在某些时候,您可以“同步”对象数据存储。同步使用提交/推送/拉取过程(如 git),但这对您来说是不可见的。同步使您的本地副本与服务器上的任何内容保持同步,并发送您所做的任何更改。使用基于时间戳的合并解决冲突,因此较新的数据不会被较旧的数据覆盖。
EnduroSync 是一项在线服务,因此您无需设置服务器。
还有一个灵活的权限系统,可让您以多种方式共享对象数据存储。例如,大多数应用程序将为每个用户提供一个或多个对象数据存储,用于偏好、注释、标签等。您还可以按应用程序、每个用户类型以及使用通配符等许多其他方式共享对象数据存储。
因此,基本上您使用我们的客户端 SDK 对设备上的数据进行建模。建模是使用设备本机编程语言中的简单对象。如果您注册同步服务,您也会获得同步。
我不了解 iOS,但使用 Android,您可以使用同步适配器将数据同步到云(您的服务器)或从云(您的服务器)同步数据。例子:
http://developer.android.com/training/cloudsync/index.html
因此,如果您从 iPhone 应用程序获取一些数据到您的服务器,您也可以将其同步到 Android 应用程序,反之亦然。
c2dm 已被弃用:
重要提示:C2DM 已于 2012 年 6 月 26 日正式弃用。这意味着 C2DM 已停止接受新用户和配额请求。不会向 C2DM 添加任何新功能。但是,使用 C2DM 的应用程序将继续工作。鼓励现有 C2DM 开发人员迁移到新版本的 C2DM,称为 Android 版 Google Cloud Messaging (GCM)。有关更多信息,请参阅 C2DM 到 GCM 迁移文档。开发人员必须使用 GCM 进行新的开发。
使用 GCM:链接