[英]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.