CQ备忘录

一间存放故事的仓库

GitHub LinkedIn
29 April 2021

Tech:Android Jetpack DataStore Outline

by ChenQi

0. 什么是 DataStore?

DataStore 是一个经过改进的新数据存储解决方案,旨在取代 SharedPreferences。DataStore 基于 Kotlin 协程和 Flow 构建而成,提供以下两种不同的实现:一种是 Proto DataStore,用于存储类型化对象(由 Protobuf 支持);另一种是 Preferences DataStore,用于存储键值对。数据以异步、一致和事务性的方式存储,有助于避免 SharedPreferences 的一些缺点。

1. 相关文档

官网指南:DataStore

官方博客:

Codelabs:

源码仓库:

2. 工程结构

项目模块:

.
├── datastore
├── datastore-core
├── datastore-preferences
├── datastore-preferences-core
├── datastore-preferences-rxjava2
├── datastore-preferences-rxjava3
├── datastore-proto
├── datastore-rxjava2
├── datastore-rxjava3
└── datastore-sampleapp

模块依赖:

flowchart BT
    datastore-proto --> datastore-core
    datastore --> datastore-core
    datastore-preferences-core --> datastore-core

    datastore-preferences --> datastore
    datastore-preferences --> datastore-preferences-core

    datastore-rxjava2 --> datastore
    datastore-rxjava3 --> datastore

    datastore-preferences-rxjava2 --> datastore
    datastore-preferences-rxjava2 --> datastore-rxjava2
    datastore-preferences-rxjava2 --> datastore-preferences

    datastore-preferences-rxjava3 --> datastore-preferences
    datastore-preferences-rxjava3 --> datastore-rxjava3
    datastore-preferences-rxjava3 --> datastore

3. datastore-core

tags: