android実機のローカルDBの中身を見るシェルを作った
2016/03/15
Androidの開発中に実機検証していると端末で保存したローカルDBの中身を見たくなることが多々あるのですが、adbで実機接続中は直接sqlite3で開くことが出来ないので一度DBファイルを開発PCにpullしてから開かなくてはいけません。
この手順が毎回やっていると非常に面倒なので、mac用のシェルスクリプトを作りました。
ファイル名:getdb
#!/bin/bash if [ $# != 2 ]; then echo "usage: $0 package_name db_filename" 1>&2 exit 0 fi adb shell "run-as $1 chmod 666 /data/data/$1/databases/$2" adb shell "run-as $1 cp /data/data/$1/databases/$2 /sdcard/$2" adb pull /sdcard/$2 /tmp/ sqlite3 /tmp/$2
./getdb パッケージ名 DBファイル名
の形式で実行します。
コマンドを実行するたびにmac側の/tmp配下にDBファイルを持ってきてsqlite3で開くようにしています。
また、GUIのツールがMacにインストールしてあれば、そちらから開くようにすることも出来ます。
ということで、Applications配下にインストール済みのsqlitebrowserから開くようにしてみました。
#!/bin/bash if [ $# != 2 ]; then echo "usage: $0 package_name db_filename" 1>&2 exit 0 fi adb shell "run-as $1 chmod 666 /data/data/$1/databases/$2" adb shell "run-as $1 cp /data/data/$1/databases/$2 /sdcard/$2" adb pull /sdcard/$2 /tmp/ open -a "/Applications/sqlitebrowser.app" /tmp/$2
修正したのは最後の行でdbファイルを開くところだけです。
作業がとてつもなく楽になりましたね。
さらに、次の記事にてDBファイルを更新するシェルもつくりました。