らくとん倶楽部
ラクトンC10(γ-デカラクトン)とラクトンC11(γ-ウンデカラクトン)の香りに魅了された日々の備忘録

Android端末を操作する便利なadbコマンド集

Android端末を操作する便利なadbコマンド集

Android端末を操作する事ができるadb(Android Debug Bridge)コマンド。実に多くの事ができる便利なコマンドですが、詳細な取扱説明書があるわけでもなく、ただただGoogle検索をする日々をしばらく送りました。

ここでは、そんな数あるadbコマンドの中から、利用頻度の高いコマンドを紹介します。

Android端末の状態確認

機内モード状態

adb -s [デバイスID] shell settings put global airplane_mode_on

0: 機内モードOFF (通信状態)
1: 機内モードON (非通信状態)

モバイルネットワーク状態

adb -s [デバイスID] dumpsys telephony.registry | grep mDataConnectionState

  mDataConnectionState=2: ネットワーク接続中
  mDataConnectionState=0: ネットワーク切断中

画面状態

このコマンドは一部のAndroidでのみ有効。

adb -s [デバイスID] dumpsys power | grep mScreenOn

  mScreenOn=false: 画面OFF (画面消灯状態)
  mScreenOn=true: 画面ON (画面点灯状態)

IPアドレス

adb -s [デバイスID] shell ip addr show | grep rmnet

Android端末の場合、rmnet0やrmnet1などといったNICにIPアドレスが割り当てられている。

Androidバージョン

adb -s [デバイスID] shell getprop ro.build.version.release

Android APIレベル

adb -s [デバイスID] shell getprop ro.build.version.sdk

Android端末の操作

機内モード設定画面表示

adb -s [デバイスID] shell am start -a android.settings.AIRPLANE_MODE_SETTINGS

端末やAndroid版数によって、表示される画面が異なるので注意して下さい。

スリープ状態(画面消灯状態)から復旧する

adb -s [デバイスID] shell input keyevent KEYCODE_WAKEUP

Android版数が古いと動作しません

スリープ状態(画面消灯状態)にする

adb -s [デバイスID] shell input keyevent KEYCODE_SLEEP

Android版数が古いと動作しません

機内モード

以下の方法はAndroid4.2以降では利用できないので注意して下さい。Android4.2以降では、機内モードアイコンは変化するものの実際の無線状態は変化しなかったり、セキュリティ上の理由でコマンド自体が拒否されたりします。

  • 機内モードON
    adb -s [デバイスID] shell settings put global airplane_mode_on 1
    adb -s [デバイスID] shell am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true
  • 機内モードOFF
    adb -s [デバイスID] shell settings put global airplane_mode_on 0
    adb -s [デバイスID] shell am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false

では、Android4.2以降における機内モードの操作はどうすれば良いのでしょうか?正解は「機内モード設定画面を呼び出し、表示された機内モード変更のボタンをタップする」です。当然の事ながら「機内モード設定画面」の構成や機内モード変更ボタンの座標位置は機種やAndroidバージョンによって異なります。そのため、上記に示したような機種依存性のないadbコマンドを使うことが出来ないのが現状です。「端末毎に異なるスクリプトを用意するなんて出来ないよ」とお嘆きのあなた。解決する方法はあります。それはまたの機会に紹介しましょう。

電源ボタン押下

adb -s [デバイスID] shell input keyevent KEYCODE_POWER

スリープ状態から復旧したい場合、古いAndroid端末だとKEYCODE_WAKEUPが効かないので、代わりにこのKEYCODE_POWERを送信するとスリープ状態から復旧する事が出来ます。

ホームボタン押下

adb -s [デバイスID] shell input keyevent KEYCODE_HOME

Android端末を操作する際、何か意図しないアプリや画面が表示されている可能性を考慮して、まずはホームボタンを押下してから操作すると良いでしょう。

画面タップ

adb -s [デバイスID] shell input touchscreen tap [x] [y]

ここでxおよびyはタップする座標で、画面左上からの相対位置となります。

画面スワイプ

adb -s [デバイスID] shell input swipe [x1] [y1] [x2] [y2]

ここでx1およびy1はスワイプ開始座標で、画面左上からの相対位置となります。X2およびy2はスワイプ終了座標です。スワイプの速度は調整できません。ロック画面から復旧する際などによく用います。

エスケープ

adb -s [デバイスID] shell input keyevent KEYCODE_ESCAPE

このコードを入力することで、既に開いている設定画面をキャンセルする(閉じる)事が出来ます。例えば、機内モード操作において、Android端末が既に機内モード操作画面を開いていると、その後の端末操作によって誤動作する可能性があります(意図しない画面が表示されてしまうため)。そこで一旦エスケープして機内モード操作画面をキャンセルし、その後改めて機内モード設定画面を呼び出すことで、誤動作する可能性を回避する事が出来ます。

らくとん
作成日 2019年04月15日 23時43分
更新日 2019年04月25日 00時52分
2903文字
Twitter Facebook はてなブックマーク Pocket
■ 関連記事
らくとん倶楽部らくとん倶楽部
Author: らくとん
pingはネットワーク疎通確認のためのツールですが、スループット確認のためのツールはiperfが事実上の標準になっています。TCPやUDP、様々なトラフィック負荷を容易にかけることが出来るため、ネット...