简单命令:

adb shell monkey -f /sdcard/Music/monkey.csh -v 1

一.monkey测试命令有哪些选项?



1:常用选项

--help:打印帮助信息
-v:指定打印信息的详细级别,一个 -v增加一个级别 , 默认级别为 0 。-v -v -v 为最详细日志。

2:时间选项

-s:指定产生随机事件种子值,相同的种子值产生相同的事件序列。如: -s 200
--throttle:每个事件结束后的间隔时间——降低系统的压力(如不指定,系统会尽快的发送事件序列)。如:--throttle 100
--pct-touch:指定触摸事件的百分比,如:--pct-touch 5% , 相关的还有以下option:
--pct-motion <percent> (滑动事件)--pct-trackball <percent> (轨迹球事件)
--pct-nav <percent> (导航事件 up/down/left/right)
--pct-majornav <percent> (主要导航事件 back key 、 menu key)
--pct-syskeys <percent> (系统按键事件 Home 、Back 、startCall 、 endCall 、 volumeControl)
--pct-appswitch <percent> (activity之间的切换)
--pct-anyevent <percent>(任意事件)
3:约束选项
-p:指定有效的package(如不指定,则对系统中所有package有效),一个-p 对应一个有效package, 如:-p com.ckt -p com.ckt.asura;
-c:activity必须至少包含一个指定的category,才能被启动,否则启动不了;
4:调试选项
--dbg-no-events:初始化启动的activity,但是不产生任何事件。
--hprof:指定该项后在事件序列发送前后会立即生成分析报告  —— 一般建议指定该项。
--ignore-crashes:忽略崩溃
--ignore-timeouts:忽略超时
--ignore-security-exceptions:忽略安全异常
--kill-process-after-error:发生错误后直接杀掉进程
--monitor-native-crashes:跟踪本地方法的崩溃问题
--wait-dbg:知道连接了调试器才执行monkey测试。二.一个完整的monkey语句?
 
adb shell monkey -p your.package.name --pct-touch 30 --ignore-crashes  --ignore-timeouts--throttle 250 -s 2
 
触摸事件占30%,忽略crash和超时,每个事件间隔250ms,输出最详细日志,执行500万次
 
三.如何保存不连着电脑跑monkey?
 
1.输入命令进入shell环境:adb shell
 
2.输入monkey语句执行:monkey –p com.android.mms –s 100 --throttle 1000 –v –v –v 15000 > /mnt/sdcard/monkey_test.txt&
 
四.如何跑多个apk的monkey?
黑名单:执行除了黑名单中以外的apk;白名单:只执行在白名单中的apk。
黑名单的设置方法:
a.创建一个名称为blacklist的txt文档,在文件中输入应用程序的包名,如mms应用,则在文件中输入com.Android.mms;如果有多个应用程序不想被执行,则在文件中添加多个包名,注意包名与包名之间均用回车键。
b.将blacklist.txt的文件导入到手机的/data目录下,然后在执行monkey测试的时候使用--pkg-blacklist-file参数再加上blacklist文件的存储路径,其他的参数设置则和测试单一apk没有区别。
白名单的设置方法:
白名单的设置方法和黑名单的设置方法基本一致,只是在创建txt文档的时候,文件的命令应为whitelist。在执行monkey的时候,只执行白名单中的应用。例子:
monkey –pkg-blacklist-file /data/blacklist.txt -c <options> -s <seed> <限制语句> --throttle <milliseconds> -v 执行次数> C:\blacklist_test.txt //执行黑名单以外的应用
monkey –pkg-whitelist-file /data/whitelist.txt -c <options> -s <seed> <限制语句> --throttle <milliseconds> -v 执行次数 > C:\whitelist_test.txt //执行白名单的应用五.如何关闭mokey?
 
1. ps命令查找uiautomator的进程
cmd命令行窗口输入:adb shell ps | grep monkey
返回来的第一个数字,即是monkey的进程号
 2.kill 命令结束进程 
继续输入: adb shell kill [刚才查到的进程号]
 
六.如何分析monkey日志?
 
 1、 ANR问题:在日志中搜索“ANR”
2、 崩溃问题:在日志中搜索“Exception”
 
3、搜索"crash" 、"error"


七.如何重现BUG?

1、 找到是monkey里面的哪个地方出错

2、 查看Monkey里面出错前的一些事件动作,并手动执行该动作

3、 若以上步骤还不能找出,可以使用之前执行的monkey命令再执行一遍,注意seed值要一样


八.monke的测试策略?


单个apk的验收测试时,使用单一apk且不忽略异常的命令执行

单个apk的解决问题的测试时,使用单一apk且忽略异常的命令执行。这样可以在一次执行的过程中发现应用程序中的多个问题。

单个apk的应用程序的压力/健壮性测试时,主要缩短monkey测试中事件与事件之间的延迟时间,验证在快速的事件响应的过程中,程序是否能正常运行。将--throttle的值设定为500或者更小,一般都使用500毫秒的延迟事件。

在进行apk的集合测试(测试对象为多个APP,手机测试?)时,对于高频率使用的apk、长时间使用的apk都要包含在执行的应用程序中间。

APK分类具体:

高频率使用的apk如:Phone、Contacts、Message、Settings、File Manager、Gallery、Input Method

长时间使用的apk如:Phone、Browser、Music player、Camera、Video player、Email、Chat

其他的apk如:Calendar、Notepad、Calculator、FM Radio、Google



一、什么是Monkey

Monkey是Android自身提供的,可以通过adb shell模拟用户行为,发送一些伪随机用户事件到目标设备上。

Monkey和它的直接意思一样,可以像一个猴子一样,疯狂的输入各种随机事件到设备上,像是一个猴子在疯狂的点击设备。

既然Monkey有这样的功能,我们就可以利用它来对Android App做压力测试,可以在规定的范围内,任意随机触发各种事件,来验证App的抗压性和稳定性。这些随机事件包括:点击屏幕、滑动屏幕、各种无力按键等。

二、简单的使用Monkey

Monkey主要是借助adb命令来让PC与Android设备连接,adb是一种Android调试工具,在PC上配置好环境即可使用。

Monkey使用起来非常的简单,基本命令如下:

adb shell monkey <event-count>这样直接在Terminal中输入,就会像设备上发送指定的事件数的事件。但是在Terminal中不会有任何输出,如果需要有输出,可以加上-v参数。-v表示输出的Log级别,-v最低,-v -v -v最高。adb shell monkey -v <event-count>


上面的命令表示向设备输入100个随机事件,如果正确输出,可以在设备上看到各种点击效果一闪而过。

但是这种随机的输入其实也是没什么作用的,通常我们会需要制定在某一个App内做随机事件。那么,可以再增加-p参数,完整命令如下:Adb shell monkey -p com.mipay.wallet -v <event-count>更多其他高级的命令,可以通过adb shell monkey -h进行查看。


三、Monkey的高级用法

1、设置事件间隔

上面给出的例子,基本上100次点击会在瞬间被完成,肉眼可能可以感受到被点击,但是无法明显的感觉到有那么多次。所以设定每次事件的间隔时常,是有必要的。为Monkey设定事件的间隔,使用--throttle参数。adb shell monkey --throttle <milliseconds>

2、复现随机点击的事件

Monkey虽然是随机点击的,但是我们主要是用它来做压力测试。所以如果在碰到崩溃的时候,可以通过一种方式,重复之前的随机事件,再来一次,看看崩溃的问题。Monkey也提供了这样的参数 -sadb shell monkey -s <seed> <event-count>


可以看到,在每次执行完Monkey之后,从输出里可以看到当前的seed值,只要通过-s参数指定相同的seed,就可以重复刚才的操作。

例如如果需要重复上面的操作,就需要在Terminal中输入:

adb shell monkey -s 1487572980979 -v 1000

3、忽略崩溃

正常来说,如果在Monkey执行的阶段,出现了崩溃,会立即停止接下去的执行。但是有时候,我们在执行Monkey的时候,是在无人员干涉的情况下,例如想要它执行一夜,等等情况。那么如果出现崩溃就停止执行,明显不是我们需要的。在Monkey中,可以通过—ignore-crashes来忽略掉异常崩溃。adb shell monkey —ignore-crashes <event-count>如果用此参数忽略了崩溃,在发生崩溃的时候,会继续指定,表现是又从新开始执行Monkey了,而同时,用-s设定的seed值将不会生效。

4、忽略ANR

ANR是Android的一个错误,在页面无法响应事件的时候会报出来。一般遇到这样的情况,表示当前有耗时操作在UI线程指定,导致卡UI了。

在Monkey中,如果遇上ANR,同样会停止继续执行。如果想要忽略ANR,让其触发的时候依然执行下去,可以使用—ignore-timeouts参数。adb shell monkey —ignore-timeouts <event-count>同样它也会导致-s失效。

四、指定Monkey事件

在Monkey中,虽然输入的事件是随机产生的,但是可以指定输入事件类型的百分比,让其控制在我们需要的范围内。

在Monkey中,可以设定的事件类型有:

--pct-touch <percent>

  • :指定触摸事件的百分比。

--pct-motion <percent>

  • :指定滑动事件的百分比。

--pct-trackball <percent>

  • :指定轨迹球事件的百分比。

--pct-nav <percent>

  • :指定导航事件中,up、down、left、right等事件的百分比。

--pct-majornav <percent>

  • :指定导航事件中,back、menu等事件的百分比。

--pct-syskeys <percent>

  • :指定系统按键的百分比,包括HOME、Back、音量等。

--pct-appswitch <percent>

  • :指定Activity之间切换的比例。

--pct-anyevent <percent>

  • :指定任意事件的百分比。

默认情况下,如果不设置,会是--pct-anyevent为百分之百,也就是纯随机事件。如果通过其他的参数配置了之后,如果相加的百分比不为百分百,余下的百分比部分也会生成随机事件。

从Monkey的输出Log中,可以看出指定事件的百分比。


例如这里输入触摸事件为百分百,Event percentages的0表示的就是触摸事件,为100%。

五、举个栗子

到这里基本上就介绍为Monkey中一些主要的参数含义了,更多的可以通过-h查看帮助文档。

基本上配置事件百分比,有一些事件已经随着Android发展被消失掉了,例如轨迹球,在现在主流的设备上,已经基本上看不见轨迹球的影子了。

那么就本文介绍的一些命令,简单配置一个可以直接使用的例子:

adb shell monkey -p com.miui.cal —throttle 100 —-ignore-crashes —-ignore-timeouts --pct-touch 50 --pct-majornav 10 --pct-syskeys 20 --pct-appswitch 20 -v 1000 > ./monket_log.txt

脚本编写:


1. /**
2.  * monkey event queue. It takes a script to produce events
3.  * 
4.  * sample script format:
5.  *      type= raw events
6.  *      count= 10
7.  *      speed= 1.0
8.  *      start data >>
9.  *      captureDispatchPointer(5109520,5109520,0,230.75429,458.1814,0.20784314,
10.  *          0.06666667,0,0.0,0.0,65539,0)
11.  *      captureDispatchKey(5113146,5113146,0,20,0,0,0,0)
12.  *      captureDispatchFlip(true)
13.  *      ...
14.  */ 
DispatchPointer(downTime, eventTime,action, x, y, pressure, size, metaState, xPrecision, yPrecision,device, edgeFlags);  
其中action=0时为按下,action=1时为移动,action=2时为抬起,action=3时为取消。x、y为坐标点。pressure为压力值类型为float,size为点击范围大小类型为float。device为deviceID。
1. 以下可以代表点击:
2. captureDispatchPointer(0,0,0,524,390,0,0,0,0,0,0,0)
 captureDispatchPointer(0,0,1,524,390,0,0,0,0,0,0,0)3. 以下可以代表滑动:手机反映快不起作用可以做设置几轮
4. captureDispatchPointer(0,0,0,524,390,0,0,0,0,0,0,0)
 captureDispatchPointer(0,0,2,524,690,0,0,0,0,0,0,0)5.  <MonkeyScript>
 MonkeyScript是monkey的脚本语言,是一组可以被Monkey识别的命令集合,可以帮我们完成一系列的被固定的重复性操作。
 脚本优势:简单、快捷、不需要借助任何工具,只是运行一个脚本文件
 脚本缺点:只能简单实现坐标、按键等基本操作(根据像素点来进行操作)6. 
     2 
    
   
 <脚本格式>
 #头文件、控制monkey发送消息的参数
 type=raw events
 count=10
 speed=1.0
 #以下为monkey命令
 start data >>
 LaunchActivity(pkg_name,activity)
 DispatchPress(KEYCODE_ENTER)
 DispatchPress(KEYCODE_HOME)
 ---->前三行是脚本头。count为脚本中包含的指令数目。speed为执行速度。
 ---->start data >>后面是执行的命令。7. 
     3 
    
   
 <常见API>
 LaunchActivity(pkg_name, cl_name): 启动应用的Activity。参数:包名和启动的Activity。
  
 Tap(x, y, tapDuration): 模拟一次手指单击事件。参数:x,y为控件坐标,tapDuration为点击的持续时间,此参数可省略。
  
 DispatchPress(keyName): 按键。注:keyName值可以百度android keycode列表获取
  
 RotateScreen(rotationDegree, persist): 旋转屏幕。 参数:rotationDegree为旋转角度, e.g. 1代表90度;persist表示旋转之后是否固定,0表示旋转后恢复,非0则表示固定不变。
  
 DispatchFlip(true/false): 打开或者关闭软键盘。
  
 LongPress():  长按2秒。
  
 PressAndHold(x, y, pressDuration):  模拟长按事件。
  
 DispatchString(input):  输入字符串。
  
 Drag(xStart, yStart, xEnd, yEnd, stepCount):  用于模拟一个拖拽操作。
  
 PinchZoom(x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End, stepCount): 模拟缩放手势。
  
 UserWait(sleepTime): 休眠一段时间
  
 DeviceWakeUp(): 唤醒屏幕。
  
 ProfileWait: 等待5秒。
  
 ---->在android sdk路径-tools下,使用sdk中的工具hierarchyviewer.bat或者uiautomatorviewer.bat,获取API方法中控件位置(X,Y轴的坐标)。  
 
   

      ------》或者打开手机开发者模式里面的TP画线功能 
    8. 
     4 
    
   
 <脚本举例>
 要求:打开浏览器,输入www.baidu.com, 退出浏览器。这个步骤进行重复压力测试。9. 
     5 
    
   
 ---->脚本文件browser.txt编写内容如下:
 #头文件、控制monkey发送消息的参数
 type=raw events
 count=10
 speed=1.0
 #以下为脚本正文
 start data >>
 #1.打开浏览器
 LaunchActivity(com.android.browser,com.android.browser.BrowserActivity)
 ProfileWait()
 #2.清空网址
 Tap(223,146)
 ProfileWait()
 DispatchPress(112)
 ProfileWait()
 #3.输入网址
 DispatchString(www.baidu.com)
 ProfileWait()
 #4.确认,载入网址
 DispatchPress(KEYCODE_ENTER)
 ProfileWait()
 #5.完成退出浏览器
 DispatchPress(KEYCODE_HOME)
 ProfileWait()10. 
     6 
    
   
 ---->将browser.txt文件push到手机中
 adb push D:\browser.txt data/local/tmp
 D:\browser.txt 为本地脚本文件路径及名称,data/local/tmp为手机路径
  
 ---->运行脚本
 adb shell monkey -f data/local/tmp/browser.txt -v -v 20011. 
     7 
    
   
 <日志查看补充>
 ---->先把日志输出到本地
 ---->注意观察switch后面的内容,一般错误都会显示在这个后面
 ---->ANR问题:日志中搜索ANR关键字
 ---->奔溃问题:在日志中搜索Exception问题


KEYCODE列表

电话键



 

KEYCODE_CALL

拨号键

5

KEYCODE_ENDCALL

挂机键

6

KEYCODE_HOME

按键Home

3

KEYCODE_MENU

菜单

82

KEYCODE_BACK

返回键

4

KEYCODE_SEARCH

搜索

84

KEYCODE_CAMERA

拍照键

27

KEYCODE_FOCUS

拍照对焦键

80

KEYCODE_POWER

电源键

26

KEYCODE_NOTIFICATION

通知键

83

KEYCODE_MUTE

话筒静音键

91

KEYCODE_VOLUME_MUTE

扬声器静音键

164

KEYCODE_VOLUME_UP

音量增加键

24

KEYCODE_VOLUME_DOWN

音量减小键

25


控制键



 

KEYCODE_ENTER

回车键

66

KEYCODE_ESCAPE

ESC键

111

KEYCODE_DPAD_CENTER

导航键 确定键

23

KEYCODE_DPAD_UP

导航键 向上

19

KEYCODE_DPAD_DOWN

导航键 向下

20

KEYCODE_DPAD_LEFT

导航键 向左

21

KEYCODE_DPAD_RIGHT

导航键 向右

22

KEYCODE_MOVE_HOME

光标移动到开始键

122

KEYCODE_MOVE_END

光标移动到末尾键

123

KEYCODE_PAGE_UP

向上翻页键

92

KEYCODE_PAGE_DOWN

向下翻页键

93

KEYCODE_DEL

退格键

67

KEYCODE_FORWARD_DEL

删除键

112

KEYCODE_INSERT

插入键

124

KEYCODE_TAB

Tab键

61

KEYCODE_NUM_LOCK

小键盘锁

143

KEYCODE_CAPS_LOCK

大写锁定键

115

KEYCODE_BREAK

Break/Pause键

121

KEYCODE_SCROLL_LOCK

滚动锁定键

116

KEYCODE_ZOOM_IN

放大键

168

KEYCODE_ZOOM_OUT

缩小键

169


组合键




 

KEYCODE_ALT_LEFT

Alt+Left

KEYCODE_ALT_RIGHT

Alt+Right

KEYCODE_CTRL_LEFT

Control+Left

KEYCODE_CTRL_RIGHT

Control+Right

KEYCODE_SHIFT_LEFT

Shift+Left

KEYCODE_SHIFT_RIGHT

Shift+Right


基本


 

KEYCODE_0

按键'0'

7

KEYCODE_1

按键'1'

8

KEYCODE_2

按键'2'

9

KEYCODE_3

按键'3'

10

KEYCODE_4

按键'4'

11

KEYCODE_5

按键'5'

12

KEYCODE_6

按键'6'

13

KEYCODE_7

按键'7'

14

KEYCODE_8

按键'8'

15

KEYCODE_9

按键'9'

16

KEYCODE_A

按键'A'

29

KEYCODE_B

按键'B'

30

KEYCODE_C

按键'C'

31

KEYCODE_D

按键'D'

32

KEYCODE_E

按键'E'

33

KEYCODE_F

按键'F'

34

KEYCODE_G

按键'G'

35

KEYCODE_H

按键'H'

36

KEYCODE_I

按键'I'

37

KEYCODE_J

按键'J'

38

KEYCODE_K

按键'K'

39

KEYCODE_L

按键'L'

40

KEYCODE_M

按键'M'

41

KEYCODE_N

按键'N'

42

KEYCODE_O

按键'O'

43

KEYCODE_P

按键'P'

44

KEYCODE_Q

按键'Q'

45

KEYCODE_R

按键'R'

46

KEYCODE_S

按键'S'

47

KEYCODE_T

按键'T'

48

KEYCODE_U

按键'U'

49

KEYCODE_V

按键'V'

50

KEYCODE_W

按键'W'

51

KEYCODE_X

按键'X'

52

KEYCODE_Y

按键'Y'

53

KEYCODE_Z

按键'Z'

54


符号




 

KEYCODE_PLUS

按键'+'

KEYCODE_MINUS

按键'-'

KEYCODE_STAR

按键'*'

KEYCODE_SLASH

按键'/'

KEYCODE_EQUALS

按键'='

KEYCODE_AT

按键'@'

KEYCODE_POUND

按键'#'

KEYCODE_APOSTROPHE

按键''' (单引号)

KEYCODE_BACKSLASH

按键'\'

KEYCODE_COMMA

按键','

KEYCODE_PERIOD

按键'.'

KEYCODE_LEFT_BRACKET

按键'['

KEYCODE_RIGHT_BRACKET

按键']'

KEYCODE_SEMICOLON

按键';'

KEYCODE_GRAVE

按键'`'

KEYCODE_SPACE

空格键


小键盘




 

KEYCODE_NUMPAD_0

小键盘按键'0'

KEYCODE_NUMPAD_1

小键盘按键'1'

KEYCODE_NUMPAD_2

小键盘按键'2'

KEYCODE_NUMPAD_3

小键盘按键'3'

KEYCODE_NUMPAD_4

小键盘按键'4'

KEYCODE_NUMPAD_5

小键盘按键'5'

KEYCODE_NUMPAD_6

小键盘按键'6'

KEYCODE_NUMPAD_7

小键盘按键'7'

KEYCODE_NUMPAD_8

小键盘按键'8'

KEYCODE_NUMPAD_9

小键盘按键'9'

KEYCODE_NUMPAD_ADD

小键盘按键'+'

KEYCODE_NUMPAD_SUBTRACT

小键盘按键'-'

KEYCODE_NUMPAD_MULTIPLY

小键盘按键'*'

KEYCODE_NUMPAD_DIVIDE

小键盘按键'/'

KEYCODE_NUMPAD_EQUALS

小键盘按键'='

KEYCODE_NUMPAD_COMMA

小键盘按键','

KEYCODE_NUMPAD_DOT

小键盘按键'.'

KEYCODE_NUMPAD_LEFT_PAREN

小键盘按键'('

KEYCODE_NUMPAD_RIGHT_PAREN

小键盘按键')'

KEYCODE_NUMPAD_ENTER

小键盘按键回车


功能键




 

KEYCODE_F1

按键F1

KEYCODE_F2

按键F2

KEYCODE_F3

按键F3

KEYCODE_F4

按键F4

KEYCODE_F5

按键F5

KEYCODE_F6

按键F6

KEYCODE_F7

按键F7

KEYCODE_F8

按键F8

KEYCODE_F9

按键F9

KEYCODE_F10

按键F10

KEYCODE_F11

按键F11

KEYCODE_F12

按键F12


多媒体键


 

KEYCODE_MEDIA_PLAY

多媒体键 播放

KEYCODE_MEDIA_STOP

多媒体键 停止

KEYCODE_MEDIA_PAUSE

多媒体键 暂停

KEYCODE_MEDIA_PLAY_PAUSE

多媒体键 播放/暂停

KEYCODE_MEDIA_FAST_FORWARD

多媒体键 快进

KEYCODE_MEDIA_REWIND

多媒体键 快退

KEYCODE_MEDIA_NEXT

多媒体键 下一首

KEYCODE_MEDIA_PREVIOUS

多媒体键 上一首

KEYCODE_MEDIA_CLOSE

多媒体键 关闭

KEYCODE_MEDIA_EJECT

多媒体键 弹出

KEYCODE_MEDIA_RECORD

多媒体键 录音


手柄按键




 

KEYCODE_BUTTON_1

通用游戏手柄按钮#1

KEYCODE_BUTTON_2

通用游戏手柄按钮 #2

KEYCODE_BUTTON_3

通用游戏手柄按钮 #3

KEYCODE_BUTTON_4

通用游戏手柄按钮 #4

KEYCODE_BUTTON_5

通用游戏手柄按钮 #5

KEYCODE_BUTTON_6

通用游戏手柄按钮 #6

KEYCODE_BUTTON_7

通用游戏手柄按钮 #7

KEYCODE_BUTTON_8

通用游戏手柄按钮 #8

KEYCODE_BUTTON_9

通用游戏手柄按钮 #9

KEYCODE_BUTTON_10

通用游戏手柄按钮 #10

KEYCODE_BUTTON_11

通用游戏手柄按钮 #11

KEYCODE_BUTTON_12

通用游戏手柄按钮 #12

KEYCODE_BUTTON_13

通用游戏手柄按钮 #13

KEYCODE_BUTTON_14

通用游戏手柄按钮 #14

KEYCODE_BUTTON_15

通用游戏手柄按钮 #15

KEYCODE_BUTTON_16

通用游戏手柄按钮 #16

KEYCODE_BUTTON_A

游戏手柄按钮 A

KEYCODE_BUTTON_B

游戏手柄按钮 B

KEYCODE_BUTTON_C

游戏手柄按钮 C

KEYCODE_BUTTON_X

游戏手柄按钮 X

KEYCODE_BUTTON_Y

游戏手柄按钮 Y

KEYCODE_BUTTON_Z

游戏手柄按钮 Z

KEYCODE_BUTTON_L1

游戏手柄按钮 L1

KEYCODE_BUTTON_L2

游戏手柄按钮 L2

KEYCODE_BUTTON_R1

游戏手柄按钮 R1

KEYCODE_BUTTON_R2

游戏手柄按钮 R2

KEYCODE_BUTTON_MODE

游戏手柄按钮 Mode

KEYCODE_BUTTON_SELECT

游戏手柄按钮 Select

KEYCODE_BUTTON_START

游戏手柄按钮 Start

KEYCODE_BUTTON_THUMBL

Left Thumb Button

KEYCODE_BUTTON_THUMBR

Right Thumb Button


待查



 

KEYCODE_NUM

按键Number modifier

KEYCODE_INFO

按键Info

KEYCODE_APP_SWITCH

按键App switch

KEYCODE_BOOKMARK

按键Bookmark

KEYCODE_AVR_INPUT

按键A/V Receiver input

KEYCODE_AVR_POWER

按键A/V Receiver power

KEYCODE_CAPTIONS

按键Toggle captions

KEYCODE_CHANNEL_DOWN

按键Channel down

KEYCODE_CHANNEL_UP

按键Channel up

KEYCODE_CLEAR

按键Clear

KEYCODE_DVR

按键DVR

KEYCODE_ENVELOPE

按键Envelope special function

KEYCODE_EXPLORER

按键Explorer special function

KEYCODE_FORWARD

按键Forward

KEYCODE_FORWARD_DEL

按键Forward Delete

KEYCODE_FUNCTION

按键Function modifier

KEYCODE_GUIDE

按键Guide

KEYCODE_HEADSETHOOK

按键Headset Hook

KEYCODE_META_LEFT

按键Left Meta modifier

KEYCODE_META_RIGHT

按键Right Meta modifier

KEYCODE_PICTSYMBOLS

按键Picture Symbols modifier

KEYCODE_PROG_BLUE

按键Blue “programmable”

KEYCODE_PROG_GREEN

按键Green “programmable”

KEYCODE_PROG_RED

按键Red “programmable”

KEYCODE_PROG_YELLOW

按键Yellow “programmable”

KEYCODE_SETTINGS

按键Settings

KEYCODE_SOFT_LEFT

按键Soft Left

KEYCODE_SOFT_RIGHT

按键Soft Right

KEYCODE_STB_INPUT

按键Set-top-box input

KEYCODE_STB_POWER

按键Set-top-box power

KEYCODE_SWITCH_CHARSET

按键Switch Charset modifier

KEYCODE_SYM

按键Symbol modifier

KEYCODE_SYSRQ

按键System Request / Print Screen

KEYCODE_TV

按键TV

KEYCODE_TV_INPUT

按键TV input

KEYCODE_TV_POWER

按键TV power

KEYCODE_WINDOW

按键Window

KEYCODE_UNKNOWN

未知按键