Logo
Section 1 / 4

缓存解决方案

本章将介绍如何通过实现离线支持来提升用户体验。

导入

缓存解决方案

本章将介绍如何通过实现离线支持来提升用户体验。

本节课介绍在 Android 上为离线功能缓存数据的各种可用选项。

首选项(SharedPreferences)

在 Android 设备上持久化存储数据的最常见方式之一是使用 SharedPreferences。

SharedPreferences 本质上是一个轻量级的键值对存储方案,适用于少量数据,并内置内存缓存。我们之前已经使用 SharedPreferences 来持久化保存登录状态。

文件

当数据量过大而不适合使用 SharedPreferences 时,我们可以直接使用普通文件进行存储。

1val filename = "myfile.txt" 2val fileContents = "Hello world!" 3openFileOutput(filename, Context.MODE_PRIVATE) 4 .write(fileContents.toByteArray())

使用文件的问题在于,我们需要将数据转换为可存储并在之后重建的格式,例如 JSON 字符串,这在某些情况下效率不高。

SQLite

幸运的是,在 Android 中,我们可以创建一个名为 SQLite 的本地数据库。

android.database.sqlite 包提供了各种操作数据库的 API,从简单查询到复杂连接均可支持。尽管 Android 的 SQLite 包包含了我们所需的一切功能,但其 API 相对底层,需要编写大量样板代码。正因如此,Google 决定在 android.database.sqlite 包之上构建一层抽象,以简化数据库操作。

这一层以独立库的形式提供,称为 Room。在下一节课中,我们将学习如何使用 Room 数据库存储和访问博客文章。

旅行博客 - 搜索与排序

Room 数据库