[英]How to open jetpack DataStore file (.preferences_pb)
我正在尝试新的 jetpack DataStore库。 我使用库保存了数据。 这在应用数据目录(/data/data/my.package.name/files/datastore/settings.preferences_pb)中创建了一个文件settings.preferences_pb
。 setting
是我给的文件名。 使用文本查看器无法正确显示数据。 我可以找出键名,但值是垃圾。 如何打开并查看此文件?
这是文件settings.preferences_pb的驱动器链接
这是首选项_pb 文件的当前格式: 链接
您可以使用此模式解析文件并在需要时将其打印出来。
或者,您可以只在 Preferences 对象上使用 toString() 方法,您应该会得到一个很好的可读输出。
我使用了十六进制编辑器(macOS 为“Hex Fiend”),这似乎可以理解。
你可以参考这里的preferences.proto (感谢@rohit-sathyanarayana)
二进制文件是 <string, value> 对的映射。
每对以0x0A
和长度(以字节为单位)开头。 例如0x26
表示接下来的 38 个字节。
名称字段以0x0A
和长度(以字节为单位)开头。 例如, 0x04
代表“名称”, 0x05
代表“令牌”。
值字段以0x12
和长度(以字节为单位)开头。 例如0x1E
= 接下来的 30 个字节。
第一个字节可能表示字段类型。 例如0x2A
= 字符串字段。
第二个字节是值的长度。 例如0x1C
= 28 个字节。
由于0x0A
与换行符相同,如果您的大多数字段都是字符串格式,您可以将首选项数据库作为文本打开。
参考: https : //medium.com/swlh/get-your-hand-dirty-with-jetpack-datastore-b1f1dfb0a5c1
protobuf 文件将位于 /data/data/{application.package}/files/datastore/ 中。 这些是 protobuf 格式的文件,所以我们不能用普通的编辑器读取它们。 要解码文件,我们可以使用protoc命令行。
为了能够使用 protoc 命令,我们必须使用 adb 命令将这些文件拉到我们的工作站空间
对于偏好数据存储
protoc --decode_raw < app_name.preferences_pb
结果将与此类似:
1 {
1: "app_name"
2 {
5: "Datastore sample"
}
}
1 {
1: "is_demo_mode"
2 {
1: 1
}
}
注意:is_demo_mode 的值 1 代表一个真
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.