カテゴリー
コンピューター

【Android Studio】adb コマンドでアプリの DB を直接見る方法

エミュレーターの中に入って、adb コマンドでアプリ内の SQLite データベースの中身を直接見る方法

  1. Android SDK のディレクトリを調べる。
    Android Studio の上部メニュー File > Project Structure… の Android SDK location
  2. cd Android SDK のディレクトリ/platform-tools で移動
  3. ./adb shell でエミュレーターの中に入る。
  4. cd /data/data/com.example.project/databases でデータベースのある場所に移動。com.example はパッケージ名の逆、project はプロジェクト名。
  5. 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」と見つからないと言われてしまいました><。

おそらく権限が不足しているのだと存じます。

この権現を得る方法はまだ判明しておりません。

たぶんこちらのページの内容で解決できるのではないかと睨んでおりますけれども、どうかしらね。。。

以上です。

コメントを残す