首语:

  我们都知道,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的更多相关文章

  1. jQuery中的模拟操作

    jQuery中的模拟操作主要是通过trigger来触发,相当于页面加载完成后不需要用户点击按钮,就可以自动触发页面中的相关事件. trigger(type,[data])可以用来模拟触发自定义事件的触 ...

  2. jQuery 模拟操作

    1.常用模拟 有时,需要通过模拟用户操作,来达到单击的效果.例如在用户进入页面后,就触发 click 事件,而不需要用户去主动单击.在 jQuery 中,可以使用 trigger() 方法完成模拟操作 ...

  3. 第一百七十一节,jQuery,高级事件,模拟操作,命名空间,事件委托,on、off 和 one

    jQuery,高级事件,模拟操作,命名空间,事件委托,on.off 和 one 学习要点: 1.模拟操作 2.命名空间 3.事件委托 4.on.off 和 one jQuery 不但封装了大量常用的事 ...

  4. jquery模拟操作——trigger()函数

    在页面中很多效果需要触发才能实现,比如click后的弹窗.但有时我们无法点击或是跳过用户触发,就像网页中那些可恶的广告弹窗 trigger函数可以实现模拟操作.譬如常用的点击动作,我们可以这样, $( ...

  5. 剑指Offer——Java实现栈和队列的互模拟操作

    剑指Offer--Java实现栈和队列的互模拟操作 栈模拟队列   题目:JAVA实现用两个栈来实现一个队列,完成队列的Push和Pop操作.队列中的元素为int类型.   思路:其实就是把队列正常入 ...

  6. ADB——模拟手机按键输入

    基本命令 adb 模拟按键输入的命令主要通过 input 进行 Usage: input [<source>] <command> [<arg>...] The s ...

  7. go语言使用go-sciter创建桌面应用(六) Element元素操作和Event事件响应

    详细的文档请看下面两个链接: https://sciter.com/docs/content/sciter/Element.htm https://sciter.com/docs/content/sc ...

  8. Android ADB工具-操作手机和获取手设备信息(四)

    Android ADB工具-操作手机和获取手设备信息(四) 标签(空格分隔): Android ADB 6. 其它命令 命令 功能 adb shell input text <content&g ...

  9. Java模拟Windows的Event

    场景 开发中遇到一个场景,业务操作会不定时的产生工作任务,这些工作任务需要放入到一个队列中,而另外会有一个线程一直检测这个队列,队列中有任务就从队列中取出并进行运算. 问题 业务场景倒是简单,只不过这 ...

随机推荐

  1. win7 64位安装redis 及Redis Desktop Manager使用(转载的)

    写基于dapper的一套自动化程序,看到 mgravell的另一个项目,StackExchange.Redis,之前在.NET上用过一段时间Redis,不过一直是其它的驱动开发包,这个根据作者介绍,是 ...

  2. eclipse中常用提高效率的快捷键

    Eclipse快捷键 10个最有用的快捷键 5 4 Eclipse中10个最有用的快捷键组合  一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合.通过这些组合可以更加容易的 ...

  3. css3中的关键帧技术分析应用

    最近在研究网页加载进度效果的时候发现可以使用css3实现这个效果. 使用css3实现完全不需要图片,相比使用loading.gif的实现来说可能更快. 使用css3实现动态加载的效果,主要会涉及到几个 ...

  4. 使用notepad++作为keil的外部编辑器

    之前一直不喜欢keil的编辑界面,但是又不想太浮夸.看到很多群里有人用vscode写stm32的序,但是直接用vscode编写的花,各种设置很麻烦.而且还不能调试.于是想到有没有一个轻便简约的外部编辑 ...

  5. nginx.conf文件

    user  www www; worker_processes auto; error_log  /home/wwwlogs/nginx_error.log  crit; pid        /us ...

  6. 如何看apache的版本号

    在服务器上输入httpd -v就可以看到 在服务器上运行apachectl -v命令即可 Server version: Apache/2.2.3 Server built: Feb 25 2012 ...

  7. 有经验JAVA程序员如何提升自己?

    作为一个具有一到五年开发经验程序员,需要学习内容很多: JVM/分布式/高并发/性能优化/Spring MVC/Spring Boot/Spring Cloud/MyBatis/Netty源码分析等等 ...

  8. Flexbox学习总结

    flex语法 采用Flex布局的元素,称为Flex容器(flex container),简称"容器".它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称& ...

  9. eclipse导入包之后中文乱码

    windows ->preferences  ->workspace -> default ->GBK

  10. 理解rem实现响应式布局原理及js动态计算rem

    前言 移动端布局中,童鞋们会使用到rem作为css单位进行不同手机屏幕大小上的适配.那么来讲讲rem在其中起的作用和如何动态设置rem的值. 1.什么是rem rem是相对于根元素(html标签)的字 ...