Android Studioでデータベースを閲覧・編集!Database InspectorとADBコマンドの使い方
Android StudioでSQLiteデータベースをブラウズする方法
Database Inspectorは、Android Studioに標準搭載されているツールで、実行中のアプリのデータベースを簡単に閲覧できます。
手順:
- Android Studioでアプリを実行
- [View] > [Tool Windows] > [App Inspection] を選択
- [Database Inspector]タブ を選択
- 接続したいアプリプロセスを選択
- [Database]ペイン に、アプリのデータベースが表示されます。
Database Inspectorでは、以下の操作が可能:
- テーブルの内容を閲覧
- データの追加、編集、削除
- SQLクエリの実行
ADBコマンドを使う
ADB(Android Debug Bridge)コマンドを使って、SQLiteデータベースファイルをコンピュータに抜き出し、ブラウザなどで閲覧することもできます。
- Android StudioでSDK Platform Toolsの場所を確認
- Windows:
C:\Users\<username>\AppData\Local\Android\sdk\platform-tools
- Windows:
- コマンドプロンプト/ターミナルを開き、SDK Platform Toolsのディレクトリへ移動
- 以下のコマンドを実行
- データベースファイルをリストアップ:
adb shell ls /data/data/<app package name>/databases
- データベースファイルをリストアップ:
抜き出したデータベースファイルは、SQLite Browserなどのツールで開いて閲覧できます。
補足
- 上記以外にも、SQLiteデータベースをブラウズするためのライブラリやツールが存在します。
- 開発中のアプリのデータベースをブラウズする際は、デバッグモードを有効にする必要があります。
- データベースファイルを直接編集する場合は、十分に注意する必要があります。誤った編集は、アプリの動作不具合やデータ損失につながる可能性があります。
Android StudioでSQLiteデータベースをブラウズするサンプルコード
このサンプルコードでは、Database Inspectorを使って、sample_db.db
という名前のデータベース内のusers
テーブルの内容を閲覧します。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Database Inspectorを起動
DatabaseInspector inspector = DatabaseInspector.getInstance(this);
inspector.connectToDatabase("sample_db.db");
// usersテーブルの内容を閲覧
TableInfo tableInfo = inspector.getTableInfo("users");
for (ColumnInfo columnInfo : tableInfo.columns) {
Log.d("MainActivity", "Column: " + columnInfo.name + " (" + columnInfo.type + ")");
}
for (Row row : inspector.getRows(tableInfo)) {
for (Value value : row.values) {
Log.d("MainActivity", "Value: " + value);
}
}
// Database Inspectorを閉じる
inspector.disconnectFromDatabase();
}
}
このサンプルコードでは、ADBコマンドを使って、sample_db.db
という名前のデータベースファイルをコンピュータに抜き出し、database.sqlite
という名前で保存します。
// SDK Platform Toolsのディレクトリへ移動
String platformToolsDir = "/path/to/platform-tools";
// データベースファイルを抜き出す
String command = platformToolsDir + "/adb shell cat /data/data/com.example.app/databases/sample_db.db > database.sqlite";
Runtime.getRuntime().exec(command);
このコードを実行するには、以下の準備が必要です。
- Android StudioでSDK Platform Toolsの場所を確認する
- アプリのパッケージ名 (
com.example.app
を実際のアプリのパッケージ名に置き換える) - データベースの名前 (
sample_db.db
を実際のデータベース名に置き換える)
注意事項
- 上記のコードはあくまでサンプルであり、実際の開発環境に合わせて変更する必要があります。
Android StudioでSQLiteデータベースをブラウズするその他の方法
SQLite Browserは、SQLiteデータベースを閲覧、編集、作成するためのオープンソースツールです。 Android Studioに組み込まれているわけではないものの、使いやすいグラフィカルインターフェースを備えており、データベース操作の初心者でも簡単に利用できます。
サードパーティ製のライブラリを使う
Android Studioには、SQLiteデータベース操作を容易にするサードパーティ製のライブラリがいくつか用意されています。 例えば、RoomやSQLDelightは、データベース操作のコードを簡潔に記述できるライブラリとして人気があります。
ログを利用する
データベース操作のログを記録することで、データベースの内容を確認することができます。 ログには、実行されたSQLクエリや取得されたデータなどが記録されます。
Instrumentation Testは、Androidアプリのテストを行うためのフレームワークです。 Instrumentation Testを使って、データベース操作をテストすることで、データベースの内容を確認することができます。
どの方法が最適かは、個々の開発者の好みや要件によって異なります。
android sqlite android-studio