サイトロゴ

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

著者画像
Toshihiko Arai

はじめに

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出力できるようになってます。

関連記事