Android事件从输入到输出的整个流程
下面是北京上课了提供的一个流程:1.Activity运行时,用户点击触摸屏操作->{事件产生}1.点击触摸屏,必然会调用触摸屏驱动->{事件输入}【Q3】:事件传递过程?->{事件传递}
<A3>:以下所有步骤!
1.Android上层应用调用Framework层的JNI本地方法->{事件消息传递到JNI层} 1.实现JNI层方法,填充本地方法映射表,实现提供Android上层应用的接口
2.生成so动态链接库文件,adb push到/system/lib目录下 2.JNI本地方法调用HAL层(硬件抽象层:中间件)方法->{事件消息传递到HAL层} 1.JNI层通过指定ID得到HAL模块实例,然后调用HAL层函数
2.生成so动态链接库文件,adb push到/system/lib/hw目录下 3.HAL通过系统调用write进入内核层->{事件消息传递到内核} 1.copy_from_user()取得用户层数据
2.调用input_device.write->{(1.1.2):事件消息传递到驱动层}------------------------------------------------------------------------------------------
4.输入设备驱动获取事件,调用event函数->{(1.1.3)}
5.事件处理层根据事件类型进行上报->{事件消息传递到内核事件处理层}
1.调用input_event(device,type,code,value)->{【type】后面会用到}
6.到事件处理层时,内核会唤醒read函数->{(1.1.1):事件消息传递到内核层}
1.通过copy_to_user()将内核数据传递到用户空间->{事件消息传递到用户空间}
【Q4】:read函数被谁调用的?
7.事件消息被Android的事件处理系统捕捉到->{事件消息传递到Android事件处理系统} 1.Android事件处理系统将这个消息发送到Android应用层
【Q5】:事件消息在Android事件处理系统中是怎么传递的? 8.Android上层获取事件消息,根据事件类型(3.1.1.5.1:type)响应上层View相应回调函数
9.Android界面UI更新->{事件响应}
页:
[1]