AndroidのエミュレータからSQLiteのDBファイルを取り出す

2020/05/14

小ネタです。

開発中のAndroidアプリのDBの中身を覗きたいときはDBファイルをPCに持ってきて何らかのアプリ(DB Browser for SQLiteなど)で開くのが王道かと思います。

ファイル取得はAndroid StudioのDevice File Explorerを使えばできるのですが、いちいちGUIで操作するのは面倒です。なので、コマンドライン一発で取得する方法を調べてみました。

今回はWindows環境かつdebugビルドのアプリでしか試していないです。悪しからず。

こんな感じのbatファイルを作っておきます。pull_db.bat とでも名付けましょう。 main.db などのDBファイル名は実装に合わせて適宜読み替えてください。

@echo off
adb exec-out run-as com.example.exampleapp cat databases/main.db > main.db
adb exec-out run-as com.example.exampleapp cat databases/main.db-shm > main.db-shm
adb exec-out run-as com.example.exampleapp cat databases/main.db-wal > main.db-wal

これでコマンド一発でローカルにSQLiteのDBファイル一式をコピーできます。

f:\> pull_db.bat

ちなみに、Android Studio 4.1にはDatabase InspectorというDBを操作するツールが組み込まれます。まだCanary版なので実利用は厳しいですが、リリースされたらDB周りのテストやデバッグがラクになりますね。期待。

参考URL




関連(するかもしれない)記事


おススメ