在Android上保存数据:文件存储vs SQLite数据库vs共享首选项

这个标题让我想知道在特定的应用程序中保存大中型数据的最适合的function是什么。 我知道有一个最近的问题,我已经看到了有关使用这些function保存数据的Stackoverflow,但我想知道,正如我所说的,最适合什么。 你有什么build议吗?

  • 一般应用程序devise(IntentService / ContentProvider / AsyncTask)
  • Android:带有通配符的SQL rawQuery(%)
  • greenDAO不会在表中生成FOREIGN KEY(...)约束
  • 如何在Android上的SQLite中转义不受支持的字符?
  • 如何将图像保存到数据库中
  • Android的SQLite查询来匹配包含文本的列
  • 从SQLite数据库表中删除所有表行
  • Android的SQLite“没有这样的表”的例外
  • 共享首选项

    将私有原始数据存储在键值对中。

    内部存储器

    将私人数据存储在设备内存上。

    外置储存

    将公共数据存储在共享的外部存储上。

    SQLite数据库

    将结构化数据存储在专用数据库中。

    networking连接

    使用您自己的networking服务器将数据存储在networking上。

    根据官方网站

    共享首选项对于设置或less量数据等更好。 存储在共享首选项中的数据存储在键值对中。 这使得检索数据更简单,但是没有一种真正有效的方式来查询/search特定的数据。

    数据库是SQLite的一个实现。 当存在大量的logging时,这是有用的,它们都具有相同/相似的字段。 既然是SQLite,你可以编写查询来从表中获取特定的logging。

    我没有那么多的经验来存储到文件系统中,所以其他人将不得不对此进行说明。

    这里是一个链接到另一个stackoverflow讨论比较SQLite和共享首选项。 SQLite和Shared Preferences的优点和缺点 ,以及Android文档,详细介绍每种方法的工作原理。 http://developer.android.com/guide/topics/data/data-storage.html