Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
75
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

@techno-tanoC

androidの操作を自動化したときの覚書

androidで色々と自動化したくなったのでその覚書

端末の確認

adb devices
adb -s 端末のIDで端末を指定して実行

タップとスワイプ

タップ

adb shell input touchscreen tap x y

例によって左上が(0, 0)

スワイプ

adb shell input swipe x1 y1 x2 y2

タッチイベントを拾う

adb shell getevent /dev/input/event0

event0の部分はandroidのデバイスファイルのパス

-iオプションを付けると人が見やすい形式で出力してくれる。

ファイルの転送

PCからandroidへ

adb push PCのファイル 端末のファイル

androidからPCへ

adb pull 端末のファイル PCのファイル

androidのシェルを起動

adb shell

シェルの中ではタップなどのコマンドはadb shellを除いた部分だけで実行できる。

タッチイベントを記録&再現

record.rb
time = Time.now

while true
  if gets =~ /([a-f\d]+) ([a-f\d]+) ([a-f\d]+)/
    arr = [$1.to_i(16), $2.to_i(16), $3.to_i(16)]
    _time = Time.now
    puts "sleep #{_time - time}" if _time - time > 0.1
    puts "sendevent /dev/input/event0 #{arr[0]} #{arr[1]} #{arr[2]}"
  end
end

adb shell getevent /dev/input/event0 | ruby record.rb > touch.txtで記録。
adb push touch.txt /storage/sdcard0/で転送
adb shellでシェルに入って、sh /storage/sdcard0/touch.txtで実行

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
75
Help us understand the problem. What are the problem?