本节讲讲怎么把数据进行保存吧,本地存储,重启不丢。简单介绍为什么要用DataStore一开始我想着用txt吧,简单,反正就是恢复设备的编号、启用状态。但是查询发现,TXT在 Android 里坑非常多,例如并发读写冲突、数据损坏风险(APP 闪退如果正好在写文件,下次文件就直接无法用)、类型处理麻烦(txt 只能存字符串)、没有响应式监听(修改后不会主动触发改变UI)、路径权限问题(Android 高版本,随便放 txt 文件会碰到沙盒限制)。而DataStore 是谷歌封装好的、专门给键值配置场景的方案(底层依然是单个二进制文件),解决原生文件读写的一堆麻烦。内部自带协程 + 锁机制,天然支持多线程安全读写;用 protobuf,写入时先写临时文件,成功后再替换原文件,原子写入,不会出现半截损坏;原生支持基础类型,自动序列化(存布尔、Int、Long 等);返回 Flow/StateFlow,数据一变 UI 自动更新,完美适配 Compose;自动帮你管理文件路径,不用手动拼路径。然后我们用直白的语言来概括一下我们今天要做的工作哈:如果说APP的数据就像我们开杂货铺,APP是杂货铺,而 DataStore 代码库,就是专门负责打开 / 锁上这个铁皮柜子、找到对应标签格子、放入 / 取出包裹的一套工具。我们之前已经定义了实体设备类(也就是货物是什么,有什么属性),现在还需要采购文件柜放置文件,要雇打包拆包工人,然后还需要有一个柜台人员,负责去调用工人、操作柜子(后续比如不用 DataStore 改用数据