PHP+ADB でAndroid画面操作の保存と再現をする

adb経由で getevent/sendevent を使います.

Getevent | Android Developers

adb_—_121×44

やってみておもしろかったの以下からのPHPへの移植です.

getevent/sendeventでAndroid端末の操作自動化

実行方法は同様に,ADB接続したパソコン上コンソールから

保存

$ adb shell getevent /dev/input/event2 | php getevent.php > events.txt

保存したファイルはシェルスクリプトです.

$ cat event.txt
sleep 0.000
adb shell sendevent /dev/input/event2 0 0 0
sleep 0.000
adb shell sendevent /dev/input/event2 3 53 283
sleep 0.010
adb shell sendevent /dev/input/event2 3 54 2331
sleep 0.000
adb shell sendevent /dev/input/event2 0 0 0
sleep 0.000
adb shell sendevent /dev/input/event2 3 57 4294967295
sleep 0.060
adb shell sendevent /dev/input/event2 0 0 0
sleep 0.000
adb shell sendevent /dev/input/event2 3 57 1886
sleep 0.344
adb shell sendevent /dev/input/event2 3 53 800
sleep 0.000
adb shell sendevent /dev/input/event2 3 54 2312
sleep 0.000
adb shell sendevent /dev/input/event2 3 58 64
sleep 0.000
adb shell sendevent /dev/input/event2 3 48 4
sleep 0.000
adb shell sendevent /dev/input/event2 0 0 0
sleep 0.000
adb shell sendevent /dev/input/event2 3 53 798
sleep 0.010
adb shell sendevent /dev/input/event2 3 54 2311
...

このときの タッチパネルを表す /dev/input/event2 は端末によって違います.

コンソールから以下で確認しましょう.

以下Nexus4の場合.

$ adb shell getevent
add device 1: /dev/input/event0
  name:     "pmic8xxx_pwrkey"
add device 2: /dev/input/event1
  name:     "keypad_8064"
add device 3: /dev/input/event4
  name:     "apq8064-tabla-snd-card Headset Jack"
add device 4: /dev/input/event3
  name:     "apq8064-tabla-snd-card Button Jack"
add device 5: /dev/input/event5
  name:     "hs_detect"
add device 6: /dev/input/event2
  name:     "touch_dev"
^C

再現

$ sh events.txt

続きを読む >>