如何开发离线优先的原生Android应用程序

San*_*rsh 10 android offline-mode offline-caching offlineapps android-sqlite

我们正在开发一个原生的Android应用程序(iOS和Web跟随),用户可以在其中协作创建相册.

当设备无法与服务器连接时,我们希望尽可能无缝地体验.在这个Hoodie博客中提到的东西,但Hoodie现在正在用于Web和iOS,我们现在正在寻找Android.

问题

在客户端维护专辑,朋友,图片(URL /本地,而不是位图)的数据.能够在以后将脱机创建/更新操作同步到服务器,并解决冲突.

目前的研究

  1. HTTPResponseCache:缺点:仅缓存已被命中一次的请求.另外需要不同的系统来处理创建/更新操作.
  2. App42,Kinvey:Backend-as-a-service; 缺点:我们希望拥有自己的后端.
  3. Microsoft Sync Framework Toolkit:不确定它与Android的兼容性
  4. PouchDB
  5. Superbus:解决问题的一部分

习惯

使用Android同步适配器在服务器同步上在Android和MySQL上的SQLite中维护数据.然而,这可能是耗时的并且在启动时存在缺陷.

应该如何处理这个问题?

小智 10

我目前正在开展一个项目,即使用户离线,我们也需要跟踪交付情况并验证交付情况.我使用的方法是使用这个ContentProvider插件Simple Content Provider.我检查是否有互联网,如果没有互联网.它将数据存储到提供程序并更改数据库中需要更改的内容,并让我的用户相信他或她已完成订单.我有一个SyncAdapter等待互联网出现.而且,一旦数据库发生变化,我也会提供推送服务来刷新数据库.了解Google Cloud Messaging可以为您的用户节省大量电池.那里可能有更好的选择.但是,根据我对Android的小经验,这是我的小帮助.