ADBコマンド逆引き一覧

2021年4月10日

こんにちは、ノムノムです。
今回はADBのコマンドを用途別に紹介していこうと思います。

adbは以下のページからダウンロードできます。

接続/接続解除/接続確認

adb connect <ipアドレス>[:<port>]
adb disconnect [<ipアドレス>[:<port>]]
adb devices

ホストリセット

adb kill-server

ダウンロード

adb pull <ファイル> <ダウンロード先>

アップロード

adb push <ファイル> <アップロード先>

シェルスクリプト

スクリーンショット

adb shell screencap /sdcard/screen.png
adb shell screencap /sdcard/screen.png
adb pull /sdcard/screen.png <保存先>
adb shell rm /sdcard/screen.png

スクリーンムービー

adb shell screenrecord /sdcard/demo.mp4

タップ

adb shell input touchscreen tap x y

スワイプ

adb shell input swipe x1 y1 x2 y2 [duration(ms)]

Home タップ

adb shell input keyevent 3

メニュー タップ

adb shell input keyevent 1

戻る タップ

adb shell input keyevent 4

ボリューム(音量)

adb shell input keyevent 24
adb shell input keyevent 25
adb shell input keyevent 164

キーイベントの記録

adb shell getevent [-t] [-p] [-l] [-c count] [device]

終了するには「Ctrl+c」を押します。

パラメータはよく使いそうなもののみ掲載

-t時間を表記(端末起動してからの時間(秒))
時間を表記しておかないとイベント間の時間間隔がわからず再生するときに困る
-p主なイベントの確認
-l表示をラベルで表示して見やすくする
-c countバッファが指定行を超えると自動で終了
device取得する場所を指定。例:/dev/input/event5

Nox playerの場合、行が約100行くらいになるまで返ってきませんでした。
以下の方法でリアルタイムに取得できました。

adb shell
> getevent -t

データの見方は、キーイベントの再生で説明します。

キーイベントの再生

geteventでホームをタップした時のイベントを取得しました。

[    2184.660500] /dev/input/event5: 0001 0066 00000001
[    2184.660500] /dev/input/event5: 0000 0000 00000000
[    2184.660690] /dev/input/event5: 0001 0066 00000000
[    2184.660690] /dev/input/event5: 0000 0000 00000000
       ↑               ↑              ↑     ↑       ↑
 start up time(s)   device          type  code   value

つまりこれをsendeventに送ってあげるだけです。ただし、このままだと送れません。
type、code、valueの表記が16進数になっているので10進数に直して送ります。

また時間を見てみると上2行(押す)と下2行(離す)分かれています。これはタップ時間です。
要はホームキーを0.00019秒でタップしました。ということです。

これをsendeventで送信できる形に直します。

adb sell
> sendevent /dev/input/event5 1 102 1
> sendevent /dev/input/event5 0 0 0
> usleep 190
> sendevent /dev/input/event5 1 102 0
> sendevent /dev/input/event5 0 0 0

こんな感じですね。よく忘れるのはdeviceのコロン(:)を付けたまま実行するとエラーになるので注意です。

また「Permission denied」と表示される場合は、sendeventを実行する権限がありません。

ヘルプ

コマンドや説明は以下のサイト(本家)に書かれています。

まとめ

前のADB一覧がすごく使いずらかったので今回の記事を書いたんですが、いろいろ試してみるのもいいかもしれません。

コマンドを送ってから結果が返ってくるまでが時間が掛かるのが難点です。