本文转载自:http://blog.csdn.net/yuanzihui/article/details/52871652

常用的 input上报命令: 
input text 1234 实际向界面注入1234文字,有输入框,能明显看到效果 
input keyevent 4 键盘事件,4 为返回 
input tap 100 300 单击触屏事件 ,模拟点击x=100 y = 300 位置 
input swipe 100 300 500 300 触屏滑动事件,模拟滑动,从x =100 
y = 300 滑动到x=500 y=300位置 
input press 模拟按下轨迹球 
input roll 100 300 模拟轨迹球滑动 x 方向100 y方向300

获取坐标方法: 
第一步:计算比例

adb shell getevent -p | grep -e “0035” -e “0036” 
获得event 体系里 宽(0035)和高(0036)

以当前我使用的手机为例,命令会输出如下信息: 
0035 : value 0, min 0, max 1602, fuzz 0, flat 0, resolution 0 
0036 : value 0, min 0, max 2503, fuzz 0, flat 0, resolution 0

0035(宽) max 1602 
0036(高) max 2503

计算比例(用已知的屏幕分辨率,如1080p即:1080(宽) * 1920(高)): 
rateW = 1080(手机屏幕的宽) / 1602(event里0035的max) = 0.674 
rateH = 1920(手机屏幕的高) / 2503(event里0036的max) = 0.767

第二步:点击屏幕计算点击位置的坐标 
adb shell getevent | grep -e “0035” -e “0036” 
点击屏幕上需要的位置,会有如下输出: 
/dev/input/event0: 0003 0035 00000341 
/dev/input/event0: 0003 0036 000008ec

把0035和0036后面的位置数据从16进制转化为10进制 
width = 0x341 = 3*16*16 + 4*16 + 1 = 833 
height = 0x8ec = 8*16*16 + 14*16 + 12 = 2284 
这是在event体系里的位置,将其转化为屏幕位置 
screenW = width*rateW = 833*0.674 = 561 
screenH = height*rateH = 2284*0.767 = 1751

终于算出来了 
刚刚点击的屏幕位置坐标就是(561, 1751)

[Android]通过adb shell input上报命令模拟屏幕点击事件【转】的更多相关文章

  1. android adb shell input各种妙用

    项目中使用一个开发版,预留两个usb接口.类似华硕TinkerBoard. 一个用户连接摄像头,一个用于adb调试.结果就没了鼠标的接口.多次切换鼠标和摄像头插头,非常不方便,带摄像头的app没法调试 ...

  2. Android模拟屏幕点击input tap替代解决方案

    动机解释 本来直接使用 adb shell -> input 即可模拟 键盘事件,触屏事件keyevent ,text,tap 但是手上的这台目标Android机4.0.3系统的input只支持 ...

  3. 我的Android进阶之旅------>Android中通过adb shell input来模拟滑动、按键、点击事件

    今天在维护公司的一个小项目的时候,发现按公司手机的某个物理按键,激活相应的Service后,会在屏幕上模拟的点击了屏幕的某个坐标点.好家伙,原来是之前该项目的版本是按这个物理按键后,会弹出一个对话框, ...

  4. Android:adb shell 命令详解

    安卓系统是基于Linux系统开发,也就支持常见的Linux的命令,这些命令都保存在手机“/system/bin”的目录下,通过adb shell 便可以调用这些命令. 进入“/system/bin”该 ...

  5. Android 执行 adb shell 命令

    Android 执行Adb shell 命令大多需要root权限,Android自带的Runtime. getRuntime().exec()容易出错,在网上找到了一个执行adb shell命令的类 ...

  6. Android 通过adb shell命令查看内存,CPU,启动时间,电量等信息

    Android 通过adb shell命令查看内存,CPU,启动时间,电量等信息   by:授客 QQ:1033553122 1.  查看内存信息 1)查看所有内存信息 命令: dumpsys mem ...

  7. adb shell input keyevent code详解

    adb shell input keyevent 7 # for key '0' adb shell input keyevent 8 # for key '1' adb shell input ke ...

  8. Android自动化----adb shell,appium,uiautomator2

    1.区别 1,adb shell脚本的方式 不但可以在有电脑的情况下使用,通过数据线连接电脑然后adb shell命令,而且还可以打包成app,在手机的终端使用adb shell命令. 2,appiu ...

  9. python(或BAT脚本)自动执行adb shell以后的命令

    最近在用python做一个小工具,自动执行一些adb shell命令,使用subprocess.Popen来实现.   不过遇到个问题就是执行adb shell后就无法执行后面adb shell里的命 ...

随机推荐

  1. POJ_3041_Asteroids

    参考自: http://user.qzone.qq.com/289065406/blog/1299322465 解题思路: 把方阵看做一个特殊的二分图(以行列分别作为两个顶点集V1.V2,其中| V1 ...

  2. Description Resource Path Location Type Missing artifact com.********:framework:jar:1.0.2 pom.xml /项目名 line **** Maven Dependency Problem

    问题具体描述如下图所示: 对于该问题本人是这么解决的. 在window下[Preferences]目录找到[Maven]下的[usersetting] 查看local repository 里面的路径 ...

  3. php切换版本之后 redis 安装使用

    一:redis安装Download, extract and compile Redis with: $ wget http://download.redis.io/releases/redis-3. ...

  4. qemu vm setup network(ssh) with buildroot

    1, build buildroot with buildroot.config, that is 'make qemu_x86_64_defconfig' + some packages, sshd ...

  5. MarkDown语法和使用

    MarkDown语法: Markdown在线编辑器 MdEditor Markdown 语法整理大集合2017 MarkDown 数学公式 在Markdown中输入数学公式(MathJax) \(\l ...

  6. 线性DP LIS浅谈

    LIS问题 什么是LIS? 百度百科 最长上升子序列(Longest Increasing Subsequence,LIS),在计算机科学上是指一个序列中最长的单调递增的子序列. 怎么求LIS? O( ...

  7. CentOS 6 Yum本地源配置

    #cd /etc/yum.repos.d #rm CentOS-Base.repo CentOS-Base.repo 是yum 网络源的配置文件(默认) #vi CentOS-Media.repo C ...

  8. 网络基础——TCP/IP五层模型

    TCP/IP五层模型 TCP/IP五层协议和OSI的七层协议对应关系如下 在每一层都工作着不同的设备,比如我们常用的交换机就工作在数据链路层的,一般的路由器是工作在网络层的. 在每一层实现的协议也各不 ...

  9. 浅谈对java-GC的理解

    前段时间,一个线上项目忽然很卡,通过监控,发现内存很高,果不其然在几个小时后,OOM.虽说有人很快处理好了.但我还是想站在我的角度,对这件事发表一下自己的观点. 内存溢出,多发生在项目上线后,而且在系 ...

  10. Spring AOP 学习(五)

    1. 使用动态代理实现AOP package com.atguigu.spring.aop; import java.lang.reflect.InvocationHandler; import ja ...