データベースの閲覧

投稿日:  更新日:

データベースを扱うアプリケーションの開発で、動作を確認するためにデータベースの閲覧が出来ると便利です。

データベースは、マネージメントシステムを介してアクセスされるため、プログラムからブラックボックスに見えます。

ですので、データベース内部の問題は見つけ難いです。

デバックおいてデータベースの閲覧が出来れば、内部の問題を用意に確認できます。

※環境: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は図の手順で開きます。

App Inspectionを開く

Database Inspectorタブを選択すれば、データベース内のテーブルが一覧表示されます。

後は、閲覧したいテーブルをダブルクリックし、テーブルの内容をダンプします。

Database Inspectorを開く

値はダブルクリックで変更できます。アプリの動作中でも可能です。

また、ライブアップデートをチェックすると、アプリの実行により刻々と変更される様子が見えます。

スポンサーリンク

/system/bin/sqlite3

「sqlite3」はマネージメントシステムと直接対話するコマンドラインツールです。Android OSへプリインストールされています。

Android StudioのTerminalからadb shellを起動して、root権限に移行します。

Terminalを開く

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を起動してファイルを開き、データの閲覧を行います。

DB Browser for SQLiteでファイルを開く

スポンサーリンク

関連記事:

Androidアーキテクチャコンポーネント(AAC)は「堅牢でテストとメンテナンスが簡単なアプリの設計を支援する」とドキュメントで説明されています。 有効そうだけど、実態がよくわからないので、いろいろ調べて理解した内容をまとめました。 ...
Androidは標準でSQLiteというRDBMS(Relational Database Management System)を扱います。 SQLiteは少し個性的なデータベースです。 データベース全般の説明を通して、SQLiteと他の違いをまとめます。 ※環境:Android Studio Ladybug | 2024.2.1 Patch 2     Kotlin 2.0.0 ...
Androidが標準で扱うデータベースはSQLiteです。 ※詳細は「Androidで扱うデータベース」を参照 データベースを構築する方法は「SQLite API(Android SDK)」と「Room(Android Jetpack)」の2通りがあります。 今回は「SQLite API」でデータベースを構築する方法を紹介します。 ※環境:Android Studio Ladybug | 2024.2.1 Patch 2     Kotlin 2.0.0 ...
Androidが標準で扱うデータベースはSQLiteです。 ※詳細は「Androidで扱うデータベース」を参照 データベースを構築する方法は「SQLite API(Android SDK)」と「Room(Android Jetpack)」の2通りがあります。 今回は「Room」でデータベースを構築する方法を紹介します。 ※環境:Android Studio Ladybug | 2024.2.1 Patch 2     Kotlin 2.0.0     androidx.sqlite:sqlite:2.4.0     androidx.room:room-*:2.6.1 ...
アプリケーションが始めて起動した直後に、データの事前取り込み(初期状態の設定)を必要とする場合があります。 事前取り込みの方法ついて、まとめました。 SQLite API(Android SDK)でデータベースを構築した場合です。 ※環境:Android Studio Ladybug | 2024.2.1 Patch 2     Kotlin 2.0.0 ※サンプルの全体像は「SQLite APIでデータベースを構築」を参照 ...
SQLite API(Android SDK)でデータベースを構築した場合、アプリのパフォーマンスを考えると、識別子の共有が必要になってきます。 この点について、まとめました。 ※環境:Android Studio Ladybug | 2024.2.1 Patch 2     Kotlin 2.0.0 ※サンプルの全体像は「SQLite APIでデータベースを構築」を参照 ...
SQLite API(Android SDK)でデータベースを構築した場合、データベースへアクセスする際に、データベースのOpenとCloseという処理を伴います。 この点について、まとめました。 ※環境:Android Studio Ladybug | 2024.2.1 Patch 2     Kotlin 2.0.0 ※サンプルの全体像は「SQLite APIでデータベースを構築」を参照 ...
SQLite API(Android SDK)でデータベースを構築した場合、アクセスはスレッドセーフになります。 この点について、まとめました。 ※環境:Android Studio Ladybug | 2024.2.1 Patch 2     Kotlin 2.0.0 ※サンプルの全体像は「SQLite APIでデータベースを構築」を参照 ...
スポンサーリンク