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

ADB(Android Debug Bridge)を使って、アプリ開発したAndroidアプリのデータベース(SQLite)をローカル環境へコピーする方法を紹介します。ただし、開発者モードが有効になっており、ADBがインストールされていることを前提とします。

開発環境

項目バージョン
macOS14.2
adb1.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出力できるようになってます。

App Inspectionからデータベースをコピーする
App Inspectionからデータベースをコピーする

関連記事

最後までご覧いただきありがとうございます!

▼ 記事に関するご質問やお仕事のご相談は以下よりお願いいたします。
お問い合わせフォーム

関連記事