当前位置: 首页 > news >正文

永康网站网站建设百度开发者

永康网站网站建设,百度开发者,小说网站源码,制作app怎么做通过adb shell sendevent 命令可以发送鼠标(触屏)、键盘等设备的事件,写成bat脚本或sh脚本后可以方便地进行自动化测试。 命令格式:adb shell getevent[device] adb shell sendevent [device] [type] [code] [value] 其中device为…

通过adb shell sendevent 命令可以发送鼠标(触屏)、键盘等设备的事件,写成bat脚本或sh脚本后可以方便地进行自动化测试。

命令格式:adb shell getevent[device]

adb shell sendevent [device] [type] [code] [value]

其中device为设备类型,不同的UE包括的device不一样,可以通过下面的命令查看:

adb shell cat /proc/bus/input/devices

I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="88pm822_hook_vol"
P: Phys=88pm822_hook_vol/input0
S: Sysfs=/devices/platform/pxa910-i2c.2/i2c-2/2-0030/88pm822-headset/input/input5
U: Uniq=
H: Handlers=kbd event5 keyreset touch_boost 
B: PROP=0
B: EV=3
B: KEY=4 0 0 0 c0000 0 0 0I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="vnc-ts"
P: Phys=vnc-ts/input0
S: Sysfs=/devices/platform/vnc-ts/input/input6
U: Uniq=
H: Handlers=mouse1 event6 touch_boost touch_boost 
B: PROP=0
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=11000003I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="mxt224_ts_input"
P: Phys=
S: Sysfs=/devices/virtual/input/input0
U: Uniq=
H: Handlers=event0
B: EV=9
B: ABS=2650000 0I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="gyro"
P: Phys=
S: Sysfs=/devices/virtual/input/input1
U: Uniq=
H: Handlers=event1
B: EV=5
B: REL=38I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="herring-keypad"
P: Phys=
S: Sysfs=/devices/virtual/input/input2
U: Uniq=
H: Handlers=event2 keychord
B: EV=3
B: KEY=1c0000 0 0 0I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="proximity"
P: Phys=
S: Sysfs=/devices/virtual/input/input3
U: Uniq=
H: Handlers=event3
B: EV=9
B: ABS=2000000I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="lightsensor-level"
P: Phys=
S: Sysfs=/devices/virtual/input/input4
U: Uniq=
H: Handlers=event4
B: EV=9
B: ABS=100 0I: Bus=0018 Vendor=0000 Product=0000 Version=0000
N: Name="compass"
P: Phys=
S: Sysfs=/devices/virtual/input/input5
U: Uniq=
H: Handlers=event5
B: EV=5
B: REL=3ff
获取上面的信息,表示从event0~event5六个device(Handles
设备名称				 说明					HANDLER
mxt224_ts_input			屏幕触摸输入(鼠标)			event0
Gyro					陀螺仪					event1
herring-keypad			键盘					event2
proximity				近距离感应器				event3
lightsensor-level		光感应器				event4
compass					定位仪					event5
注意:每台设备上的输入设备分布和名称都可能不一样
一般主要会用到鼠标 键盘 ,这里为event0和event2。

现在我们以鼠标事件举例:
我们先用getevent查看event0的事件信息:
adb shell getevent /dev/input/event0
然后在屏幕上点击或者滑动一下,可以得到如下打印:

0003 0035 0000008b
0003 0036 000002c0
0003 0030 00000044
0003 0032 00000004
0003 0039 00000000
0000 0002 00000000
0000 0000 00000000
0003 0035 0000008b
0003 0036 000002c0

这三组数字分别表示[type] [code] [value],与上面出现在adb shell sendevent [device] [type] [code] [value]
那么这些值表示什么意思呢,我们可以查看event0的内容,输入如下命令:

adb shell getevent -p /dev/input/event0

看到如下信息:

add device 1: /dev/input/event0
name: "mxt224_ts_input"
events:
SYN (0000): 0000 0003
ABS (0003): 0030 value 0, min 0, max 255, fuzz 0 flat 00032 value 0, min 0, max 30, fuzz 0 flat 00035 value 0, min 0, max 1023, fuzz 0 flat 00036 value 0, min 0, max 950, fuzz 0 flat 00039 value 0, min 0, max 4, fuzz 0 flat 0
这个依然有点晦涩,大意为:
type类型可能出现两种,分别是 0000 代表 SYN,0003 代表 ABS
ABS type下的code 类型可能出现若干种,包括 0030,0032,0035,0036,0039
这五种code的意义可以参见 /frameworks/base/include/ui/EventHub.h
#define ABS_MT_TOUCH_MAJOR 0x30 /* Major axis of touching ellipse */
#define ABS_MT_TOUCH_MINOR 0x31 /* Minor axis (omit if circular) */
#define ABS_MT_WIDTH_MAJOR 0x32 /* Major axis of approaching ellipse */
#define ABS_MT_WIDTH_MINOR 0x33 /* Minor axis (omit if circular) */
#define ABS_MT_ORIENTATION 0x34 /* Ellipse orientation */
#define ABS_MT_POSITION_X 0x35 /* Center X ellipse position */
#define ABS_MT_POSITION_Y 0x36 /* Center Y ellipse position */
#define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device (finger, pen, ...) */
#define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */
#define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */
#define ABS_MT_PRESSURE 0x3a /* Pressure on contact area */
可以参考android主页:http://source.android.com/devices/tech/input/touch-devices.html
因此刚刚getevent获取到的内容大致可以做如下翻译:
0003 0035 0000008b // x轴0x8b的位置
0003 0036 000002c0 // y轴0x2c0的位置
0003 0030 00000044 // 触摸椭圆的长轴为0x44
0003 0032 00000004 //
0003 0039 00000000 // Tracking ID为0
0000 0002 00000000 // SYN
0000 0000 00000000 // SYN
0003 0035 0000008b
0003 0036 000002c0
0003 0030 00000000 // 触摸椭圆的长轴为0(表示离开屏幕了)
0003 0032 00000001
0003 0039 00000000
0000 0002 00000000
0000 0000 00000000

PS:可以用下面的脚本获取event内容以及[type] [code] [value]值:
@echo off
set ADB=adb -d wait-for-device 
rem get the event number
::%ADB% root
::%ADB% remount
::%ADB% pull /proc/bus/input/devices 
echo "please press CTRL+C to save"
rem get the parameter
%ADB% shell getevent /dev/input/eventX > out.txt
%ADB% shell getevent -p /dev/input/eventX > event1.txt

了解了这些以后我们可以使用sendevent发送事件了:
adb shell sendevent [device] [type] [code] [value]
注意的 [type] [code] [value]值我们使用getevent看到的都是16进制的,sendevent的时候需要使用十进制的。
首先我们要获取到屏幕上的坐标值,运行上面的脚本,然后在屏幕上找个点按一下,save,ok在生成的out.txt中可以找到这个点的坐标值了(如果按下的时间比较久可能会获取大一串16进制数).
知道了坐标值,按照上面的举例我们可以写出在该点点击的命令了:
rem 在(1000,1538)处点击
adb shell sendevent /dev/input/event1 3 53 1000        
adb shell sendevent /dev/input/event1 3 54 1538    
adb shell sendevent /dev/input/event1 0 0 0
adb shell sendevent /dev/input/event1 3 58 50
adb shell sendevent /dev/input/event1 0 0 0
adb shell sendevent /dev/input/event1 3 58 0
adb shell sendevent /dev/input/event1 0 0 0
同理,滑动的脚本:
rem 从(540,1538)点滑动到(1000,1538)点
@echo off
set ADB=adb -d wait-for-device 
%ADB% shell sendevent /dev/input/event1 3 47 1
%ADB% shell sendevent /dev/input/event1 3 57 180 
adb shell sendevent /dev/input/event1 3 53 540        
adb shell sendevent /dev/input/event1 3 54 1538    
adb shell sendevent /dev/input/event1 0 0 0
adb shell sendevent /dev/input/event1 3 58 50          //在(540,1538)点按下
adb shell sendevent /dev/input/event1 0 0 0
adb shell sendevent /dev/input/event1 3 53 1000        
adb shell sendevent /dev/input/event1 3 54 1538    
adb shell sendevent /dev/input/event1 0 0 0
adb shell sendevent /dev/input/event1 3 58 50          //滑动到(1000,1538)点
adb shell sendevent /dev/input/event1 0 0 0
adb shell sendevent /dev/input/event1 3 58 0              //松开
adb shell sendevent /dev/input/event1 0 0 0


http://www.yayakq.cn/news/714120/

相关文章:

  • 视频网站怎么做统计东莞洪梅网站建设
  • 公司想制作网站济南网站建设平台官网
  • 专业做酒的网站有哪些免费网站建
  • 苏州企业网站制作开发网站站长是什么
  • wordpress查询插件seo网站优化建议
  • 广州led网站建设网站关键词调整 收录
  • 泛微e8做网站门户智慧团建管理系统
  • php 微信 网站开发中学网站建设方案计划
  • 如何制作自己的网站的邮箱注册企业邮箱需要什么
  • 如何用自己公司网站做邮箱ih5平台发展前景
  • 做网站想要中立网站开发费用预算
  • 营销软件网站wordpress十大主题
  • 网站自动识别移动终端wordpress now 1.5
  • 软件下载网站如何建设门户网站系统源码
  • 设计营销型网站域名长沙建站seo公司
  • 报名窗口网站建设专业网站定制团队
  • 二建证从住房建设厅网站调出流程wordpress 扒站
  • 漳州市住房与城乡建设部网站wordpress 分类目录 层级
  • 如何做视频网站旗下账号做门户网站 公司营业范围是啥
  • 网站建设课设报告wordpress网站收录插件
  • 吉林公路建设有限公司网站百度重庆营销中心
  • 平度市建设局网站深圳最近一个星期新闻
  • 微网站怎么注册天河区网站建设
  • iis网站服务器安全隐患wordpress html结尾
  • 豫icp郑州网站建设企业为什么要开发网址
  • 网页网站制作公司网站限时抢购怎么做
  • 网站活动打造深圳建设监理协会网站
  • 潍坊市做网站的公司企业网站制作免费下载
  • 局域网网站开发企业网站源码 php
  • 厦门免费网站建设图形化html编辑器