【android学习】安卓设备实现触摸事件的监听,跨进程事件注入

最近想实现触摸屏的事件记录,并且分别做时间戳标记,类似于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 来说明

【android学习】安卓设备实现触摸事件的监听,跨进程事件注入

图上从上往下可以看到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实现:

正在学习中···直播

获取su、监听dev/input/event*·····

【android学习】安卓设备实现触摸事件的监听,跨进程事件注入,布布扣,bubuko.com

【android学习】安卓设备实现触摸事件的监听,跨进程事件注入

上一篇:Android 解决ListView在使用多个布局的同时使用convertView进行缓存时导致ListView下面有空白的问题


下一篇:Android开发之下载文件