AndroidのエミュレータからSQLiteのDBファイルを取り出す
小ネタです。
開発中の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
関連(するかもしれない)記事
おススメ