データベースを扱うアプリケーションの開発で、動作を確認するためにデータベースの閲覧が出来ると便利です。
データベースは、マネージメントシステムを介してアクセスされるため、プログラムからブラックボックスに見えます。
ですので、データベース内部の問題は見つけ難いです。
デバックおいてデータベースの閲覧が出来れば、内部の問題を用意に確認できます。
※環境:Android Studio Ladybug | 2024.2.1 Patch 2
閲覧の方法
閲覧の方法は、思い付くもので3つあります。
閲覧の方法 (ツールの所在) | 閲覧の対象 | 特徴 |
---|---|---|
App Inspection (Android Studio) | 実行中のアプリ | 直にテーブルの閲覧と編集が可能 ライブアップデート機能 |
/system/bin/sqlite3 (Android OS) | ファイル | 「adb shell」で端末へ接続して利用 データベースのアクセスにRoot権限が必要 |
DB Browser for SQLite (提供サイト) | ファイル | インストールが必要 ファイルを開発ホストへダウンロードして閲覧 |
※root権限:エミュレータはsuコマンドでrootへ移行可能、実機端末は移行不可 |
App Inspection
「App Inspection」は実行中のアプリを観測するツールです。Android Studioに組み込まれています。
データベースの閲覧を行うには、アプリの実行が必要です。
App Inspectionは図の手順で開きます。
Database Inspectorタブを選択すれば、データベース内のテーブルが一覧表示されます。
後は、閲覧したいテーブルをダブルクリックし、テーブルの内容をダンプします。
値はダブルクリックで変更できます。アプリの動作中でも可能です。
また、ライブアップデートをチェックすると、アプリの実行により刻々と変更される様子が見えます。
/system/bin/sqlite3
「sqlite3」はマネージメントシステムと直接対話するコマンドラインツールです。Android OSへプリインストールされています。
Android StudioのTerminalからadb shellを起動して、root権限に移行します。
root権限が必要な理由は、データベースがサンドボックス内にあるためです。
>adb shell ← 端末(Androi OS)でshellを起動 $ which sqlite3 ← sqlite3の所在を調べる /system/bin/sqlite3 $ su root ← rootへ移行(プロンプト#はrootを表す) # cd /data/data/Package名/databases ← サンドボックスへ移動 # ls Game.db
sqlite3を起動するとプロンプトが表示されるので、SQLを使ってデータベースへ問い合わせが可能です。
# sqlite3 ./Game.db ← sqlite3の起動、プロンプト表示 SQLite version 3.39.2 2022-07-21 15:24:47 Enter ".help" for usage hints. sqlite> .tables ← sqlite3のコマンド、テーブル一覧 android_metadata player sqlite> select * from player; ← SQLを実行できる、末尾は';' 1|XXXXXXXX|0 2|XXXXXXXX|0 3|XXXXXXXX|0 4|XXXXXXXX|0 5|XXXXXXXX|0 6|XXXXXXXX|0 7|XXXXXXXX|0 8|XXXXXXXX|0 9|XXXXXXXX|0 10|XXXXXXXX|0 sqlite> ← Ctrl+DでQuit #
DB Browser for SQLite
「DB Browser for SQLite」はデータベースの閲覧を行う外部ツールです。こちらの「提供サイト」からリリースされています。
事前に開発ホストにインストールして下さい。
閲覧するには、データベースファイルをAndroid OS⇒開発ホストへ、ダウンロードが必要です。
Android StudioのDevice Explorerを開いて、データベースファイルをダウンロードします。ファイルはサンドブロック(/data/data/パッケージ名)内にあります。
DB Browser for SQLiteを起動してファイルを開き、データの閲覧を行います。
関連記事: