android 使用shell模拟触屏_[Android]通过adb shell input上报命令模拟屏幕点击事件【转】...

常用的 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各种妙用

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

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

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

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

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

Android:adb shell 命令详解

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

Android 执行 adb shell 命令

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

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

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

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 ...

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

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

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

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

随机推荐

小结一下前段时间做的rpgdemo

虽然说已经是彻底放弃继续做那个demo了(代码结构混乱,想增加新功能非常的不方便),不过还是花了一点心血在里面的,毕竟这是我开始学习unity游戏制作的初衷,不过果然是学的越多越发现自己的不足... ...

T-SQL 语句创建Database的SQL mirroring关系

1 证书部分:principle 和 secondary 端执行同样操作,更改相应name即可 USE master; --1.1 Create the database Master Key, if ...

MySQL bug:server-id默认被自己主动置为1

昨天同事在做主从时,从库报例如以下错误: Got fatal error 1236 from master when reading data from binary log: 'Misconfigu ...

C++ 常见容器

迭代器. 基本介绍(来源于网络):迭代器是一种抽象的概念.能够遍历容器内的 部分/全部 元素.每个迭代器中包含着元素的地址.  它可以将 抽象容器 和 泛型算法 结合起来.   大致原理: 1)迭代器 ...

ftp一些东东

ftp如果绑定域名 登录时登录名应该写成 域名|用户名

关于s2sh框架关于hibernate懒加载问题的说明和解决方案

首先我们来看下面这个图,解释了一个web程序的一次请求流程! 懒加载异常的说明: 懒加载就是我们在查询一个对象时,它所有的属性是否要被查出来! 如果懒加载开启的话,session在service层就被 ...

Centos-ip配置详解

1 搭建好Centos ,我这里是CentOS-6.7-x86_64-minimal  提供一个下载地址 链接:http://pan.baidu.com/s/1nvTUTh3 密码:xewk 2 我是 ...

C# 处理Excel公式(一)——创建、读取Excel公式

对于数据量较大的表格,需要计算一些特殊数值时,我们通过运用公式能有效提高我们数据处理的速度和效率,对于后期数据的增删改查等的批量操作也很方便.此外,对于某些数值的信息来源,我们也可以通过读取数据中包含 ...

hive数据查询

Fetch task 丢弃了mapreduce的作业的繁重任务,查询方便简单 1.第一种方式 2.linux命令行 3.地3中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/445951.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用Python连接MySQL并进行CRUD

Tag: MySQL, PyMySQL, Python 准备条件 Python 2.7MySQL 5.5安装 PyMySQL pip install PyMySQL 放码过来 创建一数据表 CREATE TABLE users (id int(11) NOT NULL AUTO_INCREMENT,email varchar(255) COLLATE utf8_bin NOT NULL,password varchar(255) COLLATE utf8_bin N…

python网络爬虫的方法有几种_Python网络爬虫过程中5种网页去重方法简要介绍

一般的,我们想抓取一个网站所有的URL,首先通过起始URL,之后通过网络爬虫提取出该网页中所有的URL链接,之后再对提取出来的每个URL进行爬取,提取出各个网页中的新一轮URL,以此类推。整体的感觉就是自上而下进…

FFmpeg源代码简单分析-编码-avformat_alloc_output_context2()

参考链接 FFmpeg源代码简单分析:avformat_alloc_output_context2()_雷霄骅的博客-CSDN博客_avformat_alloc_context avformat_alloc_output_context2() 在基于FFmpeg的视音频编码器程序中,该函数通常是第一个调用的函数(除了组件注册函数av…

《深入理解JVM.2nd》笔记(一):走进Java

概述 Java技术体系 Java程序设计语言各种硬件平台上的Java虚拟机Class文件格式Java API类库来自商业机构和开源社区的第三方Java类库 Java发展史 Java虚拟机发展史 展望Java技术的未来 模块化 混合语言 多核并行 进一步丰富语法 64位虚拟机 实战:自己编译…

js监听只读文本框_js 动态控制 input 框 的只读属性

input 框的只读属性: readonly在页面中直接添加为只读时,可在input中直接添加 readonly"readonly",但是如果想通过点击按钮来改变的话,需要通过js(或jquery)来实现。最近一次使用这个,终于发现了以前写这…

FFmpeg源代码简单分析-编码-avformat_write_header()

参考链接 FFmpeg源代码简单分析:avformat_write_header()_雷霄骅的博客-CSDN博客_avformat_write_header avformat_write_header() FFmpeg写文件用到的3个函数:avformat_write_header(),av_write_frame()以及av_write_trailer()其中av_writ…

《深入理解JVM.2nd》笔记(二):Java内存区域与内存溢出异常

文章目录概述运行时数据区域程序计数器Java虚拟机栈本地方法栈Java堆方法区运行时常量池直接内存HotSpot虚拟机对象探秘对象的创建第一步第二步第三步第四步最后一脚对象的内存布局对象头Header第一部分第二部分实例数据Instance对齐填充Padding对象的访问定位句柄直接指针对象…

vue底部选择器_Vue组件-极简的地址选择器

一、前言本文用Vue完成一个极简的地点选择器,我们接下来带大家实现这个。当然其中也有一些值得学习与注意的地方。话不多说,我们先上demo图。因为每个人的需要不一样,我这边就不在实现更多的功能,所以留有更大的空间供大家增删改。…

FFmpeg源代码简单分析-编码-avcodec_encode_video()已被send_frame 和 receive_packet替代

参考链接 FFmpeg源代码简单分析:avcodec_encode_video()_雷霄骅的博客-CSDN博客_avcodec_encode_video2 avcodec_encode_video() 该函数用于编码一帧视频数据。函数已被弃用参考链接:FFmpeg 新旧版本编码 API 的区别_zouzhiheng的博客-CSDN博客 send_f…

《深入理解JVM.2nd》笔记(三):垃圾收集器与垃圾回收策略

文章目录概述对象已死吗引用计数算法可达性分析算法再谈引用finalize():生存还是死亡回收方法区垃圾收集算法标记-清除算法复制算法标记-整理算法分代收集算法HotSpot的算法实现枚举根结点安全点安全区域垃圾收集器SerialParNewParallel ScavengeSerial OldParallel…

python计算股票趋势_通过机器学习的线性回归算法预测股票走势(用Python实现)...

1 波士顿房价数据分析安装好Python的Sklearn库后,在安装包下的路径中就能看到描述波士顿房价的csv文件,具体路径是“python安装路径\Lib\site-packages\sklearn\datasets\data”,在这个目录中还包含了Sklearn库会用到的其他数据文件&#xff…

FFmpeg源代码简单分析-编码-av_write_frame()

参考链接 FFmpeg源代码简单分析:av_write_frame()_雷霄骅的博客-CSDN博客_av_write_frame av_write_frame() av_write_frame()用于输出一帧视音频数据,它的声明位于libavformat\avformat.h,如下所示。 /*** Write a packet to an output me…

《深入理解JVM.2nd》笔记(四):虚拟机性能监控与故障处理工具

文章目录概述JDK的命令行工具jps:虚拟机进程状况工具jstat:虚拟机统计信息监视工具jinfo:Java配置信息工具jmap:Java内存映像工具jhat:虚拟机堆转储快照分析工具jstack:Java堆栈跟踪工具HSDIS:J…

postgresql 主从配置_Postgresql主从配置

一、简介PostgreSql在9.0之后引入了主从的流复制机制,所谓流复制,就是从服务器通过tcp流从主服务器中同步相应的数据。这样当主服务器数据丢失时从服务器中仍有备份。与基于文件日志传送相比,流复制允许保持从服务器更新。 从服务器连接主服务…

FFmpeg源代码简单分析-编码-av_write_trailer()

参考链接: FFmpeg源代码简单分析:av_write_trailer()_雷霄骅的博客-CSDN博客_av_malloc av_write_trailer() av_write_trailer()用于输出文件尾,它的声明位于libavformat\avformat.h,如下所示 /*** Write the stream trailer to…

科沃斯扫地机器人风扇模块_扫地机器人不能开机,不能关机,风扇不转

家庭的重要性自不必再细说,而小编今天要说的则是家庭环境的重要性。一般家庭最少居住三口人,两个大人加一个孩子,每天回到家,看到家里整洁舒适的环境,心情该是多么地惬意。要是我们每天下班回到家中,看到满…

MySQL关键字EXPLAIN的用法及其案例

文章目录概述EXPLAIN输出的列的解释实例说明select_type的说明UNIONDEPENDENT UNION与DEPENDENT SUBQUERYSUBQUERYDERIVEDtype的说明system,consteq_refrefref_or_nullindex_mergeunique_subqueryindex_subqueryrangeindexALLextra的说明DistinctNot existsRange ch…

FFmpeg源代码简单分析-其他-日志输出系统(av_log()等)

参考链接 FFmpeg源代码简单分析:日志输出系统(av_log()等)_雷霄骅的博客-CSDN博客_ffmpeg源码分析 日志输出系统(av_log()等) 本文分析一下FFmpeg的日志(Log)输出系统的源代码。日志输出部分的…

FFmpeg源代码简单分析-其他-AVClass和AVoption

参考链接 FFmpeg源代码简单分析:结构体成员管理系统-AVClass_雷霄骅的博客-CSDN博客FFmpeg源代码简单分析:结构体成员管理系统-AVOption_雷霄骅的博客-CSDN博客 概述 AVOption用于在FFmpeg中描述结构体中的成员变量。它最主要的作用可以概括为两个字&a…

oracle手工收集awr报告_oracle手工生成AWR报告方法记录-阿里云开发者社区

AWR(Automatic Workload Repository)报告是我们进行日常数据库性能评定、问题SQL发现的重要手段。熟练掌握AWR报告,是做好开发、运维DBA工作的重要基本功。AWR报告的原理是基于Oracle数据库的定时镜像功能。默认情况下,Oracle数据库后台进程会以一定间隔…