大家好,我是秉心說。今天帶來的內容是 Android Studio 4.1 版本帶來的一個新功能。
對於大部分 Android 開發者來說,Sqlite 數據庫肯定不陌生。記得我人生前幾次的面試當中,還遇到過要求徒手寫一個增刪改查的客戶端。那麼,你們一般都是如何查看或者調試數據庫的呢?
你是如何查看和調試數據庫的 ?
我們都知道,數據庫文件是存在應用沙盒中的,無法直接查看。當然 root 過的手機可以直接導出來,通過 Android Studio 自帶的 Device File Explorer 也可以導出來,在 PC 端通過任何數據庫軟件都可以查看,例如 Navicat 等等。
這樣做其實很麻煩,業界一些優秀的開源庫提供了一種解決方案,那就是 Android-Debug-Database ,github 地址如下:
https://github.com/amitshekhariitbhu/Android-Debug-Database
在項目中集成之後,可以在瀏覽器端直接查看,修改,編輯當前應用的數據庫文件。不僅僅是數據庫文件,SharedPreference 文件也可以進行操作。由於都是私有目錄中的文件,其實都是一樣的原理。README 中給出了一張瀏覽器截圖,大家可以看一下:
相比原來的導出到 PC 查看,效率大大提升。最近滴滴開源的 DoraemonKit 也提供了類似的瀏覽器查看數據庫功能,相信原理也都是類似的。這裏就不再介紹了。
太麻煩了 ?
什麼?查看個數據庫還要我集成一個庫?還要我打開瀏覽器?不知道 Chrome 吃內存嗎?
其實,這種無腦的工作就應該交給 IDE 來做嘛。在 Android Studio 4.1 Canary 5 以及更高版本 上,內置了 Database Inspector ,提供了以下功能:
查詢和修改表數據
執行查詢語句
執行 Dao 文件中定義的 Room 查詢語句
我這裏以大家比較熟悉的 sunflower 工程爲例,來演示一下以上功能。
Database Inspector 使用
查看和修改表數據
打開方式如下圖所示:
Database Inspector 會自動列出當前可調試的進程,以及該進程的應用所包含的數據庫中的所有表。如下圖所示,sunflower 應用包含 garden_plantings
和 plants
兩張表,分別表示 我的花園中的植物 和 所有的植物。
左側會列出應用的所有數據庫,雙擊數據庫,下拉列表中會展示出該數據庫下的所有表。雙擊表,會在右側視圖中展示當前表中的所有數據。
表中的任何數據都是可以修改的。雙擊任意一項,修改之後,回車保存。這時候你在 App 上刷新頁面,就可以看到變化。
反之,你在 App 上進行涉及到數據庫操作的修改,只需要在 Database Inspector 上點擊刷新即可看到修改。(注意,這不是實時的,你得手動刷新才能看到修改)。
你可以在我的花園中添加植物之後,再去刷新 garden_plantings
表,就可以立即看到修改了。
執行 SQL
除了查看和修改表數據,Database Inspector 還提供了一項能力,執行 SQL 語句 ,這也是大多數 PC 上的數據庫軟件所具備的功能。通過下面的動圖演示一下:
結合 Room
Room 作爲 Google 親兒子,肯定少不了優待。你在 Room 中通過 @Query
註解標記的接口方法,可以在 Android Studio 中直接執行並在 Database Inspector 中直接展示執行結果。通過下面的動圖演示一下:
從上面的 gif 也可以看到,當被執行的方法需要查詢參數時,會讓我們輸入參數。對於 @Insert
、@Delete
等標記的非查詢方法,是不支持直接運行的。
最後
可以說,Database Inspector 大大提升了我們的數據庫使用體驗,特別是針對 Room 。別忘了使用條件:
Android Studio 4.1 Canary 5 及以上版本
API 26 以上的手機
Android Studio 4.1 另一個大更新就是對 Jetpack Compose 的強力支持了。作爲數據驅動 UI 的完美解決方案,後續我也會持續更進。
今天的文章就到這裏了,我是一直堅持原創的秉心說,更多最新 Android 動態,掃碼關注我的公衆號吧 !