[Android] TinyDB 輕量級儲存載體

最近看到的技術文章不約而同都提到,沒事僅量不要使用 SQLite 儲存資料。目前雲端平台盛行,可以把儲存在手機的大量資料移往雲端。就我個人的開發經驗,除非是有資料篩選或統計的需求,否則不會考慮使用 SQLite,畢竟擺一個資料庫在手機上,總會有維護成本,利如table schema的變更,以及資料的備份與回復等等。

事實上,市面上已經有一些 SQLite 的替代方案。用較少的維護成本來儲存資料。本篇介紹的是 TinyDB。

GitHub : TinyDB--Android-Shared-Preferences-Turbo

TinyDB 其實不是資料庫,它將資料儲存在 SharedPreferences,最早是 App Inventor 預設的資料儲存媒介。後來被人提取出來供 Android Studio 使用,TinyDB 非常輕量,輕量到甚至不是一個函式庫,它只有一個 Java 檔,從 Github 下載後,加入專案就可以使用。

TinyDB的使用場景是,儲存使用者的喜好,例如我的最愛或書籤。我們可以將書籤用 List 方式儲存在 TinyDB,可是 TinyDB 沒有篩選功能,若要篩選資料,得要將資料提取出來後,再用程式篩選。

以下是使用範例,可以是 List String
//Set List String
TinyDB tinydb = new TinyDB(context);
ArrayList<String> users = new ArrayList<String>();
tinydb.putListString("users", users);

//Get List String
tinydb.getListString("users");

或者是 List Object
//Set List Object
TinyDB tinydb = new TinyDB(context);
ArrayList users = new ArrayList();
tinydb.putListObject("users", users);

//Get List Object
tinydb.putListObject("users");


優點
  • 不用維護資料庫
  • 沒有table schema變更後的升級問題
  • 資料儲存容易
缺點
  • 無法做資料篩選
  • 無法直接查看儲存內容,Debug得靠第三方套件(可安裝 Stetho,用 Chrome 除錯)
  • 資料的備份還原要自己做



相關文章

如何將電腦畫面經由 Chromecast 投放到電視螢幕上

Chrome 的檔案續傳功能

Mac與Android裝置傳輸檔案的方法

使用 Vysor 在電腦上控制 Android 裝置