• Android adb input 命令介绍


    input命令是用来向设备发送模拟操作的命令: 
    因为版本不同,input命令也有所不同 
    以下为Android 4.0的input命令:

    usage:input text <string>
          input keyevent <key code number or name>
          input tap <x> <y>
          input swipe <x1> <y1> <x2> <y2>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    以下是Android 4.4+的input命令:

    usage: input ...
           input text <string>
           input keyevent <key code number or name>
           input [touchscreen|touchpad|touchnavigation] tap <x> <y>
           input [touchscreen|touchpad|touchnavigation] swipe <x1> <y1> <x2> <y2> [duration(ms)]
           input trackball press
           input trackball roll <dx> <dy>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    明显两个版本的input命令是有差异的,在使用的时候一定要记得查询清楚所使用的Android版本!


    1、input text 
    该命令主要是用于向获得焦点的EditText控件输入内容!

    adb shell input text "hello,world"
    • 1

    该方法只能对EditText输入AscII码的字符,对于UTF-8的字符是无法输入的!(汉字是不要想用这个命令输入的) 
    关于某些程序希望实现到类似于按键精灵功能自动向文本框输入汉字的功能,可以使用一个比较取巧的办法。 
    可以到github上参考https://github.com/senzhk/ADBKeyBoard~~(不要问我是怎么知道的T_T)

    2、input keyevent 
    该命令主要是向系统发送一个按键指令,实现模拟用户在键盘上的按键动作。

    adb shell input keyevent 4
    or
    adb shell input keyevent "KEYCODE_BACK"
    • 1
    • 2
    • 3

    下面附一个从网上扒到的 按键code 与 按键名的对应关系表

    0 –> “KEYCODE_UNKNOWN” 
    1 –> “KEYCODE_MENU” 
    2 –> “KEYCODE_SOFT_RIGHT” 
    3 –> “KEYCODE_HOME” 
    4 –> “KEYCODE_BACK” 
    5 –> “KEYCODE_CALL” 
    6 –> “KEYCODE_ENDCALL” 
    7 –> “KEYCODE_0” 
    8 –> “KEYCODE_1” 
    9 –> “KEYCODE_2” 
    10 –> “KEYCODE_3” 
    11 –> “KEYCODE_4” 
    12 –> “KEYCODE_5” 
    13 –> “KEYCODE_6” 
    14 –> “KEYCODE_7” 
    15 –> “KEYCODE_8” 
    16 –> “KEYCODE_9” 
    17 –> “KEYCODE_STAR” 
    18 –> “KEYCODE_POUND” 
    19 –> “KEYCODE_DPAD_UP” 
    20 –> “KEYCODE_DPAD_DOWN” 
    21 –> “KEYCODE_DPAD_LEFT” 
    22 –> “KEYCODE_DPAD_RIGHT” 
    23 –> “KEYCODE_DPAD_CENTER” 
    24 –> “KEYCODE_VOLUME_UP” 
    25 –> “KEYCODE_VOLUME_DOWN” 
    26 –> “KEYCODE_POWER” 
    27 –> “KEYCODE_CAMERA” 
    28 –> “KEYCODE_CLEAR” 
    29 –> “KEYCODE_A” 
    30 –> “KEYCODE_B” 
    31 –> “KEYCODE_C” 
    32 –> “KEYCODE_D” 
    33 –> “KEYCODE_E” 
    34 –> “KEYCODE_F” 
    35 –> “KEYCODE_G” 
    36 –> “KEYCODE_H” 
    37 –> “KEYCODE_I” 
    38 –> “KEYCODE_J” 
    39 –> “KEYCODE_K” 
    40 –> “KEYCODE_L” 
    41 –> “KEYCODE_M” 
    42 –> “KEYCODE_N” 
    43 –> “KEYCODE_O” 
    44 –> “KEYCODE_P” 
    45 –> “KEYCODE_Q” 
    46 –> “KEYCODE_R” 
    47 –> “KEYCODE_S” 
    48 –> “KEYCODE_T” 
    49 –> “KEYCODE_U” 
    50 –> “KEYCODE_V” 
    51 –> “KEYCODE_W” 
    52 –> “KEYCODE_X” 
    53 –> “KEYCODE_Y” 
    54 –> “KEYCODE_Z” 
    55 –> “KEYCODE_COMMA” 
    56 –> “KEYCODE_PERIOD” 
    57 –> “KEYCODE_ALT_LEFT” 
    58 –> “KEYCODE_ALT_RIGHT” 
    59 –> “KEYCODE_SHIFT_LEFT” 
    60 –> “KEYCODE_SHIFT_RIGHT” 
    61 –> “KEYCODE_TAB” 
    62 –> “KEYCODE_SPACE” 
    63 –> “KEYCODE_SYM” 
    64 –> “KEYCODE_EXPLORER” 
    65 –> “KEYCODE_ENVELOPE” 
    66 –> “KEYCODE_ENTER” 
    67 –> “KEYCODE_DEL” 
    68 –> “KEYCODE_GRAVE” 
    69 –> “KEYCODE_MINUS” 
    70 –> “KEYCODE_EQUALS” 
    71 –> “KEYCODE_LEFT_BRACKET” 
    72 –> “KEYCODE_RIGHT_BRACKET” 
    73 –> “KEYCODE_BACKSLASH” 
    74 –> “KEYCODE_SEMICOLON” 
    75 –> “KEYCODE_APOSTROPHE” 
    76 –> “KEYCODE_SLASH” 
    77 –> “KEYCODE_AT” 
    78 –> “KEYCODE_NUM” 
    79 –> “KEYCODE_HEADSETHOOK” 
    80 –> “KEYCODE_FOCUS” 
    81 –> “KEYCODE_PLUS” 
    82 –> “KEYCODE_MENU” 
    83 –> “KEYCODE_NOTIFICATION” 
    84 –> “KEYCODE_SEARCH” 
    85 –> “TAG_LAST_KEYCODE” 
    感谢http://blog.csdn.net/yicao821/article/details/7327953 博主提供!!666666666……

    3、input [touchscreen|touchpad|touchnavigation] tap 
    该命令是用于向设备[屏幕、触摸板、导航键]发送一个点击操作的指令。参数是X Y。一般设备都是屏幕……

    adb shell input tap 100 100 
    • 1

    屏幕位置坐标的拾取,可以打开 设置-开发者选项-指针位置开关!打开之后就会有拾取的功能了哦!

    4、input [touchscreen|touchpad|touchnavigation] swipe [duration(ms)] 
    向设备发送一个滑动的指令,并且可以选择设置滑动的时长。 
    这个指令乍一看不就是个滑动嘛……233333……其实还有一个特殊的操作,长按。 
    这个指令在4.4+的机器上,可以实现长按的哦!

    //滑动
    adb shell input swipe 100 100 200 200 300 //从 100 100 经历300毫秒滑动到 200 200 
    //长按
    adb shell input swipe 100 100 100 100 1000 //在 100 100 位置长按 1000毫秒
    • 1
    • 2
    • 3
    • 4

    看,这次就明白了,长按就是一种特殊的滑动,即位置不变的滑动哦!

    5、input trackball press 
    这个命令是模拟轨迹球发送点击命令 
    因为现在手机设备上没有轨迹球,然并卵……

    6、input trackball roll 
    这个命令是模拟轨迹球发送滚动命令 
    同样,然并卵……

  • 相关阅读:
    [java]转:String Date Calendar之间的转换
    ExtJs在页面上window再调用Window的事件处理
    java oracle clob string 大字符串存储【转】
    解决linux系统启动之:unexpected inconsistency:RUN fsck
    线程封闭之栈封闭和ThreadLocal
    Java线程状态和关闭线程的正确姿势
    指令重排序和内存屏障
    浅谈Java内存模型以及交互
    Redis分布式锁的一点小理解
    使用原生Ajax进行用户名重复的检验
  • 原文地址:https://www.cnblogs.com/hdk1993/p/8428749.html
Copyright © 2020-2023  润新知