我正在为一个自定义输入硬件创建一个驱动程序,它将尝试将数据作为输入传递给内核,然后内核将通过操作系统传递并通过MotionEvent公开到应用程序级别。看看其他一些设备驱动程序,看起来像通过Android 2.2内核(2.6.32)的input.h中公开的一些函数设置输入事件可能会有所帮助,但我很想证实这一点。在开始这条路径之前,我试图更好地理解现有输入(无论是屏幕,轨迹球等)是如何通过操作系统传递的。最终目标是确保我们可以将数据从设备传递到应用级别,然后再花费太多时间沿着这条路走下去。
linux kernal的输入标题2.6.32
http://lxr.free-electrons.com/source/include/linux/input.h?v=2.6.32
我浏览过Android类源代码,但不确定在哪里查看操作系统如何实现可以通过View类的onTouchEvent()方法访问的MotionEvent类。任何人都可以指出我在操作系统如何填充MotionEvent以及操作系统如何从内核获取数据方面的正确方向?
谢谢,
保
答案 0 :(得分:0)
我将在frameworks / base / libs / ui / EventHub.cpp中首先查看它,它将通过/ dev / input来查找平台上的不同输入设备以及它们的“输入”类型
更多...
下一步是在frameworks / base / services / jni / com_android_server_KeyInputQueue.cpp和frameworks / base / services / java / com / android / server / KeyInputQueue.java中。
如果您所做的只是为新硬件实现输入接口,我认为您不需要做任何进一步的工作......