adb shell の使い方

adb shell の使い方

まずは動作確認

しかしいきなりエラー

An internal error occurred during: "Launching New_configuration". Path for project must have only one segment.

とエラーがでたので
検索し
http://stackoverflow.com/questions/9357111/whats-the-meaning-of-this-in-eclipse-path-for-project-must-have-only-one-segm
を参考に
Project > Properties > Run/Debugg settings

Launching New_configuration を選択し
delete
これで起動はしたけど
エラーで止まる

次にエラーログをみたら
near “integer” :syntax error
となっていたので調べたら
sql 文が違っていた

これを修正したけど
arning: Activity not started, its current task has been brought to the front
となる

これを調べたら
http://androidfaq.e1blue.net/android/status/27
によれば
ソースに変更なしで再実行するとでるらしい

とりあえず sqlite で確認したかったので
実機の Nexus 7 をUSB接続し

adb devices

で確認

ここで何も表示されていないのなら
いろいろ設定する必要がある

とりあえず、できているという前提で続ける

adb shell

を実行すると
Nexus7 の中に入れる

このままだとDBファイルの閲覧ができないので
ユーザを切り替える

やり方は

run-as アプリのパッケージ名

ということで

run-as net.developapp.mydbapp

を実行

そしてDBファイルの存在を調べるため

ls net.developapp.mydbapp /data/net.developapp.mydbapp/databases/    

を実行

これで myapp.db というsql ファイルの存在を確認

残念ながら sqlite3 が Nexus7 にはないので
一度
/sdcard へコピーし
これをPCに転送してから中身を確認する

そのままコピーしようとしても

sh: can't create /sdcard/myapp.db: Permission denied

となってしまい、権限のためコピーできない

このため、一般ユーザに戻し
次に

cd  /data/data/net.developapp.mydbapp/databases/databases

で移動し

run-as net.developapp.mydbapp cat databases/myapp.db > /sdcard/myapp.db

というようにすれば
コピーできる

あとは
adb シェルからログアウトして

 adb pull /sdcard/myapp.db 

でファイルをコピー

これで
Ubuntu で

sqlite3 myapp.db 

とすれば中身をみることができる

Nexux7 での
SQLiteの取得と内容確認

http://ymlib.com/YMWorld/Android/P0/W0/P007/YMWAndroid007.html
を参考にさせていただきました

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です