AndroidアプリのSLiteデータベースをローカル環境にコピーする方法
ADB(Android Debug Bridge)を使って、アプリ開発したAndroidアプリのデータベース(SQLite)をローカル環境へコピーする方法を紹介します。ただし、開発者モードが有効になっており、ADBがインストールされていることを前提とします。
開発環境
項目 | バージョン |
---|---|
macOS | 14.2 |
adb | 1.0.41 |
【ステップ1】ADBを使用してデバイスに接続する
ターミナルを開き、デバイスが接続されていることを確認します。
bash
$ adb devices
List of devices attached
8856f9a69528 device
【ステップ2】アプリのパッケージ名を確認する
アプリのパッケージ名がわかっている場合はこのステップをスキップします。わからない場合は、以下のコマンドでインストールされているアプリのリストを表示します。
bash
$ adb shell pm list packages -f
【ステップ3】データベースファイルをデバイスからコピーする
アプリのデータベースファイルの保存場所は、一般的には /data/data/<パッケージ名>/databases/<データベース名>にあります。以下のコマンドを使用してデータベースファイルをmacOSにコピーします。
bash
adb exec-out run-as <パッケージ名> cat /data/data/<パッケージ名>/databases/<データベース名> > <ローカルに保存するパス>/<データベース名>.db
アプリに指定した名前のデータベースが存在すれば、ローカル環境にコピーされるはずです。あとは $ sqlite3 <データベース名>.db でデータベースへ接続できます。
App Inspectionからデータベースをコピーする
実は、Android StudioのApp Inspectionを使えば、GUI操作で簡単にデータベースをローカル環境へコピーできます。下部のApp Inspectionタブを開き、接続中のAndroid端末のデータベースにアクセスします。写真の「右上矢印」をクリックするとデータベースを丸ごとコピーしたり、SQLやCSV出力できるようになってます。
関連記事
アイデアノート > ネイティブアプリ開発