【问题标题】:Sync application data between iOS and Android [closed]在 iOS 和 Android 之间同步应用程序数据 [关闭]
【发布时间】:2012-07-05 17:18:25
【问题描述】:

有些应用程序可以在 iOS 和 Android(手机和平板电脑)上运行,并且它们设法在不同设备之间同步数据。

  1. 是否有提供这种同步功能的框架或库?
  2. 如果不是,有哪些不同的实施选项?
  3. 能否使用 iCloud 在 Android 和 iOS 设备之间同步应用程序数据?

【问题讨论】:

    标签: android ios sync icloud


    【解决方案1】:

    我不了解 iOS,但在 Android 上,您可以使用同步适配器将数据同步到云端(您的服务器)或从云端(您的服务器)同步数据。示例:

    http://developer.android.com/training/cloudsync/index.html

    因此,如果您从 iPhone 应用程序获取一些数据到您的服务器,您也可以将其同步到 Android 应用程序,反之亦然。

    【讨论】:

      【解决方案2】:

      c2dm 已被弃用:

      重要提示:C2DM 已于 2012 年 6 月 26 日正式弃用。这意味着 C2DM 已停止接受新用户和配额请求。不会向 C2DM 添加任何新功能。但是,使用 C2DM 的应用程序将继续工作。鼓励现有 C2DM 开发人员迁移到新版本的 C2DM,称为 Android 版 Google Cloud Messaging (GCM)。有关更多信息,请参阅 C2DM 到 GCM 迁移文档。开发人员必须使用 GCM 进行新的开发。

      使用 GCM:Link

      【讨论】:

        【解决方案3】:

        是否有提供这种同步功能的框架或库?

        您可以查看 OpenMobster 云平台。同步服务确实在 Android 和 iOS 设备之间安全复制数据。您所要做的就是在云端开发 Java Sync Channel,并在设备端使用 Device API 来访问您的数据。这是该项目的链接:http://openmobster.googlecode.com

        完全披露:我是 OpenMobster 平台的总工程师

        【讨论】:

        • 谢谢。有机会我会去看看的。
        • 我可以使用 OpenMobster 在 Android 和 iOS 以及 Java 桌面或 Web App 之间进行数据同步吗?如果可以,该解决方案的可扩展性如何?有多少用户可以同时使用?提前致谢。
        【解决方案4】:

        是否有提供这种同步功能的框架或库?

        没有。没有任何框架或库可以提供 iCloud 为 Apple 设备提供的那种跨平台同步。

        如果不是,有哪些不同的实施方案?

        1. 根本不使用同步机制,而是使用网络服务。对于某些情况,这可能是一个很好的解决方案。
        2. 在 iOS 和 Android 应用程序中使用 SQLite 数据库,并自行实施同步解决方案。如果您选择实施自定义同步解决方案,您将面临的一些挑战如下:
          • 提供注册机制,使用云/服务器端服务
          • 从服务器/云读取和写入数据
          • 检测和解决冲突(即合并冲突)
          • 离线访问数据,处理设备未连接到任何网络时的情况
          • 在 iOS 中,您将无法使用 Core-Data(这使得开发相对非常容易),因此您必须注意有效地显示数据、优化数据访问等

        iCloud 可用于在 Android 和 iOS 设备之间同步应用程序数据吗?

        没有。 iCloud 仅适用于 Apple 设备(截至 2012 年 7 月)。

        【讨论】:

        • 误导/过时的信息。看看其他答案。
        【解决方案5】:

        Dropbox Datastore API 可以同步你的结构数据(数据库),而 Sync API 可以同步图片、文档和其他文件。

        https://www.dropbox.com/developers/datastore

        https://www.dropbox.com/developers/sync

        他们有 iOS 和 Android 版本。

        【讨论】:

        • Dropbox API v2 是否在 Dropbox 上的数据发生变化时为 Android 和 iOS 以及桌面应用程序提供回调?
        【解决方案6】:

        来自Orando Labs 的 EnduroSync 是一款完全符合您要求的新产品。有适用于 iOS 和 Android 的客户端,未来还会有更多。

        全面披露:我在 Orando Labs 工作。

        EnduroSync 客户端允许您在本地设备上创建对象数据存储。客户端相当复杂——数据被建模为我们支持的每个客户端的本地对象(现在是 iOS 和 Android,还有更多)。客户离线和在线工作。数据保存在本地的 sqlite 数据库中。

        当您更改模型中的对象时,增量会记录在设备上。在某些时候,您可以“同步”对象数据存储。同步使用提交/推送/拉取过程(如 git),但这对您来说是不可见的。同步使您的本地副本与服务器上的任何内容保持同步,并发送您所做的任何更改。使用基于时间戳的合并解决冲突,因此较新的数据不会被较旧的数据覆盖。

        EnduroSync 是一项在线服务,因此您无需设置服务器。

        还有一个灵活的权限系统,可让您以多种方式共享对象数据存储。例如,大多数应用程序将为每个用户拥有一个或多个对象数据存储,用于偏好、注释、标签等。您还可以为每个应用程序、每个用户类型以及通配符共享对象数据存储,还有许多其他方式。

        因此,基本上您使用我们的客户端 SDK 对设备上的数据进行建模。建模是使用设备本机编程语言中的简单对象。如果你签 准备好同步服务,你也得到同步。

        【讨论】:

        • 您能提供一些技术背景吗?这样,它就不是指向外部资源的简单链接。答案应该能够独立存在;请检查How to Answer
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-01
        • 1970-01-01
        相关资源
        最近更新 更多