在 Android Studio 4.1 及更高版本中,您可以利用 Database Inspector 在應(yīng)用運行時檢查、查詢和修改應(yīng)用的數(shù)據(jù)庫。這對于數(shù)據(jù)庫調(diào)試尤為有用。Database Inspector 可處理普通的 SQLite 數(shù)據(jù)庫以及在 SQLite 的基礎(chǔ)上構(gòu)建的庫(例如 Room)。
注意:Database Inspector 僅可與 API 級別 26 及更高版本的 Android 操作系統(tǒng)中所包含的 SQLite 庫結(jié)合使用。它無法處理與您的應(yīng)用捆綁的其他 SQLite 庫。
打開 Database Inspector
如需在 Database Inspector 中打開數(shù)據(jù)庫,請執(zhí)行以下操作:
-
在模擬器或搭載 API 級別 26 或更高版本的已連接設(shè)備上運行您的應(yīng)用。
注意:與 Android 11 模擬器有關(guān)的已知問題會導致應(yīng)用在連接到 DB Inspector 時發(fā)生崩潰。如需解決此問題,請按以下步驟操作。
從菜單欄中依次選擇 View > Tool Windows > Database Inspector。
從下拉菜單中選擇正在運行的應(yīng)用進程。
當前正在運行的應(yīng)用中的數(shù)據(jù)庫顯示在 Databases 窗格中。展開要檢查的數(shù)據(jù)庫的節(jié)點。
查看和修改數(shù)據(jù)
Databases 窗格顯示應(yīng)用中的數(shù)據(jù)庫列表以及每個數(shù)據(jù)庫包含的表格。雙擊表格名稱即可在檢查器窗口的右側(cè)顯示其數(shù)據(jù)。您可以點擊列標題,按該列對檢查器窗口中的數(shù)據(jù)進行排序。

您可以通過以下方式修改表中的數(shù)據(jù):雙擊單元格,輸入新值,然后按 Enter 鍵。如果您的應(yīng)用使用 Room 并且界面會觀察數(shù)據(jù)庫(例如使用 LiveData 或 Flow),那么您對數(shù)據(jù)所做的任何更改會立即顯示在正在運行的應(yīng)用中。否則,只有當應(yīng)用下次從數(shù)據(jù)庫中讀取修改后的數(shù)據(jù)時,您才會看到更改。
查看實時數(shù)據(jù)庫更改
如果您希望 Database Inspector 在您與正在運行的應(yīng)用交互時自動更新它呈現(xiàn)的數(shù)據(jù),請勾選檢查器窗口頂部的 Live updates 復選框。啟用實時更新后,檢查器窗口中的表格將變?yōu)橹蛔x狀態(tài),您無法修改其中的值。
或者,您也可以通過點擊檢查工具窗口頂部的 Refresh table 按鈕以手動更新數(shù)據(jù)。
查詢數(shù)據(jù)庫
Database Inspector 可以在應(yīng)用運行時對應(yīng)用的數(shù)據(jù)庫運行查詢。Database Inspector 可以在您的應(yīng)用使用 Room 的情況下使用 DAO 查詢,但也支持自定義 SQL 查詢。
運行 DAO 查詢
如果您的應(yīng)用使用 Room,那么 Android Studio 會提供邊線操作,讓您可以快速運行您已在 DAO 類中定義的查詢方法。如果您的應(yīng)用正在運行且 Database Inspector 已在 Android Studio 中打開,就可以執(zhí)行這些操作。您可以在 DAO 中運行任何查詢方法,方法是點擊 @Query 注解旁邊的 Run SQLite statement in Database Inspector 按鈕。

如果應(yīng)用包含多個數(shù)據(jù)庫,Android Studio 會提示您從下拉列表中選擇要查詢的數(shù)據(jù)庫。如果您的查詢方法包含已命名的綁定參數(shù),Android Studio 會在運行查詢之前請求獲取每個參數(shù)的值。查詢結(jié)果會顯示在檢查器窗口中。
運行自定義 SQL 查詢
您也可以在應(yīng)用運行時使用數(shù)據(jù)庫 Database Inspector 運行自定義 SQL 查詢來查詢您應(yīng)用的數(shù)據(jù)庫。如需查詢數(shù)據(jù)庫,請按以下步驟操作:
-
點擊 Databases 窗格頂部的 Open New Query 標簽頁 ,在檢查器窗口中打開新標簽頁。
db-inspector-new-query.png 如果應(yīng)用包含多個數(shù)據(jù)庫,請從 New Query 標簽頁頂部的下拉列表中選擇要查詢的數(shù)據(jù)庫。
在 New Query 標簽頁頂部的文本字段中輸入您的自定義 SQL 查詢,然后點擊 Run。
New Query 標簽頁中顯示的查詢結(jié)果是只讀的,無法修改。但是,您可以使用自定義 SQL 查詢字段運行 UPDATE、INSERT 或 DELETE 等修飾符語句。如果您的應(yīng)用使用 Room 并且界面會觀察數(shù)據(jù)庫(例如使用 LiveData 或 Flow),那么您對數(shù)據(jù)所做的任何更改會立即顯示在正在運行的應(yīng)用中。否則,只有當應(yīng)用下次從數(shù)據(jù)庫中讀取修改后的數(shù)據(jù)時,您才會看到更改。
其他資源
如需詳細了解 Database Inspector,請參閱下面列出的其他資源:
博文
視頻
- Database Inspector (11 Weeks of Android)
文章來源
使用 Database Inspector 調(diào)試數(shù)據(jù)庫
擴展閱讀
