一种应用于多系统的设备请求处理方法及装置制造方法及图纸

技术编号:14938929 阅读:107 留言:0更新日期:2017-04-01 00:58
本发明专利技术提供了一种应用于多系统的设备请求处理方法及装置,该方法步骤如下:经Linux用户空间接收来自当前系统的设备操作请求;根据操作请求,打开对应设备;判断当前系统处于前台还是后台,若当前系统处于前台,依据操作请求,控制设备执行操作;若当前系统处于后台,对操作请求进行记录或/和将操作请求对应的任务挂起。由于本发明专利技术实现于Linux内核,将处于后台的系统对应的任务保存并挂起,确保后台系统无法操控设备,同时保证后台切换到前台时,能够正常使用设备;本发明专利技术不仅实现了设备复用,而且完美实现了设备操作的流畅性和无间断性,避免了因前后台系统切换可能引起的任务出错等问题。

【技术实现步骤摘要】

本专利技术属于通信设备
,涉及一种设备虚拟化技术,尤其涉及一种应用于多系统的设备请求处理方法及装置
技术介绍
Linux系统是一种开源电脑操作系统内核,“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。而不同的硬件设备有各自不同的控制方法和操作逻辑,如果内核针对每一套硬件都做一份特别的适配则会对内核开发难度和上层应用程序使用硬件带来极大的困难;为了适配于大量的不同的硬件平台,因此Linux内核对每一个子系统都定义了一套标准的操作框架,不同硬件平台厂商按照该框架来完成自己的设备驱动设计,并将驱动交给该框架统一管理。为了使上层应用进程在不同硬件平台使用同类型设备时可以有统一的调用方法,在某些操作框架中,Linux自身实现了一个规范化的驱动,用于管理内核中的某一类设备;该驱动向用户层提供标准的调用接口,同时隐藏底层该设备驱动的实现细节;底层具体硬件的设备驱动通过该驱动提供的函数向其注册,并让其负责控制自身的函数调用,用户进程只需要通过规范的接口标准调用该规范化的设备驱动就能够完成对硬件的控制,例如Linux内核中的显示处理框架和音频处理框架就采用了这种方式。音频处理架构为基于ALSA(AdvancedLinuxSoundArchitecture,高级Linux声音架构的简称),该架构主要分为两个部分:用户空间部分和驱动部分。用户空间部分主要是由Google定制化裁减了ALSALIB形成了自己独有的tinyalsa,向用户空间提供接口,Tinyalsa可以分为三部分,即播放实例、录音实例和控件设置实例,AndroidHAL层通过调用上述实例完成播放、录音和调控设备等操作。Tinyalsa的每一个实例都有一个完整的流程,例如播放实例的流程包括打开设备、获取设备参数、设置参数、播放声音等,这个完成的流程是通过架构的驱动部分来完成的。ALSAdriver处于内核,是一个完整的设备驱向用户空间提供(open、close、read、write、ioctl)来实现使用音频设备。在多Android系统同时运行但只有一个音频设备的情况下,现有技术方案是将虚拟化实现在Framework层中,具体步骤为:APP请求使用音频服务,binder驱动截获服务请求,binder驱动作为服务端对请求进行过滤,若通过过滤规则则为其请求AudioFinger服务,否则不予响应或者返回虚假响应。然而,随着Android的音频处理日趋多样化,现有的技术方案已不适用。首先,Android在播放声音的时候不仅会涉及到AudioFlinger还会涉及到AudioManager,AudioPolicy等服务,各个服务之间还会交互,对于binder驱动来说过滤机制相当复杂,稍有不当的过滤策略就会影响APP使用音频服务;其次,当前后台Android系统发生切换的时候,无法保存前台设备的状态和播放进度等,当Android系统再次切换到前台时,该系统对应的设备状态是未知的,不可预测的。
技术实现思路
本专利技术的目的旨在针对上述现有技术中存在的问题,提供一种应用于多系统的设备请求处理方法及装置,实现前后台系统能够正常使用设备,确保后台系统无法操控设备,并在后台系统切换到前台时,实现任务的唤醒,恢复现场。为了达到以上目的,本专利技术采用以下技术方案来实现。本专利技术提供了一种应用于多系统的设备请求处理方法,其特征在于,步骤如下:S1,经Linux用户空间接收来自当前系统的设备操作请求;S2,根据操作请求,打开对应设备;S3,判断当前系统处于前台还是后台,若当前系统处于前台,依据操作请求,控制设备执行操作;若当前系统处于后台,将操作请求对应的任务挂起。上述应用于多系统的设备请求处理方法,根据操作请求,打开对应设备包括以下分步骤:S21,根据操作请求获取当前任务结构体;S22,根据当前任务结构体判断当前系统处于前台还是后台;S23,若操作请求来自前台,搜索当前系统与对应设备的映射关系,若搜索不到则创建并记录当前系统与对应设备的映射关系,然后记录设备参数信息,打开对应设备,同时将设备打开成功的消息反馈给当前系统;S24,若操作请求来自后台,搜索当前系统与对应设备的映射关系,若搜索不到则创建并记录当前系统与对应设备的映射关系,然后记录设备参数信息,再将打开对应设备的任务挂起。上述应用于多系统的设备请求处理方法,步骤S3或步骤S24中,挂起具体实现方式为将任务对应的进程修改为休眠状态,并利用Linux内核调度函数将其挂起。上述应用于多系统的设备请求处理方法,步骤S3中,通过当前任务结构体或者记录的与当前系统对应的映射关系判断当前系统处于前台还是后台。上述应用于多系统的设备请求处理方法,进一步包括步骤S4,根据停止操作的请求关闭对应设备或者执行操作结束后关闭对应设备,该步骤包括以下分步骤:S41,通过当前任务结构体或者记录的与当前系统对应的映射关系判断当前系统处于前台还是后台;S42,若当前系统处于前台,则释放对应设备、清空设备状态,然后清空记录的对应设备参数信息;S43,若当前系统处于后台,则清空记录的对应设备参数信息即可。上述应用于多系统的设备请求处理方法,其特征在于,当处于后台的当前系统切换到前台时,包括以下步骤:K1,将来自前台系统的操作请求挂起,释放对应设备,完成前台系统到后台系统的切换;K2,根据记录的与当前系统对应的设备参数信息,重新打开设备,设置设备参数信息,然后唤醒记录的与当前系统对应的操作请求,加入任务序列,控制设备执行操作。本专利技术进一步提供了一种应用于多系统的设备请求处理装置,其特征在于,包括:接收子装置,用于经Linux用户空间接收来自当前系统的设备操作请求;打开子装置,用于根据操作请求,打开对应设备,记录设备参数信息;操作子装置,判断当前系统处于前台还是后台,若当前系统处于前台,依据操作请求,控制设备执行操作;若当前系统处于后台,将操作请求对应的任务挂起。打开子装置进一步包括以下单元:获取单元,用于根据操作请求获取当前任务结构体;第一判断单元,用于根据当前任务结构体判断当前系统处于前台还是后台;第一处理单元,若操作请求来自前台,搜索当前系统与对应设备的映射关系,若搜索不到则创建并记录当前系统与对应设备的映射关系,然后记录设备参数信息,打开对应设备,同时将设备打开成功的消息反馈给当前系统;第二处理单元,若操作请求来自后台,搜索当前系统与对应设备的映射关系,若搜索不到则创建并记录当前系统与对应设备的映射关系,然后记录设备参数信息,再将打开对应设备的任务挂起。上述述应用于多系统的设备请求处理装置,进一步包括关闭子装置,用于根据停止操作的请求或者执行操作结束后关闭对应设备的,该子装置包括以下单元:第二判断单元,用于通过当前任务结构体或者记录的与当前系统对应的映射关系判断当前系统处于前台还是后台;第一后处理单元,用于当前系统处于前台时释放对应设备、清空设备状态,然后清空记录的对应设备参数信息;第二后处理单元,用于若当前系统处于后台时清空记录的对应设备参数信息即可。上述述应用于多系统的设备请求处理装置,当处于后台的当前系统切换到前台时,进一步包括:第一切换子装置,用于将来自前台系统的操作请求挂起,释放对应设备,完成前台系统到后台系本文档来自技高网
...
一种应用于多系统的设备请求处理方法及装置

【技术保护点】
一种应用于多系统的设备请求处理方法,其特征在于,步骤如下:S1,经Linux用户空间接收来自当前系统的设备操作请求;S2,根据操作请求,打开对应设备;S3,判断当前系统处于前台还是后台,若当前系统处于前台,依据操作请求,控制设备执行操作;若当前系统处于后台,对操作请求进行记录或/和将操作请求对应的任务挂起。

【技术特征摘要】
1.一种应用于多系统的设备请求处理方法,其特征在于,步骤如下:S1,经Linux用户空间接收来自当前系统的设备操作请求;S2,根据操作请求,打开对应设备;S3,判断当前系统处于前台还是后台,若当前系统处于前台,依据操作请求,控制设备执行操作;若当前系统处于后台,对操作请求进行记录或/和将操作请求对应的任务挂起。2.根据权利要求1所述应用于多系统的设备请求处理方法,其特征在于,根据操作请求,打开对应设备包括以下分步骤:S21,根据操作请求获取当前任务结构体;S22,根据当前任务结构体判断当前系统处于前台还是后台;S23,若操作请求来自前台,搜索当前系统与对应设备的映射关系,若搜索不到则创建并记录当前系统与对应设备的映射关系,然后记录设备参数信息,打开对应设备,同时将设备打开成功的消息反馈给当前系统;S24,若操作请求来自后台,搜索当前系统与对应设备的映射关系,若搜索不到则创建并记录当前系统与对应设备的映射关系,然后记录设备参数信息,再将打开对应设备的任务挂起。3.根据权利要求1或2所述应用于多系统的设备请求处理方法,其特征在于,步骤S3或步骤S24中,挂起具体实现方式为将任务对应的进程修改为休眠状态,并利用Linux内核调度函数将其挂起。4.根据权利要求2所述应用于多系统的设备请求处理方法,其特征在于,步骤S3中,通过当前任务结构体或者记录的与当前系统对应的映射关系判断当前系统处于前台还是后台。5.根据权利要求2所述应用于多系统的设备请求处理方法,其特征在于,进一步包括步骤S4,根据停止操作的请求关闭对应设备或者执行操作结束后关闭对应设备,该步骤包括以下分步骤:S41,通过当前任务结构体或者记录的与当前系统对应的映射关系判断当前系统处于前台还是后台;S42,若当前系统处于前台,则释放对应设备、清空设备状态,然后清空记录的对应设备参数信息;S43,若当前系统处于后台,则清空记录的对应设备参数信息即可。6.根据权利要求1、2、4或5所述应用于多系统的设备请求处理方法,其特征在于,当处于后台的当前系统切换到前台时,包括以下步骤:K1,将来自前台系统的操作请求挂起,释放对应设备,完成前台系统到后台系统的切换;K2,根据记录的与...

【专利技术属性】
技术研发人员:杨霞郭文生
申请(专利权)人:四川安嵌科技有限公司
类型:发明
国别省市:四川;51

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

1