android 按键处理的全流程梳理(realtek)

本文详细梳理了在Realtek TV方案中,从Linux Kernel到Android系统处理按键的全过程。涵盖了kernel的中断处理、设备初始化,以及Android端的按键映射、设备检测和事件处理。分析了如何添加新按键码,如何选择合适的KL文件,并介绍了按键进入处理队列前的流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不追求面面俱到,我也是行走在道路上,点到为止。本篇基于realtek TV方案分析。

简述:

我会从linux kernel 和 android 两个部分分析,在我看来这个两个部分就是从android 目录下的Generic.kl(或自定义kl) 分离开来的。

工作中会遇到的问题:

kernel:1、驱动已经添加OK,需要添加新的按键码

        android:2、添加一个新的android  keycode

  3、新输入设备如何选择相应的XXX.kl文件

  4、按键进入处理队列前会怎么走(interceptKeyBeforeQueueing)


——————————————————————————————————————————————————————————————————————

kernel:

——————————————————————————————————————————————————————————————————————

kernel总是那么专注,分析总是以module_init开始,以module_exit结束。

路径:linux-3.7.2\arch\arm\bsp-realtek\mach-rtd298x\Irrc.c

     module_init(ir_init_module);
     module_exit(ir_cleanup_module);

先来看ir_init_module:

|

venus_ir_input_init:设备文件初始化,其中 data->input_dev->name = "venus_IR_input"; 这个名字会用于android输入设备使用xxx.kl文件的名字

data->input_dev->keybit:输入子系统在发送按键前首先会检测要发送的按键值keycode,是否在keybit位图中有注册,所以

set_bit(rtk_mk5_tv_key_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值