android adb命令,android觸屏設備event模擬,android 使用命令模擬點擊 滑動

 2023-11-11 阅读 19 评论 0

摘要:adb shell getevent -p出現上述截圖的就是屏幕觸摸輸入設備android adb命令、帶上 -ladb shell getevent -p-l。 EV_ABS??????ABS_MT_TRACKING_ID?? 00000b21linux android、EV_ABS??????ABS_MT_PRESSURE????? 0000007fEV_ABS? ????ABS_MT_TOUCH_MAJOR?? 00000006EV_ABS??????

adb shell getevent -p

5a5d2abe735f72aa68d6c7405f90c11f.png

出現上述截圖的就是屏幕觸摸輸入設備

android adb命令、帶上 -l

adb shell getevent -p-l

ba9e4f5aaf64dbd1e8d392d890b49e07.png

EV_ABS??????ABS_MT_TRACKING_ID?? 00000b21

linux android、EV_ABS??????ABS_MT_PRESSURE????? 0000007f

EV_ABS? ????ABS_MT_TOUCH_MAJOR?? 00000006

EV_ABS??????ABS_MT_POSITION_X??? 0000038f???// x坐標

android滑動條、EV_ABS??????ABS_MT_POSITION_Y??? 00000421? ?// y坐標

EV_KEY??????BTN_TOUCH??????????? DOWN???? // MotionEvent.ACTION_DOWN事件觸發

EV_SYN??????SYN_REPORT?????????? 00000000???//同步事件

android手機安裝linux?EV_ABS??????ABS_MT_PRESSURE????? 0000007e

EV_SYN??????SYN_REPORT?????????? 00000000 //同步事件

EV_ABS??????ABS_MT_TRACKING_ID?? ffffffff

EV_KEY??????BTN_TOUCH??????????? UP??? // MotionEvent.ACTION_UP事件觸發

EV_SYN??????SYN_REPORT?????????? 00000000? //同步事件

獲得event 體系里 寬(0035)和高(0036)

通過adb模擬滑動、按鍵、點擊事件

adb shell? input? -h

5119f05138d26da5fd94338bf61c6d9d.png

adb shell input text? string? ? ?在搜索框中自動輸入 string

keyevent 手機的按鍵操作,如:home鍵、返回鍵、菜單鍵、鎖屏等

例如需要點擊一下home鍵

adb shell input keyevent 3 ?或者?adb shell input keyevent?KEYCODE_HOME

tap?是模擬touch屏幕的事件,以下命令就是點擊屏幕300,300位置

adb shell input tap 300 300

swipe?是滑動事件,以下命令表示從屏幕300,300 移動到400,400

adb shell input swipe 300 300 400 400

KEYCODE_HOME 所在文件

frameworks/base/core/java/android/view/KeyEvent.java

sendevent 命令

sendevent? /dev/input/eventX? ? ?type? ? ? code? ? ? value

type、code、value? 定義在kernel-3.18/include/uapi/linux/input.h

/*

* Event types

*/

#define EV_SYN? ? ? ? ? 0x00

#define EV_KEY? ? ? ? ? 0x01? ? ? ? ? ? ? ? --按鍵

#define EV_REL? ? ? ? ? 0x02? ? ? ? ? ? ? ? --觸摸相對坐標

#define EV_ABS? ? ? ? ? 0x03? ? ? ? ? ? ? ?--觸摸絕對坐標

#define EV_MSC? ? ? ? ? 0x04

#define EV_SW? ? ? ? ? ?0x05

#define EV_LED? ? ? ? ? 0x11

#define EV_SND? ? ? ? ? 0x12

#define EV_REP? ? ? ? ? 0x14

#define EV_FF? ? ? ? ? ?0x15

#define EV_PWR? ? ? ? ? 0x16

#define EV_FF_STATUS? ? ? ? 0x17

#define EV_MAX? ? ? ? ? 0x1f

#define EV_CNT? ? ? ? ? (EV_MAX+1)

一般常用的是EV_KEY, EV_REL, EV_ABS, EV_SYN

分別對應keyboard, 相對坐標, 絕對坐標, 同步事件

EV_SYN對應的code如下

/*

* Synchronization events.

*/

#define SYN_REPORT? ? ? 0

#define SYN_CONFIG? ? ? 1

#define SYN_MT_REPORT? ? ? ?2

#define SYN_DROPPED? ? ?3

#define SYN_MAX? ? ? ? ?0xf

#define SYN_CNT? ? ? ? ?(SYN_MAX+1)

input keyevent

模擬按鍵,sendevent用起來比較繁瑣,可以用input keyevent代替

input keyevent 3??? // Home? (KeyEvent.java)

input keyevent 4??? // Back

input keyevent 19? ? //Up

用senevent 模擬觸屏事件

sendevent /dev/input/event1 0003 0000 0000015e??? // ABS x 坐標

sendevent /dev/input/event1: 0003 0001 000000df??? // ABS y 坐標

sendevent /dev/input/event1: 0001 014a 00000001 ? // BTN touch事件 值為1

adb shell input keyevent 82? ? ?這個命令會發送一個解屏事件到鎖屏的設備上解屏

http://blog.shvetsov.com/2013/02/grab-android-screenshot-to-computer-via.html

adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png? ? ?截屏并通過perl輸出到本地目錄

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/170286.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息