Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 跟踪从驱动程序到应用程序的输入/事件流_Android_Input_Driver_Motion - Fatal编程技术网

Android 跟踪从驱动程序到应用程序的输入/事件流

Android 跟踪从驱动程序到应用程序的输入/事件流,android,input,driver,motion,Android,Input,Driver,Motion,我正在为一个自定义输入硬件创建一个驱动程序,它将尝试将数据作为输入传递给内核,然后内核将通过操作系统向上传递数据,并通过MotionEvent向应用程序级公开。看看其他一些设备驱动程序,它看起来像是通过Android 2.2内核(2.6.32)的input.h中公开的一些函数来设置输入事件,这可能会奏效,但我想确认一下。在开始这条路之前,我试图更好地理解现有的输入,无论是来自屏幕、轨迹球等,是如何通过操作系统传递的。最终目标是确保在投入太多时间之前,我们可以将数据从设备级传递到应用级 linux

我正在为一个自定义输入硬件创建一个驱动程序,它将尝试将数据作为输入传递给内核,然后内核将通过操作系统向上传递数据,并通过MotionEvent向应用程序级公开。看看其他一些设备驱动程序,它看起来像是通过Android 2.2内核(2.6.32)的input.h中公开的一些函数来设置输入事件,这可能会奏效,但我想确认一下。在开始这条路之前,我试图更好地理解现有的输入,无论是来自屏幕、轨迹球等,是如何通过操作系统传递的。最终目标是确保在投入太多时间之前,我们可以将数据从设备级传递到应用级

linux内核2.6.32的输入头

我浏览了Android类的源代码,但不确定从何处查看操作系统如何安装MotionEvent类,该类可以通过View类的onTouchEvent()方法访问。有人能给我指出操作系统如何填充MotionEvent以及操作系统如何从内核获取数据的正确方向吗

谢谢


Paul

首先,我将在frameworks/base/libs/ui/EventHub.cpp中查看,它将通过/dev/input查找平台上的不同输入设备以及这些设备的“类型”

更多

下一步是frameworks/base/services/jni/com\u android\u server\u KeyInputQueue.cpp和frameworks/base/services/java/com/android/server/KeyInputQueue.java


如果您所做的只是为一个新的硬件实现输入接口,那么我认为您不需要做更多的事情……

是的,谢谢,这是一个很好的开始!现在我正在尝试建立EventHub.cpp与Java MotionEvent之间的连接。。。在花了数小时钻研代码之后,我看到一个名为RawInputEvent的类,它声明了一组似乎与EventHub.cpp共享的静态值,但我无法确定MotionEvent(相对于View类)如何传递到View.onTouchEvent()中