DataStore Proto Data
DataStore - Proto Data |
流程
1. build.gradle 設定
Project 設定,加入 com.google.proroubf:protobuf-gradle-plugin:0.8.15
Module 設定
加入 id "com.google.protobuf" |
加入 protobuf { } |
dependencies 加入 implementation |
2. 建立 proto 資料夾
切換到 Project |
在 src -> main 這層建立資料夾 |
名稱是 proto |
對 proto 資料夾新增 File |
名稱可以自定義 命名為 login_prefs.proto |
3. 第一次建立檔案提醒
點選 install plugins |
按照步驟安裝 |
安裝完成後,可以到 Preferences 確認 Protocol Buffer Editor,沒有可以自行搜尋安裝
選擇 Plugins 確認 Protocol Buffer Editor 是否安裝 |
4. 編輯 .proto 檔案
java_package 填入 package name
message 可以自行定義,之後可以修改
Login 內的變數可以自行定義,要確認資料型態
int32 代表 int, 這邊轉換的方式可以到 Google language Guide 查看 網址
選擇 proto3 -> Scalar Value Types |
設定完成後,記得要 Rebuild Project
切換到 Project 確認系統在 proto 資料夾下已經產生 3 個檔案 名稱會依據 message 設定的名稱不同而有所改變 |
5. 處理 Serializer 檔案
新增 Kotlin FIle |
命名為 SettingSerializer.kt |
官網介紹文件 : 網址
可以直接複製,val Context 這一段程式碼不用複製 參考 Code 要注意不要直接貼上 |
6. 主要程式碼 (RecyclerViewActivity.kt 中運行)
定義 Context.loginDataStore (可以修改)
fileName 是儲存檔案的名稱可以修改 serializer 是上方步驟定義的檔案(步驟5) |
處存檔案
使用定義的 loginDataStore 當中的 setLoginTime, setUserName, setStockListSize 是依據 message Login 設定自動產生的,放入對應參數類型即可 |
讀取檔案
利用 it 把變數讀取出來,用 Log 查看 |
onCreate() 執行
先執行檔案儲存再讀取,流程可以調整 |
Logcat 執行結果 |
註 : 沒有執行過 APP,沒有存入資料,是否需要先填入 Defuault 值
開啟 Device File Explore |
選擇對應裝置 |
到 data -> data -> package 下可以找到 .pb 檔案 .pb 檔案名稱為 Context.loginDataStore 定義(步驟6) |
點擊可以查看 |
Data Preference 介紹 : 連結
GitHub Code : https://github.com/LiuPangYao/sidekotlin
專案名稱 : sidekotlin
commit version : 1bce5e6
留言
張貼留言