如何访问 Flutter 的共享首选项文件?

How to access Flutter's shared preference file?

我是 Flutter 的新手,目前,我正在编写一个需要将键值对存储到磁盘并在每次应用程序打开时读取它的应用程序。

我基于this document,使用共享首选项包,效果很好。但是,调试并不容易,我习惯了web开发,类似的想法,localStorage可以在运行时间内使用几乎任何浏览器(例如Chrome)轻松访问和编辑,这个特性很容易开发和调试。

所以我的问题是,在 Flutter 开发中是否有一些等价物可以让我轻松编辑共享首选项存储? 最需要的功能之一是清除共享存储中的所有内容,这样我就可以重复运行清理程序并调试

现在我只能通过编写像 preferences.clear() 这样的功能代码来做到这一点,然后 运行 一次,这很痛苦。

我正在使用 VSCode + Android AVD 进行 Flutter 开发。

谢谢!

所以我的问题是,在 Flutter 开发中是否有一些等价物可以让我轻松编辑共享首选项存储?

是的,您可以通过您设置的键编辑 SharedPreferences 值,

prefs.Set{anytype}(key,value); // will be used to set and update if key not found it will create else if found it will update to the same key.
updateSharedKeyVal(String prefKey, String prefValue) async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    prefs.setString(prefKey, prefValue);
    // you can save or set value to persistent storage in the background
    //prefs.setInt(prefKey, prefValue);
    //prefs.setBool(prefKey, prefValue);
    //prefs.setDouble(prefKey, prefValue);
}

updateSharedKeyVal("my_key_name","my_updated_value");

To Clear,

clearSharedPreference() async {
   SharedPreferences prefs = await SharedPreferences.getInstance();
   prefs.clear();
}

我找到了一个解决方法,直接修改 Android 虚拟机中的文件: 转到 Android 查看 -> 工具 Windows -> 设备文件资源管理器。

在这里您将看到虚拟 phone 设备上的所有文件。

导航到您的应用程序文件夹,通常在 data/data/com。example.yourprojectname

在shared_prefs文件夹下,有一个XML文件,里面包含了所有的本地键值对,可以直接修改,也可以在这里删除。

PS: 在现阶段,如果 Flutter 应用程序具有大量基于本地的功能(SQLite 和共享偏好),Android Studio 是比 [=29 更好的开发工具=],为了更好的虚拟设备检查。