Android 实时数据库工具Database Inspector
在 Android Studio 4.1 及更高版本中,您可以利用 Database Inspector 在應用運行時檢查、查詢和修改應用的數據庫。這對于數據庫調試尤為有用。Database Inspector 可處理普通的 SQLite 數據庫以及在 SQLite 的基礎上構建的庫(例如?Room)。
注意:Database Inspector 僅可與 API 級別 26 及更高版本的 Android 操作系統中所包含的 SQLite 庫結合使用。它無法處理與您的應用捆綁的其他 SQLite 庫。
在 Android Studio最新版本中,Database Inspector包含在了App Inspection中
打開 Database Inspector
如需在 Database Inspector 中打開數據庫,請執行以下操作:
在模擬器或搭載 API 級別 26 或更高版本的已連接設備上運行您的應用。
注意:與 Android 11 模擬器有關的已知問題會導致應用在連接到 DB Inspector 時發生崩潰。如需解決此問題,請按以下步驟操作。
從菜單欄中依次選擇?View > Tool Windows > App Inspection。
選擇?Database Inspector?標簽頁。
從下拉菜單中選擇正在運行的應用進程。
當前正在運行的應用中的數據庫顯示在?Databases?窗格中。展開要檢查的數據庫的節點。
查看和修改數據
Databases?窗格顯示應用中的數據庫列表以及每個數據庫包含的表格。雙擊表格名稱即可在檢查器窗口的右側顯示其數據。您可以點擊列標題,按該列對檢查器窗口中的數據進行排序。
您可以通過以下方式修改表中的數據:雙擊單元格,輸入新值,然后按 Enter 鍵。如果您的應用使用 Room 并且界面會觀察數據庫(例如使用?LiveData?或?Flow),那么您對數據所做的任何更改會立即顯示在正在運行的應用中。否則,只有當應用下次從數據庫中讀取修改后的數據時,您才會看到更改。
查看實時數據庫更改
如果您希望 Database Inspector 在您與正在運行的應用交互時自動更新它呈現的數據,請勾選檢查器窗口頂部的?Live updates?復選框。啟用實時更新后,檢查器窗口中的表格將變為只讀狀態,您無法修改其中的值。
或者,您也可以通過點擊檢查工具窗口頂部的?Refresh table?按鈕以手動更新數據。
查詢數據庫
Database Inspector 可以在應用運行時對應用的數據庫運行查詢。Database Inspector 可以在您的應用使用 Room 的情況下使用 DAO 查詢,但也支持自定義 SQL 查詢。
運行 DAO 查詢
如果您的應用使用 Room,那么 Android Studio 會提供邊線操作,讓您可以快速運行您已在?DAO 類中定義的查詢方法。如果您的應用正在運行且 Database Inspector 已在 Android Studio 中打開,就可以執行這些操作。您可以在 DAO 中運行任何查詢方法,方法是點擊?@Query?注解旁邊的?Run SQLite statement in Database Inspector??按鈕。
如果應用包含多個數據庫,Android Studio 會提示您從下拉列表中選擇要查詢的數據庫。如果您的查詢方法包含已命名的綁定參數綁定參數,Android Studio 會在運行查詢之前請求獲取每個參數的值。查詢結果會顯示在檢查器窗口中。?
運行自定義 SQL 查詢
您也可以在應用運行時使用數據庫 Database Inspector 運行自定義 SQL 查詢來查詢您應用的數據庫。如需查詢數據庫,請按以下步驟操作:
? ? ?1.點擊?Show query history??按鈕,查看您先前針對所選數據庫運行的查詢列表。? ? ?2.點擊列表中的某個查詢便可在編輯器中查看完整查詢的預覽,然后按?Enter?將其復制到編輯器中。
? ? ?3.點擊?Run?以執行該語句。
或者,您也可以使用查詢歷史記錄功能來運行先前使用的查詢:
點擊?Databases?窗格頂部的?Open New Query 標簽頁?,在檢查器窗口中打開新標簽頁。?
如果應用包含多個數據庫,請從?New Query?標簽頁上的下拉菜單中選擇要查詢的數據庫。
在?New Query?標簽頁頂部的文本字段中輸入您的自定義 SQL 查詢,然后點擊?Run。
New Query?標簽頁中顯示的查詢結果是只讀的,無法修改。但是,您可以使用自定義 SQL 查詢字段運行?UPDATE、INSERT?或?DELETE?等修飾符語句。如果您的應用使用 Room 并且界面會觀察數據庫(例如使用?LiveData?或?Flow),那么您對數據所做的任何更改會立即顯示在正在運行的應用中。否則,只有當應用下次從數據庫中讀取修改后的數據時,您才會看到更改。
離線模式
在 Android Studio 4.2 及更高版本中,您可以在進程斷開連接后繼續檢查應用的數據庫。這樣,在崩潰后可以更輕松地調試應用。
如果發生斷開連接的情況,Database Inspector 會下載您的數據庫,然后供您在離線模式下使用這些數據庫。您仍然可以在離線模式下打開表格并運行查詢。
當您重新連接至實時應用進程時,Database Inspector 將退出離線模式,并僅顯示設備上的數據。也就是說,重新連接到應用進程后,系統不會保留離線模式下顯示的數據。由于此限制,Database Inspector 不支持在離線模式下修改數據或運行修改 SQL 語句。
使數據庫連接保持打開狀態
Database Inspector 只能在應用保持與相應數據庫的實時連接時修改數據庫。這意味著,如果應用頻繁與數據庫連接和斷開連接,就會很難調試這些數據庫。Databases?窗格使用圖標識別打開的 () 和關閉的 () 數據庫。
此外,您還可以防止數據庫連接關閉,方法是在?Databases?窗格頂部將?Keep database connections open?從關閉 () 切換為開啟 ()。
從 Database Inspector 中導出數據
您可以從 Database Inspector 中導出數據庫、表和查詢結果,以便在本地保存、共享或重新創建。在 Android Studio 中打開一個應用項目并在 Database Inspector 中檢查該項目的應用時,可以采用以下任一方法開始導出數據:
- 在?Databases?面板中選擇數據庫或表,然后點擊面板頂部附近的?Export to file。
- 右鍵點擊?Databases?面板中的數據庫或表,然后從上下文菜單中選擇?Export to file。
- 在標簽頁中檢查表或查詢結果時,點擊表或查詢結果上方的?Export to file。
選擇導出操作后,請使用?Export?對話框幫助您完成最后的步驟,如下所示。根據是否需要嘗試導出數據庫、表或查詢結果,可以選擇使用以下一種或多種格式導出數據:DB、SQL 或 CSV。
總結
以上是生活随笔為你收集整理的Android 实时数据库工具Database Inspector的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cesium billboard 点击
- 下一篇: 排序算法杂谈(三) —— 归并排序的非递