エミュレーターの中に入って、adb コマンドでアプリ内の SQLite データベースの中身を直接見る方法
- Android SDK のディレクトリを調べる。
Android Studio の上部メニュー File > Project Structure… の Android SDK location - cd Android SDK のディレクトリ/platform-tools で移動
- ./adb shell でエミュレーターの中に入る。
- cd /data/data/com.example.project/databases でデータベースのある場所に移動。com.example はパッケージ名の逆、project はプロジェクト名。
- sqlite3 dbname.db でアプリ内の SQLite データベースに入る。dbname.db はアプリ製作者が決めた DB 名。ls で非レクトリを調べれば名前がわかる。
なお、エミュレーターから出るには、exit または control + d です。
SQLite にログインしてからよく打つコマンド
- .tables テーブル一覧を表示
- .schema テーブル名 テーブル定義を表示
- control + d SQLite からログアウト
おわりに
本投稿の内容は、エミュレーターで活用いたしました。
実機ですと、./adb shell でスマホに入ることはできたのですけども、ls コマンドで「opendir failed, Permission denied」と警告されてできなかったり、sqlite3 コマンドで「/system/bin/sh: sqlite3: not found」と見つからないと言われてしまいました><。
おそらく権限が不足しているのだと存じます。
この権現を得る方法はまだ判明しておりません。
たぶんこちらのページの内容で解決できるのではないかと睨んでおりますけれども、どうかしらね。。。
以上です。