SQLiteに直接アクセスする
DBアクセスをするサンプルアプリを動かしていて、「本当にDBに書き込みできてるのかな??直接見てみたいなぁ」と思い、方法を調べてみました。
なかなか方法が見つからず、まさか無理なわけないよな…と思っていたら、公式の開発ガイドに載っていました…。
灯台下暗しもいいところですね…。
と、いうわけで、困ったらまずは開発ガイドやリファレンスを読みましょうという事で><
SQLiteのデータベースにアクセスする方法
(windowsの場合)
1.コマンドプロンプト起動
2.android SDKのtoolsの中にあるadbコマンド*1を使う
2.1.エミュレータの端末IDを取得
>adb devices List of devices attached emulator-5554 device ←-----これが端末ID
2.2.エミュレータにシェルで接続
>adb -s emulator-5554 shell #
2.3.接続したいデータベースを指定してSQLite3コマンドを実行
ここでは下記条件の場合になります
パッケージ名 | アプリ名 | DB名 |
---|---|---|
jp.co.test.android | SQLiteTest | test.db |
# sqlite3 /data/data/jp.co.test.android.SQLiteTest/databases/test.db sqlite3 /data/data/jp.co.test.android.SQLiteTest/databases/test.db SQLite version 3.5.9 Enter ".help" for instructions sqlite> .databases ←-----目的のDBに接続できたか確認 .databases seq name file --- --------------- ---------------------------------------------------------- 0 main /data/data/jp.co.test.android.SQLiteEx/databases/test.db ↑-----ここに指定したDB名が表示されていればOK
2.4.SQLを実行してみる
sqlite> select * from test; select * from test; 0|2000|りんご 1|1000|みかん
(補足)
このままだとちょっと見づらいかなーと思うので、カラム名の表示をONにします。
sqlite> .header on .header on sqlite> select * from test; select * from test; id|price|name 0|2000|りんご 1|1000|みかん
おそらく実機にも同様の手順でDBにアクセスできるかと思います。
参考URL
http://developer.android.com/intl/ja/guide/developing/tools/adb.html#shellcommands
*1:toolsフォルダのパスを通していない時はtoolsフォルダに移動してからコマンドを実行する