一种基于android的x86端按键适配方法及系统技术方案

技术编号:8452848 阅读:511 留言:0更新日期:2013-03-21 13:44
本发明专利技术提供一种基于android的x86端按键适配方法及系统,所述基于android的x86端按键适配方法包括以下步骤:创建模拟按键驱动步骤,在android内核源码目录下创建模拟按键驱动后,在用户空间构造按键事件并写入到android内核中;按键事件写入步骤,在android中间件往事件设备节点中写入按键事件;按键采集步骤;以及,处理步骤,判断微控器发送过来的按键类型并分别进行相应的处理。本发明专利技术通过创建模拟按键驱动步骤实现按键适配,实现按键采集和按键处理可以分开在微控器和X86端的中央处理器中分别运行,响应速度快,还能够实现硬按键启动非launcher的android应用程序界面。

【技术实现步骤摘要】

本专利技术涉及一种按键适配的方法,尤其涉及一种能够快速响应的基于android的 x86端按键适配方法,并提供基于android的x86端按键适配系统。
技术介绍
现有的双CPU系统中,按键适配普遍使用android input命令,或则将按键值发送到android应用层,通过进程间通信将按键值发送到android输入系统的应用层的事件队列中进行处理,该方法由于android应用层的进程间通信的效率低,因此无法满足X86端按键适配的响应时间要求,比较耗时,一般需要500ms左右。而且该方法下,硬按键启动除 launcher外的android应用程序界面,launcher如果不是前台活动,贝U无法监听android 输入系统的按键事件,因此实现不了硬按键启动launcher外的应用程序界面。
技术实现思路
本专利技术所要解决的技术问题是需要提供一种能够快速响应。并且能实现对 launcher外的应用程序界面进行启动的基于android的x86端按键适配方法。对此,本专利技术提供一种基于android的x86端按键适配方法,包括以下步骤创建模拟按键驱动步骤,在android内核源码目录下创建模拟按键驱动,通过模拟按键驱动在android的用户空间构造按键事件并写入到android内核中;按键事件写入步骤,在android中间件往事件设备节点中写入按键事件;按键采集步骤,将硬按键连接至与X86端相独立的微控器,由微控器对按键进行采集得到按键值;以及,处理步骤,判断微控器发送过来的按键类型,若属于android的非标准按键,则通过android的AM命令将按键值进行封装和广播,广播传送给launcher后启动相应的功能界面;若属于android的标准按键,则将按键值写入模拟按键驱动对应的按键事件中, android的输入系统读取按键事件后完成按键事件所对应的功能。其中,android中间件包括硬件适配层和framework层,位于android系统内核驱动层以上、应用层以下;模拟按键驱动是指实现一个驱动,以将在用户空间采集到按键信息写入到该驱动中,并由该驱动上报按键信息给输入系统,按键信息也称按键值,而按键驱动是Iinux系统驱动的一部分,按键信息通过按键驱动采集上报给输入系统处理;AM命令是 android特有shell命令,用于执行广播动作,实现向系统广播信息。本专利技术基于双CPU的系统中,具体包括微控器和X86端的中央处理器,其中,微控器负责统一检测按键,即对按键进行采集得到按键值,并将按键值上传给运行android的 X86架构的CPU端,也就是中央处理器端,为了将按键值适配到android的输入系统中,而在android内核驱动中使用模拟按键驱动,注册按键事件的驱动,并在android中间件完成按键的适配。本专利技术的进一步改进在于,所述创建模拟按键驱动步骤包括在android内核源码目录下创建模拟按键驱动,并在模拟按键驱动中注册要处理的按键扫描码,同时确保android的按键布局文件中含有要处理的按键扫描码;加载模拟按键驱动,生成事件设备节点;在android中间件打开事件设备节点;以及,构造按键事件并依次将按键事件写入到该事件设备节点中,完成按键适配。与现有技术相比,本专利技术通过创建模拟按键驱动步骤实现按键适配,实现按键采集和按键处理可以分开在微控器和X86端的中央处理器中分别运行,将硬按键连接到微控器,降低了 x86端的按键特别是旋钮实现的复杂度,并便于对按键进行统一管理;此外,在 x86端android内核实现模拟按键驱动,注册按键事件的驱动,生成事件设备节点,比如/ dev/input/eventO,在android中间件往事件设备节点中写入按键事件,响应时间为IOOms 以下,相比现有技术中使用android input命令的按键响应时间为500ms左右,本专利技术提高了 5倍的相应速度;在此基础上,本专利技术还实现硬按键启动非launcher的android应用程序界面,通过launcher接收到按键值,便能够启动相应的应用程序界面。本专利技术的进一步改进在于,所述微控器为与X86端相独立工作的CPU或MCU。由于微控器主要用于对按键进行检测,实现按键值的采集,因此,对微控器的要求并不高,用CPU 或MCU都能够实现,成本低。本专利技术的进一步改进在于,android的非标准按键指的是启动launcher外的应用程序界面的硬按键。优选地,launcher外的应用程序界面的硬按键包括电话、导航、收音、音乐、视频、求救和文本信息中至少一种按键。本专利技术对于非android按键事件适配, 不需要将按键值写入到android输入系统中,而是在android中间件接收到微控器传送过来的按键值后,使用android的AM命令将按键值封装为intent传送给launcher,然后由 launcher启动相应的功能界面,这样便能够实现硬按键启动launcher之外的android应用程序界面,比如电话/导航/launcher/FM/Music/Movie/SOS/ICall/Web功能,实现功能界面之间的切换。本专利技术还提供一种基于android的x86端按键适配系统,包括微控器和X86端的中央处理器,所述中央处理器和微控器分别独立工作;其中,微控器用于实现对按键进行采集,得到按键值;所述中央处理器用于实现对按键值的处理。该基于android的x86端按键适配系统,优选采用上述的基于android的x86端按键适配方法。本专利技术的进一步改进在于,中央处理器接收到微控器所采集的按键值后,由中间件执行按键适配;按键适配完成后发送给模拟按键驱动进行按键事件的驱动加载,即将按键值写入模拟按键驱动对应的按键事件中;最后连接至输入系统中进行功能的实现。与现有技术相比,本专利技术通过创建模拟按键驱动步骤实现按键适配,实现按键采集和按键处理可以分开在微控器和X86端的中央处理器中分别运行,将硬按键连接到微控器,降低了对x86端的按键适配,特别是对x86端的旋钮适配的复杂度,并便于对按键进行统一管理;而且,在x86端android内核实现模拟按键驱动,注册按键事件的驱动,生成事件设备节点,比如/dev/input/eventO,在android中间件往事件设备节点中写入按键事件,响应时间为IOOms以下,相比现有技术中使用android input命令的按键响应时间为500ms左右,本专利技术提高了 5倍的响应速度;在此基础上,本专利技术还实现硬按键启动非 launcher的android应用程序界面,通过launcher接收到按键值,即可启动相应的应用程序界面。附图说明图I是本专利技术一种实施例的工作流程示意图;图2是本专利技术另一种实施例的系统结构示意图。具体实施方式下面结合附图,对本专利技术的较优的实施例作进一步的详细说明实施例I:本例提供一种基于android的x86端按键适配方法,包括以下步骤创建模拟按键驱动步骤,在android内核源码目录下创建模拟按键驱动,通过模拟按键驱动在android的用户空间构造按键事件并写入到android内核中;按键事件写入步骤,在android中间件往事件设备节点中写入按键事件;按键采集步骤,将硬按键连接至与X86端相独立的微控本文档来自技高网...

【技术保护点】
一种基于android的x86端按键适配方法,其特征在于,包括以下步骤:创建模拟按键驱动步骤,在android内核源码目录下创建模拟按键驱动,通过模拟按键驱动在android的用户空间构造按键事件并写入到android内核中;按键事件写入步骤,在android中间件往事件设备节点中写入按键事件;按键采集步骤,将硬按键连接至与X86端相独立的微控器,由微控器对按键进行采集得到按键值;以及,处理步骤,判断微控器发送过来的按键类型,若属于android的非标准按键,则通过android?的AM命令将按键值进行封装和广播,广播传送给launcher后启动相应的功能界面;若属于android的标准按键,则将按键值写入模拟按键驱动对应的按键事件中,android的输入系统读取按键事件后完成按键事件所对应的功能。

【技术特征摘要】

【专利技术属性】
技术研发人员:何照丹朱别明
申请(专利权)人:深圳市航盛电子股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1