Xamarin.iOS 應用程式中的數據 儲存體 簡介
使用資料庫的時機
雖然行動裝置的儲存和處理功能正在增加,但手機和平板電腦仍然落後於他們的桌面電腦和膝上型電腦。 因此,規劃應用程式的數據儲存架構需要一些時間,而不只是假設資料庫一直是正確的答案。 有一些不同的選項符合不同的需求,例如:
- 喜好設定 – iOS 提供內建機制來儲存簡單的索引鍵/值組數據。 如果您要儲存簡單的使用者設定或小型數據片段(例如個人化資訊),請使用平臺的原生功能來儲存這種類型的資訊。 針對 iOS,您也可以利用此資料的 iCloud 同步處理,同時針對具有多個裝置的使用者進行備份和同步處理。
- 文字檔 – 使用者輸入或快取已下載的內容(例如HTML) 可以直接儲存在檔案系統上。 使用適當的檔案命名慣例,協助您組織檔案並尋找數據。
- 串行化資料檔 – 物件可以在文件系統上保存為 XML 或 JSON。 .NET Framework 包含連結庫,可讓串行化和取消串行化物件變得容易。 使用適當的名稱來組織數據檔。
- 資料庫 – SQLite 資料庫引擎可供 iOS 使用,而且適合用來儲存您需要查詢、排序或其他操作的結構化數據。 資料庫記憶體適用於具有許多屬性的數據清單。
- 圖像檔 – 雖然可以將二進位數據儲存在行動裝置上的資料庫中,但建議您將它們直接儲存在文件系統中。 如有必要,您可以將檔名儲存在資料庫中,以將影像與其他數據產生關聯。 處理大型映像或大量映射時,最好規劃一個快取策略,以刪除不再需要的檔案,以避免耗用所有使用者的儲存空間。
如果資料庫是應用程式的正確儲存機制,本檔的其餘部分將討論如何在 Xamarin 平臺上使用 SQLite。
使用資料庫的優點
在行動應用程式中使用 SQL 資料庫有許多優點:
- SQL 資料庫允許有效率地儲存結構化數據。
- 您可以使用複雜的查詢來擷取特定數據。
- 查詢結果可以排序。
- 可以匯總查詢結果。
- 具有現有資料庫技能的開發人員可以利用其知識來設計資料庫和數據存取程序代碼。
- 來自已連線應用程式之伺服器元件的數據模型,可以在行動應用程式中重複使用(完整或部分)。
SQLite 資料庫引擎
SQLite 是 Apple 為其行動平台採用的開放原始碼資料庫引擎。 SQLite 資料庫引擎內建至 iOS,因此開發人員不需要額外工作來利用它。 SQLite 非常適合跨平臺行動開發,因為:
- 資料庫引擎是小型、快速且容易移植的。
- 資料庫會儲存在單一檔案中,在行動裝置上很容易管理。
- 檔格式在平台之間很容易使用:無論是 32 位還是 64 位,以及 big 或 little-endian 系統。
- 它會實作大部分的 SQL92 標準。
由於 SQLite 是設計成小型且快速,因此使用時有一些注意事項:
- 不支援某些 OUTER 聯結語法。
- 僅支持數據表 RENAME 和 ADDCOLUMN。 您無法對架構執行其他修改。
- 檢視是唯讀的。
您可以在網站上深入瞭解 SQLite - SQLite.org - 不過,您需要搭配 Xamarin 使用 SQLite 的所有資訊都包含在此文件和相關範例中。 SQLite 資料庫引擎內建至所有 iOS 版本。 雖然本章未涵蓋,但 SQLite 也可用於 Windows 電話 和 Windows 應用程式。
Windows 及 Windows Phone
雖然本檔未涵蓋這些平臺,但 SQLite 也可以在 Windows 平臺上使用。 在Tasky案例研究中深入瞭解,並檢閱 Tim Heuer 的部落格。