iT邦幫忙

2021 iThome 鐵人賽

DAY 23
0
Mobile Development

Re: 從零開始用 Xamarin 技術來復刻過去開發的一個 App : TopStore系列 第 23

EP 23: SQLite DB in Android and iOS for TopStore App

Hello, 各位 iT邦幫忙 的粉絲們大家好~~~

本篇是 Re: 從零開始用 Xamarin 技術來複刻過去開發的一個 App: TopStore 系列文的 EP23。

上一篇談到使用 SQLite 套件在 TopStore App 來做資料儲存,接下來繼續測試運作在雙平台(iOS、Android) SQLite DB 建立狀況。

不過在本篇會額外利用到一個 "DB Browser for SQLite" 的工具來協助確認,請各位到下列網址下載適合的平台安裝檔來使用喔。
https://sqlitebrowser.org/

DB Browser for SQLite

那就開始囉~~~


首先,先來看看 Android 平台。

把 TopStoreApp 部署到一台 Android 6.0 版本的模擬器執行。
Android 6.0 模擬器

透過 "Android Device Monitor" 來監看該模擬器的執行,並且透過其中的 File Explorer 來確認 SQLite DB 檔是否出現。
SQLite DB 檔是否出現 1

SQLite DB 檔是否出現 2

若有出現的話,可以透過 "Android Device Monitor" 的 "Pull a file from the device"(在 Android Device Monitor 右上角有兩個很小的按鈕的其中一個),把該 SQLite DB 檔拉出來到電腦上。
SQLite DB 檔拉出來到電腦

在 Windows 系統上把 SQLite DB 檔案拉出來後的樣子。
SQLite DB 檔

透過前言所說的 "DB Browser for SQLite" 來開啟該 SQLite DB 檔看看。
DB Browser for SQLite

打開後可以看到上一篇 EP22 撰寫的程式所建立 Person 類別規劃的 Table 資料格式(Data Schema)。
Person 類別規劃的 Table 資料格式

這邊稍微解釋一下,在 Android 7.0 後的 OS 版本因 Android 作業系統的資料安全規範改變,若要看到其裝置內部檔案請改用其他技巧處理,如: Root...等,在此不便多談。

但目前為止 Android 檔案系統規劃從 6.0 之後都沒有大改,所以只要用 Android 6.0 的模擬器確認過一次,理論上後續到目前 Android 11.0 的檔案系統的處理方式都一樣。

再來,繼續來看看 iOS 平台。

把 TopStoreApp 部署到一台 iOS 的模擬器執行。
iOS 模擬器

接下來在 macOS 當中透過 Finder 瀏覽到該模擬器部屬 TopStore App 的資料夾。
SQLite DB 檔是否出現 1
SQLite DB 檔是否出現 2

這邊稍微解釋一下,其 macOS 用 Finder 瀏覽的路徑為 "/Users/<macOS User Account>/Library/Developer/CoreSimulator/Devices/<Simuloatr uuid>/data/Containers/Data/Applications/<App uuid>/Library/"。

其中有兩個 uuid 為 macOS 系統安裝 Xcode 時自動產生,可能因更新或重新安裝 Xcode 而改變,所以可以在 DbService 的建構式串接好 DB 的檔案路徑時,將其 SQLite DB 檔案的檔案路徑位置,透過 Debug.WriteLine...等方法,在 Visual Studio 的 "輸出" 窗格中以顯示該檔案路徑位置。

因為是 iOS 的模擬器,所以直接可以透過 macOS 的 Finder 將該檔案複製(macOS 系統當中稱作 "拷貝")出來。
複製該 SQLite DB 檔案

在 macOS 系統上把 SQLite DB 檔案拉出來後的樣子。
SQLite DB 檔

透過前言所說的 "DB Browser for SQLite" 來開啟該 SQLite DB 檔看看。
DB Browser for SQLite

打開後可以看到上一篇 EP22 撰寫的程式所建立 Person 類別規劃的 Table 資料格式(Data Schema)。
Person 類別規劃的 Table 資料格式

當然,這是 iOS 模擬器才能這樣作,如果是用實體 iOS 裝置就無法透過這樣的方式測試了,若要透過外部程式看到其實體 iOS 裝置的檔案系統內部狀態,請改用其他技巧處理,如: JB...等,在此不便多談。

由於其 iOS 檔案系統的部分,在模擬器或實體機器的作法是一致的,所以只要用模擬器確認過一次,理論上後續 App 部署到實體機器使用時也不會有太大的問題。

以上就是本 EP23 的介紹囉~~~

下篇 EP24 見唷!

搭啦嘎~~~


上一篇
EP 22: Create SQLite DB for TopStore App
下一篇
EP 24: The CRUD & Search of SQLite in TopStore App
系列文
Re: 從零開始用 Xamarin 技術來復刻過去開發的一個 App : TopStore32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言