adb模拟操作之event
首语:
我们都知道,adb可以对模拟器和root过的真机进行很多操作,例如:模拟点击,输入,截图,手机和PC,数据互传等。这篇要说的就是adb操作模拟器或者真机的输入输出。
0x01 问题
使用adb进行模拟长按鼠标或者长按某个按钮,坐标?
0x02 遍历资料(互联网取资料)
网上找了一下资料,基本都是需要跟event相关的,例如:/dev/input/event0 X X X; /dev/input/event3 Y Y Y。
一般都是input keyevent后面带参数或者是sendevent /dev/input/...这样的形式。
思考了一下,资料也说,应该是跟使用的android设备有关系,模拟器,真机,TV等都是不一样的,真机和真机之间也有可能不一样。
最后确定了一个,按照网上的思路,先用getevent进行捕获事件,然后在用sendevent进行发送操纵。突然让我想到了,window消息机制不就是这样么?
我们在window下模拟操作的时候,有时候也是需要借助spy++工具,进行捕获消息,然后模拟Send,Post消息的。
0x03 测试结果
于是,在真实加上,排除各种情况,只进行相关的那么一点点操作,其他操作都不进行。比如:长按,就只是长按,任何移动都不出现。然后得到的消息内容。
不过得到的内容是16进制的值。在使用adb进行发送的时候,需要转化成10进制的。
0x04 结论和思考
测试,确实操作成功了。
/dev/input/event应该是作为一个操作系统(android)的驱动器一样的存在。而输入的input有很多种(键盘,鼠标,手柄,遥控器等),不同的驱动,对应不同的动作,所以就会有很多种输入方式了。所以,凡事还是要思考,学而不思则罔,思而不学则殆。
0x05 附录
参考资料:http://blog.csdn.net/mad1989/article/details/38109689
参考资料:http://blog.csdn.net/liu_zhen_wei/article/details/12559277
参考资料:http://blog.csdn.net/chen969097157/article/details/52351228
adb模拟操作之event的更多相关文章
- jQuery中的模拟操作
jQuery中的模拟操作主要是通过trigger来触发,相当于页面加载完成后不需要用户点击按钮,就可以自动触发页面中的相关事件. trigger(type,[data])可以用来模拟触发自定义事件的触 ...
- jQuery 模拟操作
1.常用模拟 有时,需要通过模拟用户操作,来达到单击的效果.例如在用户进入页面后,就触发 click 事件,而不需要用户去主动单击.在 jQuery 中,可以使用 trigger() 方法完成模拟操作 ...
- 第一百七十一节,jQuery,高级事件,模拟操作,命名空间,事件委托,on、off 和 one
jQuery,高级事件,模拟操作,命名空间,事件委托,on.off 和 one 学习要点: 1.模拟操作 2.命名空间 3.事件委托 4.on.off 和 one jQuery 不但封装了大量常用的事 ...
- jquery模拟操作——trigger()函数
在页面中很多效果需要触发才能实现,比如click后的弹窗.但有时我们无法点击或是跳过用户触发,就像网页中那些可恶的广告弹窗 trigger函数可以实现模拟操作.譬如常用的点击动作,我们可以这样, $( ...
- 剑指Offer——Java实现栈和队列的互模拟操作
剑指Offer--Java实现栈和队列的互模拟操作 栈模拟队列 题目:JAVA实现用两个栈来实现一个队列,完成队列的Push和Pop操作.队列中的元素为int类型. 思路:其实就是把队列正常入 ...
- ADB——模拟手机按键输入
基本命令 adb 模拟按键输入的命令主要通过 input 进行 Usage: input [<source>] <command> [<arg>...] The s ...
- go语言使用go-sciter创建桌面应用(六) Element元素操作和Event事件响应
详细的文档请看下面两个链接: https://sciter.com/docs/content/sciter/Element.htm https://sciter.com/docs/content/sc ...
- Android ADB工具-操作手机和获取手设备信息(四)
Android ADB工具-操作手机和获取手设备信息(四) 标签(空格分隔): Android ADB 6. 其它命令 命令 功能 adb shell input text <content&g ...
- Java模拟Windows的Event
场景 开发中遇到一个场景,业务操作会不定时的产生工作任务,这些工作任务需要放入到一个队列中,而另外会有一个线程一直检测这个队列,队列中有任务就从队列中取出并进行运算. 问题 业务场景倒是简单,只不过这 ...
随机推荐
- c++工程重复编译与重复定义
#ifndef #define #endif防止的是"重复编译",而不是"重复定义"重复编译可能造成重复定义,但重复定义的来源不只有重复编译从代码变成可执行的程 ...
- Thinking in Java学习笔记-泛型和类型安全的容器
示例: public class Apple { private static long counter; private final long id = counter++; public long ...
- SpringMVC框架学习笔记(2)——使用注解开发SpringMVC
1.配置web.xml <servlet> <servlet-name>mvc</servlet-name> <servlet-class>org.sp ...
- iframe及与页面之间的通信
获取iframe对象 iframe元素本身是位于父级页面中的,所以你可以像一个普通元素一样的使用和操作它 代表了iframe内容window对象是作为一个页面的属性加入到iframe中的, 为了让父级 ...
- 2017-6-14 踩坑小结(Android文件读写 相关问题)
填坑 getSlotFromBufferLocked: unknown buffer: 0xab7115e0 1. 在棉花糖(6.0)上莫名出现 未知缓冲 错误,百度了一下,貌似这个是Android6 ...
- NSString拼接字符串
NSString* string; // 结果字符串 02 NSString* string1, string2; //已存在的字符串,需要将string1和string2连接起来 03 04 / ...
- 详解python中的__init__与__new__方法
一.__init__和__new__方法执行的顺序? 在面向对象中介绍了关于对象创建的过程,我们知道__new__方法先于__init__方法执行. 二.__new__方法是什么? 首先,我们先来看下 ...
- 2017-07-07(zip unzip gzip gunzip)
zip压缩格式 zip zip 压缩文件名 源文件 (压缩文件) zip -r 压缩文件名 源文件 (压缩目录) unzip unzip 压缩名 .gz压缩格式 gzip gz ...
- php 利用Gd库添加文字水印乱码的问题及解决方案
最近一个项目进行了服务器迁移,部署后发现 ,其中一个为图片添加水印文字的功能出现了乱码问题,确认功能代码不存在问题,同时项目代码都是使用UTF-8编码,不存在编码问题,也检查排除了字体文件出现问题的可 ...
- scss 初学笔记 一 变量声明 默认的样式 嵌套
$width: 300px !default; $: 变量声明符号; width: 变量名称; 300px: 赋予变量的值; !default 代表默认样式 !defau ...