6.1 SharedPreferences / DataStore

// Preferences DataStore 示例
val Context.dataStore by preferencesDataStore(name = "settings")
val KEY = stringPreferencesKey("key")

suspend fun save(context: Context, value: String) {
    context.dataStore.edit { it[KEY] = value }
}

val flow: Flow<String?> = context.dataStore.data.map { it[KEY] }

6.2 Room 数据库

@Entity data class User(@PrimaryKey val id: Int, val name: String)
@Dao interface UserDao { @Query("SELECT * FROM user") fun all(): Flow<List<User>> }
@Database(entities = [User::class], version = 1) abstract class AppDb: RoomDatabase() { abstract fun userDao(): UserDao }

val db = Room.databaseBuilder(context, AppDb::class.java, "app.db").build()

6.3 文件与媒体存储

  • 使用 MediaStoreStorage Access Framework 访问媒体与文档。