【android学习】安卓设备实现触摸事件的监听,跨进程事件注入
来源:互联网 发布:同志直播软件 编辑:程序博客网 时间:2024/05/13 13:46
最近想实现触摸屏的事件记录,并且分别做时间戳标记,类似于adb shell 下的getevent/setevent,查了很多资料,下面是一些总结。
实现方法:
1、利用onclick方法等。这种方法只能用于自己的Activity和View中,如果要检测其他Activity,比如键盘就不行了。
2、从linux内核入手。在事件分发前截获事件,可以对任意Activity实现事件捕获。
android触摸事件的流程:
http://blog.csdn.net/sunnyfans/article/details/8221505
在linux内核中,是直接向/dev/input/event*写入事件,然后另一个线程不断冲中读取事件。所以要实现监听与注入,就是实现对/dev/input/event*的读取和写入。
要求:
1、ROOT
2、获取su(超级用户权限)
分析event:
要明确各event代表的意思,我们用adb shell下的getevent 来说明
图上从上往下可以看到event6代表compass(指南针),event3代表触摸屏,下面是监听到的event7(光线感应)的事件。具体的协议可以参看这篇文章http://www.ddjava.com/blog/blog.html?blogId=612
此种方法可以实现在PC上对android设备事件的监听,但缺点是要连着电脑。如果无所谓脸部连着电脑,就可以到此为止了,再附送个处理数据的脚本http://www.jtben.com/document/919575
c4droid实现:
c4droid是一款在android手机上编译运行C/C++的应用,可以用c语言直接对底层linux内核操作。
http://tieba.baidu.com/p/2960331527#48299953890l
JAVA实现:
android中有个Process process = Runtime.getRuntime().exec()方法可以直接调用linux内核
如获取root权限
process = Runtime.getRuntime().exec("su");
就会弹出请求root权限的对话框。
正在尝试通过此方法直接调用getevent和sendevent
获取su、监听dev/input/event*·····
- 【android学习】安卓设备实现触摸事件的监听,跨进程事件注入
- android设备外接键盘实现监听事件
- android跨进程事件注入(程序模拟用户输入)
- android跨进程事件注入(程序模拟用户输入)
- android跨进程事件注入(程序模拟用户输入)
- android跨进程事件注入(程序模拟用户输入)
- android跨进程事件注入(程序模拟用户输入)
- android跨进程事件注入(程序模拟用户输入)
- android跨进程事件注入(程序模拟用户输入)
- android跨进程事件注入(程序模拟用户输入)
- android跨进程事件注入(程序模拟用户输入)
- android跨进程事件注入(程序模拟用户输入)
- 安卓学习之路---Android监听事件
- 安卓笔记1:点击监听事件的实现
- 安卓学习之事件监听
- 安卓触摸事件集锦
- 安卓触摸事件探究
- 安卓触摸事件剖析
- JsonBox安装使用
- C++零碎知识点(一)
- hdoj.2521 反素数 20140723
- c++ MySQL 连接
- javascript 获得今天阳历、星期、农历
- 【android学习】安卓设备实现触摸事件的监听,跨进程事件注入
- 平法和与立方和
- poj 1001 求一个小数的N次方
- 华为编程大赛——公交站寻址
- HBase框架
- android 解锁 点亮屏幕
- 找个靠谱的UML设计工具真难
- PB子数据窗口
- 自定义控件例如LinearLayout 的三种方法