Flutter中get_storage存储 Native实现原理

583 阅读1分钟

get_storage简介

get_storage是一个高速、超轻并且能同步的内存键值存储器,它会在每次操作后把数据备份到硬盘上。这个存储器完全由 Dart 编写,能够轻松地和 Flutter 的 Get 框架相集成。

它支持 Android、iOS、Web、Mac、Linux、fuchsia 和 Windows**。能够存储的数据类型包括 String、int、double、Map 和 List。

GitHub: get_storage

本文主要探究在Flutter项目中使用get_storage存储的本地数据在Android、iOS侧的实现方式,目的在于在native侧能够同样拿到Flutter中使用get_storage存储的本地数据

设备及环境

Model: OnePlus 9 Pro (Android 14)|iPhone XS (iOS 17.4.1)

Dev: Flutter 3.19.4 |Dart 3.3.2 |get_storage 2.1.1

结论先行

相同:在Android、iOS侧均以GetStorage.gs文件(json格式内容)存储在应用包文件下

区别:GetStorage.gs文件在Android与iOS中存储路径有区别

Android侧

GetStorage.gs文件位于 /data/data/应用包/app_flutter/GetStorage.gs

可通过Android Studio中Devices Explorer工具查看设备文件

iOS侧

GetStorage.gs文件位于 应用包/AppData/Documents/GetStorage.gs

可通过Xcode -> Window -> Devices and Simulators -> 选中需要查看数据App应用 -> Download Container

得倒 "app包名 2024-04-02 14/36.41.348.xcappdata'' 文件,在Finder中右键 -> 显示包内容