AndroidアプリのSLiteデータベースをローカル環境にコピーする方法

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

関連記事
- Python venvで仮想環境とpip freezeを使う方法
- Xcode で Copilot が使えるようになってた!
- ESP32でjson11を使ってJSONを簡単に扱う方法|JSON文字列のパース|配列をJSONに変換
- iOSアプリ開発でSQLiteを使う FMDB
- 【Arduino開発】Platform IOでdebug版、release版を分けてビルドして実機へアップロードする方法