Androidアプリを開発していると、DBの中身をみて確認したくなるけど、adb shellでsqlite3コマンドを叩くのはめんどくさい。。。
DB Browser for SQLite(旧 SQLite Database Browser)なんていう
GUIベースのすてきなツールもあるようなので、導入してみた際の備忘録
環境はいつもどおり、Ubuntu 15.04 64bit
DB Browser for SQLiteのインストール
配布形式はzip, tar.gzなどいろいろあるけれど、
Ubuntu用のリポジトリ(SqliteBrowser Stable PPA : Gajj GNDU)が公開されているのでそちらをつかう
# インストール $ sudo add-apt-repository ppa:linuxgndu/sqlitebrowser # リポジトリの登録 $ sudo apt-get update # リポジトリを追加したので更新 $ sudo apt-get install -y sqlitebrowser # SqlibBrowserをインストール
実行はこんな感じ
$ sqlitebrowser # 実行はこれだけ $ sqlitebrowser <file> # 開くファイルを指定して実行もできる
実機のDBの中身を確認する
DB Browser for SQLiteを使って実機の中のDBは見れないので、ローカルにコピーする
実機の場合は権限とかの関係で、参照可能な場所にコピーしてからadb pullする必要があるらしい
$ set PACKAGE_NAME='....' # 確認したいアプリのパッケージ名をセット $ adb -d shell 'run-as ${PACKAGE_NAME} cat databases/${PACKAGE_NAME}.db > /sdcard/db' # 一旦、参照可能な場所にコピー $ adb pull /sdcard/db db # adb pullで移動したファイルをPULL
めんどくさいので、まとめて実行するコマンドを作成
めんどくさいので、bashrcに一括で実行する関数(adb-dbbrowse)を作った
# Function adb-dbbrowse () { if [ $# -ne 1 ]; then echo "usage:: adb-dbbrowse <app-package-name>" else # setup parameter PACKAGE_NAME="$1" DBFILE_NAME="${PACKAGE_NAME}.db" TEMPFILE_PATH='/sdcard/db' # main adb -d shell "run-as ${PACKAGE_NAME} cat databases/${DBFILE_NAME} > ${TEMPFILE_PATH}" && \ adb pull ${TEMPFILE_PATH} ${DBFILE_NAME} && \ sqlitebrowser ${DBFILE_NAME} fi } # How to Use $ adb-dbbrowse <確認したいアプリのパッケージ名>
これでかなり快適に!!以上!!