2012年6月24日日曜日

実機デバッグでプリファレンスの内容を確認する方法

エミュレーターはroot権限なので/data/data/パッケージ名/以下のファイルが見られますが、実機では権限が無いため見られません。
「実機でも見られたらデバッグ捗るのになぁ」というお話。

前提条件
AndroidManifest.xmlの
android:debuggableが"true"であること。
※明示的にdebuggableを指定していない場合はデバッグビルド / リリースビルドでtrue / falseを勝手に切り替えてくれる

手順
adb shell
run-as パッケージ名

ran-asコマンドにより、指定したアプリ(パッケージ名)のユーザーに切り替わるので/data/data/パッケージ名/以下が見られるようになる。
あとは、/data/data/パッケージ名/shared_prefs/以下にあるプリファレンスのxmlファイルをcatコマンドで表示すれば内容が確認できます。

注意事項
便利なrun-asコマンドですが、すべての実機で使えるわけではないようです。
以下、動作確認結果です。

[OK] Nexus S
[OK] ICONIA TAB A500
[NG] IS11LG *コマンド実行権限はあるが...
[NG] IS06 *コマンド実行権限なし
[NG] IS01 *コマンド実行権限なし

データベースも!と思ったのですが、sqlite3コマンドの実行権限が無かったり、そもそもsqlite3コマンドが無かったりでだめでした。。

0 件のコメント:

コメントを投稿