2014年7月31日木曜日

Android debugの小ネタ(WindowsでADB Shellを使う場合)

Windows で adbを使う場合、普通にコマンドプロンプトを立ち上げて、

adb shell

と打ちます。

終了する際はadb shellの中で、

exit

または

ctrl+d (^D)

ですが、adb shellの中でコマンドを終了させたい場合どうすればよいでしょう?

ctrl+c (^C) では、adb shell 自体が終了してしまいます。(linux環境からadb shellする場合は問題ないのですが。)これは、コマンドプロンプトがctrl+cを受けて、adb shellに伝える前に、adbコマンドを終了すると判断するからです。

で、みんな困っているようで、検索するとちらほら同様の書き込みがありました。

結論としては、コマンドプロンプトが使用しないキー割り当てで、同様のシグナル終了シグナルをadb shellに伝えてやればよいのです。実は、Windowsのadbに標準でそれが実装されていました。

ctrl+\ (画面上に^¥がでた後に) Enter

です。

通常のctrl+c とは違って、シグナルを送るのに、もう一つEnterキーを押さなければなりませんが。ctrl+cと同様に、adb shell内のコマンドが終了します。

(更新)もう一つの方法:

暴走している場合、終了シグナルでは終了できないかもしれません。完全に同様なことをするには、下記の順番でキーボードをたたきます。

shift+c (画面上には C
ctrl+z (画面上には^Z
ctrl+m (画面上には^M
Enter

上記のキーを押すことで、^C を分解して発行しているわけです。

参考記事)
How to prevent adb shell from exiting upon Ctrl+C

0 件のコメント:

コメントを投稿