CN103970559A - 一种基于Android系统的设备加载方法及装置 - Google Patents
一种基于Android系统的设备加载方法及装置 Download PDFInfo
- Publication number
- CN103970559A CN103970559A CN201310046037.3A CN201310046037A CN103970559A CN 103970559 A CN103970559 A CN 103970559A CN 201310046037 A CN201310046037 A CN 201310046037A CN 103970559 A CN103970559 A CN 103970559A
- Authority
- CN
- China
- Prior art keywords
- hal
- dynamic link
- link library
- loaded
- device identification
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于Android系统的设备加载方法及装置。该方法包括:加载待加载设备的设备驱动,进而将待加载设备的设备信息进行映射,生成映射信息;根据映射信息获取待加载设备的设备标识;通过索引信息判断是否存在与待加载设备的设备标识相匹配的HAL动态链接库,其中索引信息用于表示至少两种不同型号的同类设备的设备标识与HAL动态链接库的对应关系;若存在,则加载相匹配的HAL动态链接库;若不存在,则加载默认的HAL动态链接库。通过上述方式,本发明能够实现在Android系统下智能地去识别不同型号的同类设备,动态加载其相应的设备驱动和HAL动态链接库,使其能正常被使用。
Description
技术领域
本发明涉及嵌入式操作系统领域,特别是涉及一种基于Android系统的设备加载方法及装置。
背景技术
基于Android(安卓)系统的设备加载方法,是指Android系统上电后,需要正确加载设备,也即正确加载设备的驱动和HAL(HardwareAbstraction Layer,硬件抽象层)动态链接库后,才能使得电子产品的各类设备正常使用。其中,电子产品例如是平板电脑、手机等等,设备例如是显示屏、扬声器、摄像头或传感器等等。
现有的基于Android系统的设备加载方法,同一类设备只能加载一个驱动以及对应的HAL动态链接库,也就是说,Android系统只支持一种同类设备。以传感器为例来说,Android系统只能加载传感器中某一型号例如传感器A的驱动以及对应的HAL动态链接库,如果传感器A的供应出了问题而导致需要使用其他型号的传感器例如传感器B时,则需要将Android系统中传感器A的驱动和对应的HAL动态链接库更改为传感器B的驱动和对应的HAL动态链接库。Android系统重新上电,正确加载传感器B的驱动和HAL动态链接库后,传感器B才能正常使用。
因此,如何实现在Android系统下智能地去识别不同型号的同类设备,动态加载其相应的设备驱动和HAL动态链接库,使其能被正常使用是亟待解决的一个问题。
发明内容
本发明主要解决的技术问题是提供一种基于Android系统的设备加载方法及装置,能够实现在Android系统下智能地去识别不同型号的同类设备,动态加载其相应的设备驱动和HAL动态链接库,使其能被正常使用。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种基于Android系统的设备加载方法,该方法包括以下步骤:加载待加载设备的设备驱动,进而将待加载设备的设备信息进行映射,生成映射信息;根据映射信息获取待加载设备的设备标识,其中待加载设备的设备标识用于在同类设备中区分待加载设备;通过索引信息判断是否存在与待加载设备的设备标识相匹配的HAL动态链接库,其中索引信息用于表示至少两种不同型号的同类设备的设备标识与HAL动态链接库的对应关系;若存在相匹配的HAL动态链接库,则加载相匹配的HAL动态链接库;若不存在相匹配的HAL动态链接库,则加载默认的HAL动态链接库。
其中,加载待加载设备的设备驱动的步骤具体包括:从至少两种不同型号的同类设备的设备驱动中选择并加载待加载设备的设备驱动。
其中,加载待加载设备的设备驱动的步骤具体包括:根据与待加载设备的通信反馈结果从至少两种不同型号的同类设备的设备驱动中选择并加载待加载设备的设备驱动。
其中,根据映射信息获取待加载设备的设备标识的步骤具体包括:读取映射信息,获取文件句柄;根据文件句柄,通过函数接口获取设备标识。
其中,通过索引信息判断是否存在与待加载设备的设备标识相匹配的HAL动态链接库的步骤具体包括:确定索引信息中是否存在待加载设备的设备标识;若存在设备标识,且存在相匹配的HAL动态链接库,则表示存在与待加载设备的设备标识相匹配的HAL动态链接库;若不存在设备标识,或者,虽存在设备标识、但不存在相匹配的HAL动态链接库,则表示不存在与待加载设备的设备标识相匹配的HAL动态链接库。
其中,索引信息为索引列表;加载相匹配的HAL动态链接库的步骤具体包括:根据设备标识从索引列表获取相匹配的HAL动态链接库的文件名称;根据文件名称从预定存储路径加载相匹配的HAL动态链接库。
其中,索引列表包括第一索引列表和第二索引列表,第一索引列表用于判断是否存在设备标识,第二索引列表用于实现HAL动态链接库的文件名称与设备标识的关联。
其中,加载相匹配的HAL动态链接库的步骤具体包括:根据设备标识及预定的命名规则获取相匹配的HAL动态链接库的文件名称;根据文件名称从预定存储路径加载相匹配的HAL动态链接库。
其中,预定的命名规则为:模块名称.设备标识.so,模块名称为同类设备所共用的系统标识。
为解决上述技术问题,本发明采用的另一个技术方案是:提供一种基于Android系统的设备加载装置,该装置包括:设备驱动加载模块,用于加载待加载设备的设备驱动,进而将待加载设备的设备信息进行映射,生成映射信息;设备标识获取模块,从设备驱动加载模块获取映射信息,根据映射信息获取待加载设备的设备标识,其中待加载设备的设备标识用于在同类设备中区分所述待加载设备;判断模块,从所述设备标识获取模块获取待加载设备的设备标识,通过索引信息判断是否存在与待加载设备的设备标识相匹配的HAL动态链接库,其中索引信息用于表示至少两种不同型号的同类设备的设备标识与HAL动态链接库的对应关系;HAL动态链接库加载模块,当判断模块判断存在与待加载设备的设备标识相匹配的HAL动态链接库时,加载相匹配的HAL动态链接库,当判断模块判断不存在与待加载设备的设备标识相匹配的HAL动态链接库时,加载默认的HAL动态链接库。
其中,设备驱动加载模块从至少两种不同型号的同类设备的设备驱动中选择并加载待加载设备的设备驱动。
其中,设备标识获取模块包括:文件句柄获取单元,用于读取映射信息,获取文件句柄;设备标识获取单元,从文件句柄获取单元获取文件句柄,根据文件句柄,通过函数接口获取设备标识。
其中,HAL动态链接库加载模块包括:HAL动态链接库文件名称获取单元,根据设备标识及预定的命名规则获取相匹配的HAL动态链接库的文件名称;HAL动态链接库加载单元,从HAL动态链接库名称获取单元获取文件名称,根据文件名称从预定存储路径加载相匹配的HAL动态链接库。
其中,预定的命名规则为:模块名称.设备标识.so,模块名称为同类设备所共用的系统标识。
本发明的有益效果是:区别于现有技术的情况,本发明的基于Android系统的设备加载方法及装置通过加载待加载设备的设备驱动,进而将待加载设备的设备信息进行映射,生成映射信息;根据映射信息获取待加载设备的设备标识;通过索引信息判断是否存在与待加载设备的设备标识相匹配的HAL动态链接库,其中索引信息用于表示至少两种不同型号的同类设备的设备标识与HAL动态链接库的对应关系;若存在,则加载相匹配的HAL动态链接库;若不存在,则加载默认的HAL动态链接库。通过上述方式,本发明能够实现在Android系统下智能地去识别不同型号的同类设备,动态加载其相应的设备驱动和HAL动态链接库,使其能被正常使用。
进一步,索引信息可以采用索引列表的形式被植入,当本基于Android系统平台的设备所支持的不同型号的同类设备发生变化(例如增加新的不同型号的同类设备)时,直接修改索引列表即可进行后续扩展维护,更为方便简单。
附图说明
图1是本发明第一实施例的基于Android系统的设备加载方法的流程图;
图2是本发明第二实施例的基于Android系统的设备加载方法的流程图;
图3是本发明第三实施例的基于Android系统的设备加载方法的流程图;
图4是本发明实施例的基于Android系统的设备加载装置的结构示意图。
具体实施方式
下面结合附图和实施例对本发明进行详细说明。
如本领域技术人员所知的,Android系统包括内核层、HAL层、框架层和应用层。其中,内核层是基于Linux的设备驱动层,用于加载设备的驱动。HAL层是Goolge(谷歌)应某些厂商不希望公开源码所添加的一个适配层,能以封闭源码的方式提供设备驱动,目的就是提供框架层与内核层的一个接口。框架层用于通过HAL层调用内核层的驱动,进一步向应用层提供API(Application Programming Interface,应用程序编程接口)以实现对设备的操作。
图1是本发明第一实施例的基于Android系统的设备加载方法的流程图。需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限。如图1所示,该方法包括步骤:
步骤S101:加载待加载设备的设备驱动,进而将待加载设备的设备信息进行映射,生成映射信息;
在本实施例中,本基于Android系统平台的设备支持至少两种不同型号的同类设备。
系统上电后,内核层加载待加载设备的设备驱动,当设备驱动被成功加载后,内核层进一步将待加载设备的设备信息进行映射,生成映射信息。具体来说,当设备驱动被成功加载后,待加载设备的设备信息将映射至预定节点下。
步骤S102:根据映射信息获取待加载设备的设备标识,其中待加载设备的设备标识用于在同类设备中区分待加载设备;
在本实施例中,设备标识可以为设备名称,也可以为设备ID(Identity,身份标识),或者能区分设备的其它唯一的相关标识,在此不做限制。
步骤S103:通过索引信息判断是否存在与待加载设备的设备标识相匹配的HAL动态链接库,其中索引信息用于表示至少两种不同型号的同类设备的设备标识与HAL动态链接库的对应关系;若存在,则执行步骤S104,若不存在,则执行步骤S105。
在本实施例中,基于Android系统平台的设备同时存在同类设备的多个HAL动态链接库。具体来说,Android系统平台同时存在A型号、B型号和C型号的加速度传感器的HAL动态链接库,其相互独立存在,互不干扰。
步骤S104:加载相匹配的HAL动态链接库;
在本实施例中,当Android系统平台存在与待加载设备相匹配的HAL动态链接库时,通过函数接口(例如load函数)加载该HAL动态链接库。
步骤S105:加载默认的HAL动态链接库。
在本实施例中,当Android系统平台不存在与待加载设备相匹配的HAL动态链接库时,通过函数接口(例如load函数)加载系统默认的HAL动态链接库,以保证系统的正常运行。
图2是本发明第二实施例的基于Android系统的设备加载方法的流程图。需注意的是,若有实质上相同的结果,本发明的方法并不以图2所示的流程顺序为限。如图2所示,该方法包括步骤:
步骤S201:从至少两种不同型号的同类设备的设备驱动中选择并加载待加载设备的设备驱动,进而将待加载设备的设备信息进行映射,生成映射信息;
系统上电后,内核层从至少两种不同型号的同类设备的设备驱动中选择与待加载设备相对应的设备驱动并加载该设备驱动。其中,至少两种不同型号的同类设备的设备驱动相互独立存在,并且互不干扰。具体来说,假设Android系统平台同时存在A型号、B型号和C型号三种不同型号的加速度传感器的驱动,此时若假设待加载设备为A型号,则内核层加载A型号对应的驱动,此时若假设待加载设备为B型号,则内核层加载B型号对应的驱动,此时若假设待加载设备为A型号和B型号同时存在,则内核层同时加载A型号和B型号对应的驱动。
进一步,内核层根据与待加载设备的通信反馈结果从至少两种不同型号的同类设备的设备驱动中选择与待加载设备相对应的设备驱动。具体来说,当Android系统平台存在某一个待加载设备时,首先对该待加载设备进行通信尝试,若通信反馈结果指示有反馈,则加载该待加载设备对应的驱动,若通信反馈结果指示无反馈,则不加载驱动。当Android系统平台存在多个待加载设备时,首先对第一个待加载设备进行通信尝试,若通信反馈结果指示有反馈,则加载第一个待加载设备对应的驱动,若通信反馈结果指示无反馈,则不加载驱动;继续对第二个待加载设备进行通信尝试……依次尝试,直至完成对所有待加载设备的通信尝试。其中,若所有待加载设备的通信反馈结果均指示有反馈,则加载所有待加载设备对应的驱动;若待加载设备的通信反馈结果均指示无反馈,则不加载任何驱动;若部分待加载设备的通信反馈结果指示有反馈,则仅加载部分待加载设备对应的驱动。
内核层在正确加载待加载设备的驱动后,待加载设备的设备信息将映射至预定节点下,该预定节点的路径可以根据实际情况任意设定,例如,设定预定节点的路径为/dev/input。具体来说,预定节点为设备节点,设备节点可以理解为设备文件。其中,设备文件包括待加载设备的设备信息,具体包括设备类型(例如块设备或字符设备)、设备号(例如主设备号和次设备号)以及设备访问控制属性等。
步骤S202:根据映射信息获取待加载设备的设备标识,其中待加载设备的设备标识用于在同类设备中区分待加载设备;
在本实施例中,内核层在正确加载待加载设备的驱动后,HAL层通过函数接口打开预定节点下的设备文件,获取设备标识所在文件的文件句柄,然后根据文件句柄,再通过函数接口获取待加载设备的设备标识。具体来说,设备标识所在文件的路径与预定节点下的设备文件的路径可以不相同,例如,设定设备标识所在文件的路径为/sys/class/gsensor,HAL层通过函数接口(例如open函数)打开预定节点下的设备文件,根据函数接口(例如open函数)获取得到的设备标识所在文件的文件句柄,通过函数接口(例如ioctl函数)获取待加载设备的设备标识,从而确认待加载设备是A型号、B型号还是C型号的加速度传感器。
步骤S203:通过索引信息判断是否存在与待加载设备的设备标识相匹配的HAL动态链接库,其中索引信息用于表示至少两种不同型号的同类设备的设备标识与HAL动态链接库的对应关系;若存在,则执行步骤S204,若不存在,则执行步骤S206。
在本实施例中,通过确认索引信息中是否存在待加载设备的设备标识来判断是否存在相匹配的HAL动态链接库,若存在待加载设备的设备标识,且存在相匹配的HAL动态链接库,则表示存在与待加载设备的设备标识相匹配的HAL动态链接库,执行步骤S204,若不存在待加载设备的设备标识,或者,虽存在待加载设备的设备标识但不存在相匹配的HAL动态链接库,则表示不存在与待加载设备的设备标识相匹配的HAL动态链接库,执行步骤S206。
在本实施例中,索引信息包括Android系统平台支持的至少两种不同型号的同类设备的设备标识。具体来说,索引信息包括A型号、B型号和C型号的加速度传感器的设备标识,其分别为device_a,device_b和device_c。需要理解的是,设备标识可以为任意字符,此处的device_a,device_b和device_c并非为本发明的限制。若步骤S202获取得到的待加载设备的设备标识为A型号的设备标识device_a、B型号的设备标识device_b或者C型号的设备标识device_c,且Android系统平台对应存在A型号、B型号或C型号的HAL动态链接库,则判定Android系统平台存在与待加载设备相匹配的HAL动态链接库,否则判定Android系统平台不存在与待加载设备相匹配的HAL动态链接库。
步骤S204:根据设备标识及预定的命名规则获取相匹配的HAL动态链接库的文件名称;
在本实施例中,HAL动态链接库的文件名称的预定的命名规则为:模块名称.设备标识.so,其中模块名称为同类设备所共用的系统标识。具体来说,假设待加载设备为A型号的加速度传感器,则其对应的HAL动态链接库的文件名称为:gsensor.device_a.so,其中gsensor为加速度传感器的系统标识,device_a为A型号的加速度传感器的设备标识。需要理解的是,系统标识可以为任意字符,此处的gsensor并非为本发明的限制。
步骤S205:根据文件名称从预定存储路径加载相匹配的HAL动态链接库。
在本实施例中,在得到HAL动态链接库的文件名称后,将根据HAL动态链接库的预定存储路径去找该HAL动态链接库,如预定存储路径为:/system/lib/hw/模块名称.设备标识.so或者/system/lib/vendor/模块名称.设备标识.so。HAL层根据文件名称从预定存储路径加载相匹配的HAL动态链接库,具体来说,HAL层通过函数接口(例如access函数)判断上述路径下的HAL动态链接库是否存在,若存在,通过函数接口(例如load函数)加载待加载设备的HAL动态链接库,从而实现Android系统平台同时支持至少两个不同型号的同类设备的目的。
步骤S206:加载默认的HAL动态链接库。
在本实施例中,默认的HAL动态链接库的文件名称为模块名称.default.so,如其所在的路径为:/system/lib/hw/模块名称.default.so或者/system/lib/vendor/模块名称.default.so。当Android系统平台不存在待加载设备的HAL动态链接库时,通过函数接口(例如load函数)加载默认的HAL动态链接库。
图3是本发明第三实施例的基于Android系统的设备加载方法的流程图。如图3所示,图3与图2中第二实施例的主要区别在于:
步骤S301:根据设备标识从索引列表获取相匹配的HAL动态链接库的文件名称;
具体而言,在图2实施例的基础上,HAL动态链接库的文件名称根据设备标识从索引信息获取得到。其中优选地,索引信息为索引列表,其中,索引列表包括第一索引列表和第二索引列表,第一索引列表用于判断是否存在设备标识,第二索引列表用于实现HAL动态链接库的文件名称与设备标识的关联。
在本实施例中,HAL动态链接库的文件名称的命名规则为:模块名称.任意字符.so,具体来说,A型号、B型号和C型号的加速度传感器对应的HAL动态链接库的文件名称分别为:gsensor.1.so、gsensor.2.so和gsensor.3.so。需要理解的是,此处的gsensor、1、2和3并非为本发明的限制,仅用于举例。因HAL动态链接库的文件中存在有其驱动的相关设备的设备标识,通过访问HAL动态链接库,便可得到该设备标识,进一步建立HAL动态链接库的文件名称和该设备标识关联的第二索引列表。具体来说,在第二索引列表中,HAL动态链接库的文件名称gsensor.1.so与设备标识device_a相对应,也即与A型号的加速度传感器相对应;HAL动态链接库的文件名称gsensor.2.so与设备标识device_b相对应,也即与B型号的加速度传感器相对应;HAL动态链接库gsensor.3.so的文件名称与设备标识device_c相对应,也即与C型号的加速度传感器相对应。
同时,第一索引列表中包括A型号、B型号和C型号的加速度传感器的设备标识,分别为device_a,device_b和device_c。
举例来说,当Android系统获取得到的待加载设备为A型号的加速度传感器,判断第一索引列表中存在A型号的加速度传感器的设备标识device_a后,通过第二索引列表便可获取的到其相匹配的HAL动态链接库的文件名称为gsensor.1.so。
进一步,在得到HAL动态链接库的文件名称后,将根据HAL动态链接库的预定存储路径去找该HAL动态链接库,如预定存储路径为:/system/lib/hw/模块名称.任意字符.so或者/system/lib/vendor/模块名称.任意字符.so。具体来说,以A型号的加速度传感器为例,其HAL动态链接库的文件名称为gsensor.1.so,将根据HAL动态链接库的预定存储路径如/system/lib/hw/gsensor.1.so或者/system/lib/vendor/gsensor.1.so去找该文件名称为gsensor.1.so的HAL动态链接库。
可理解地,也可将预定存储路径直接在索引列表中体现出来。
可理解地,也可只建立一个索引列表,该索引列表中只需包含上述第一索引列表和第二索引列表所含的全部信息即可。当然也可理解地,还可以建立多个索引列表,通过多个索引列表之间的关联来实现。
图3所示流程图的其他步骤均已揭露于图2中,为简洁起见,此处不再赘述。
图4是本发明实施例的基于Android系统的设备加载装置的结构示意图。如图4所示,该装置包括:设备驱动加载模块10、设备标识获取模块20、判断模块30和HAL动态链接库加载模块40。
设备驱动加载模块10用于加载待加载设备的设备驱动,进而待加载设备的设备信息进行映射,生成映射信息。具体来说,设备驱动加载模块10从至少两种不同型号的同类设备的设备驱动中选择并加载待加载设备的设备驱动。
设备标识获取模块20与设备驱动加载模块10相连,从设备驱动加载模块10获取映射信息,根据映射信息获取待加载设备的设备标识,其中待加载设备的设备标识用于在同类设备中区分待加载设备。具体来说,设备标识获取模块20包括文件句柄获取单元201和设备标识获取单元202。文件句柄获取单元201与设备驱动加载模块10相连,用于读取映射信息,获取文件句柄。设备标识获取单元202与文件句柄获取单元201相连,从文件句柄获取单元201获取文件句柄,根据文件句柄,通过函数接口获取设备标识。
判断模块30与设备标识获取模块20相连。具体来说,判断模块30与设备标识获取单元202相连,从设备标识获取单元202获取待加载设备的设备标识,通过索引信息判断是否存在与待加载设备的设备标识相匹配的HAL动态链接库,其中索引信息用于表示至少两种不同型号的同类设备的设备标识与HAL动态链接库的对应关系。
HAL动态链接库加载模块40与判断模块30相连,当判断模块30判断存在与待加载设备的设备标识相匹配的HAL动态链接库时,加载相匹配的HAL动态链接库,当判断模块30判断不存在与待加载设备的设备标识相匹配的HAL动态链接库时,加载默认的HAL动态链接库。具体来说,HAL动态链接库加载模块40包括HAL动态链接库文件名称获取单元401和HAL动态链接库加载单元402。HAL动态链接库文件名称获取单元401与判断单元30相连,根据设备标识及预定的命名规则获取相匹配的HAL动态链接库的文件名称。HAL动态链接库加载单元402与HAL动态链接库文件名称获取单元401相连,从HAL动态链接库文件名称获取单元401获取文件名称,根据文件名称从预定存储路径加载相匹配的HAL动态链接库。
其中,预定的命名规则为:模块名称.设备标识.so,模块名称为同类设备所共用的系统标识。
本发明的有益效果是:区别于现有技术的情况,本发明的基于Android系统的设备加载方法及装置通过加载待加载设备的设备驱动,进而将待加载设备的设备信息映射至预定节点下;根据映射至预定节点下的设备信息获取待加载设备的设备标识;通过索引信息判断是否存在与待加载设备的设备标识相匹配的HAL动态链接库,其中索引信息用于表示至少两种不同型号的同类设备的设备标识与HAL动态链接库的对应关系;若存在,则加载相匹配的HAL动态链接库;若不存在,则加载默认的HAL动态链接库。通过上述方式,本发明能够实现在Android系统下智能地去识别不同型号的同类设备,动态加载其相应的设备驱动和HAL动态链接库,使其能正常被使用。进一步,索引信息可以采用索引列表的形式被植入,当本基于Android系统平台的设备所支持的不同型号的同类设备发生变化(例如增加新的不同型号的同类设备)时,直接修改索引列表即可进行后续扩展维护,更为方便简单。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (14)
1.一种基于Android系统的设备加载方法,其特征在于,所述方法包括以下步骤:
加载待加载设备的设备驱动,进而将所述待加载设备的设备信息进行映射,生成映射信息;
根据所述映射信息获取所述待加载设备的设备标识,其中所述待加载设备的设备标识用于在同类设备中区分所述待加载设备;
通过索引信息判断是否存在与所述待加载设备的设备标识相匹配的HAL动态链接库,其中所述索引信息用于表示至少两种不同型号的同类设备的设备标识与HAL动态链接库的对应关系;
若存在所述相匹配的HAL动态链接库,则加载所述相匹配的HAL动态链接库;
若不存在所述相匹配的HAL动态链接库,则加载默认的HAL动态链接库。
2.根据权利要求1所述的方法,其特征在于,所述加载待加载设备的设备驱动的步骤具体包括:
从至少两种不同型号的同类设备的设备驱动中选择并加载所述待加载设备的设备驱动。
3.根据权利要求2所述的方法,其特征在于,所述加载待加载设备的设备驱动的步骤具体包括:
根据与所述待加载设备的通信反馈结果从所述至少两种不同型号的同类设备的设备驱动中选择并加载所述待加载设备的设备驱动。
4.根据权利要求1所述的方法,其特征在于,所述根据所述映射信息获取所述待加载设备的设备标识的步骤具体包括:
读取所述映射信息,获取文件句柄;
根据所述文件句柄,通过函数接口获取所述设备标识。
5.根据权利要求1所述的方法,其特征在于,
所述通过索引信息判断是否存在与所述待加载设备的设备标识相匹配的HAL动态链接库的步骤具体包括:
确定所述索引信息中是否存在所述待加载设备的所述设备标识;
若存在所述设备标识,且存在所述相匹配的HAL动态链接库,则表示存在与所述待加载设备的设备标识相匹配的HAL动态链接库;
若不存在所述设备标识,或者,虽存在所述设备标识、但不存在所述相匹配的HAL动态链接库,则表示不存在与所述待加载设备的设备标识相匹配的HAL动态链接库。
6.根据权利要求1所述的方法,其特征在于,
所述索引信息为索引列表;
所述加载所述相匹配的HAL动态链接库的步骤具体包括:
根据所述设备标识从所述索引列表获取所述相匹配的HAL动态链接库的文件名称;
根据所述文件名称从预定存储路径加载所述相匹配的HAL动态链接库。
7.根据权利要求6所述的方法,其特征在于,所述索引列表包括第一索引列表和第二索引列表,所述第一索引列表用于判断是否存在所述设备标识,所述第二索引列表用于实现所述HAL动态链接库的文件名称与所述设备标识的关联。
8.根据权利要求1所述的方法,其特征在于,所述加载所述相匹配的HAL动态链接库的步骤具体包括:
根据所述设备标识及预定的命名规则获取所述相匹配的HAL动态链接库的文件名称;
根据所述文件名称从预定存储路径加载所述相匹配的HAL动态链接库。
9.根据权利要求8所述的方法,其特征在于,所述预定的命名规则为:模块名称.设备标识.so,所述模块名称为所述同类设备所共用的系统标识。
10.一种基于Android系统的设备加载装置,其特征在于,所述装置包括:
设备驱动加载模块,用于加载待加载设备的设备驱动,进而将所述待加载设备的设备信息进行映射,生成映射信息;
设备标识获取模块,从所述设备驱动加载模块获取所述映射信息,根据所述映射信息获取所述待加载设备的设备标识,其中所述待加载设备的设备标识用于在同类设备中区分所述待加载设备;
判断模块,从所述设备标识获取模块获取所述待加载设备的所述设备标识,通过索引信息判断是否存在与所述待加载设备的所述设备标识相匹配的HAL动态链接库,其中所述索引信息用于表示至少两种不同型号的同类设备的设备标识与HAL动态链接库的对应关系;
HAL动态链接库加载模块,当所述判断模块判断存在与所述待加载设备的设备标识相匹配的HAL动态链接库时,加载所述相匹配的HAL动态链接库,当所述判断模块判断不存在与所述待加载设备的设备标识相匹配的HAL动态链接库时,加载默认的HAL动态链接库。
11.根据权利要求10所述的设备加载装置,其特征在于,所述设备驱动加载模块从至少两种不同型号的同类设备的设备驱动中选择并加载所述待加载设备的设备驱动。
12.根据权利要求10所述的设备加载装置,其特征在于,所述设备标识获取模块包括:
文件句柄获取单元,用于读取所述映射信息,获取文件句柄;
设备标识获取单元,从所述文件句柄获取单元获取所述文件句柄,根据所述文件句柄,通过函数接口获取所述设备标识。
13.根据权利要求10所述的设备加载装置,其特征在于,所述HAL动态链接库加载模块包括:
HAL动态链接库文件名称获取单元,根据所述设备标识及预定的命名规则获取所述相匹配的HAL动态链接库的文件名称;
HAL动态链接库加载单元,从所述HAL动态链接库名称获取单元获取所述文件名称,根据所述文件名称从预定存储路径加载所述相匹配的HAL动态链接库。
14.根据权利要求13所述的设备加载装置,其特征在于,所述预定的命名规则为:模块名称.设备标识.so,所述模块名称为所述同类设备所共用的系统标识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310046037.3A CN103970559B (zh) | 2013-02-05 | 2013-02-05 | 一种基于Android系统的设备加载方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310046037.3A CN103970559B (zh) | 2013-02-05 | 2013-02-05 | 一种基于Android系统的设备加载方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103970559A true CN103970559A (zh) | 2014-08-06 |
CN103970559B CN103970559B (zh) | 2017-09-29 |
Family
ID=51240097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310046037.3A Active CN103970559B (zh) | 2013-02-05 | 2013-02-05 | 一种基于Android系统的设备加载方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103970559B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636128A (zh) * | 2014-09-10 | 2015-05-20 | 深圳光启创新技术有限公司 | 操作系统中控制硬件设备的方法和模块 |
WO2016026449A1 (zh) * | 2014-08-20 | 2016-02-25 | 深圳光启智能光子技术有限公司 | 一种操作系统中控制硬件设备的方法和模块 |
CN106354498A (zh) * | 2016-08-25 | 2017-01-25 | 睿芯信息科技(上海)有限公司 | 一种Linux系统加载设备的方法 |
CN108469967A (zh) * | 2017-02-23 | 2018-08-31 | 银联数据服务有限公司 | 一种交易数据处理方法和交易系统 |
CN109144877A (zh) * | 2018-08-31 | 2019-01-04 | 北京奇艺世纪科技有限公司 | 一种应用检测方法和装置 |
CN109656571A (zh) * | 2018-09-27 | 2019-04-19 | 深圳壹账通智能科技有限公司 | 加载方法、装置、终端及计算机可读存储介质 |
CN109766197A (zh) * | 2018-12-29 | 2019-05-17 | 数源科技股份有限公司 | 一种基于Android系统的4G模块稳定工作方法 |
WO2019095968A1 (zh) * | 2017-11-20 | 2019-05-23 | 华为技术有限公司 | 一种动态加载方法、目标文件的制作方法及装置 |
CN110378081A (zh) * | 2019-06-06 | 2019-10-25 | 厦门网宿有限公司 | 一种加壳动态链接库加载方法及装置 |
CN110413327A (zh) * | 2019-07-16 | 2019-11-05 | 阿里巴巴集团控股有限公司 | 一种基于硬件抽象层的硬件驱动方法和装置 |
CN112859753A (zh) * | 2021-01-19 | 2021-05-28 | 深圳市汇川技术股份有限公司 | 数控系统二次开发方法、装置、设备及可读存储介质 |
WO2021232887A1 (zh) * | 2020-05-22 | 2021-11-25 | 中兴通讯股份有限公司 | Hpack动态表获取方法、通信设备、核心网系统及存储介质 |
CN113835768A (zh) * | 2021-11-29 | 2021-12-24 | 北京鲸鲮信息系统技术有限公司 | 一种Android混合HAL的管理方法及系统 |
CN113986858A (zh) * | 2021-12-24 | 2022-01-28 | 北京鲸鲮信息系统技术有限公司 | Linux兼容安卓系统的共享文件操作方法和装置 |
CN114077460A (zh) * | 2021-04-07 | 2022-02-22 | 北京鲸鲮信息系统技术有限公司 | 软件操作系统调用Android动态库HAL接口的方法、设备及介质 |
CN114077462A (zh) * | 2021-04-07 | 2022-02-22 | 北京鲸鲮信息系统技术有限公司 | 软件操作系统调用Android HIDL接口的方法、装置、设备及介质 |
CN114721730A (zh) * | 2021-01-05 | 2022-07-08 | 北京小米移动软件有限公司 | 图像采集部件识别方法、图像采集部件识别装置及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001037095A1 (en) * | 1999-11-14 | 2001-05-25 | Clicknet Software, Inc. | Method and system for intercepting an application program interface |
CN102147754A (zh) * | 2011-04-01 | 2011-08-10 | 奇智软件(北京)有限公司 | 一种驱动的自动备份方法和装置 |
CN102662665B (zh) * | 2012-03-29 | 2015-04-22 | 福州瑞芯微电子有限公司 | 在安卓系统上实现支持各种传感器的输入子系统 |
-
2013
- 2013-02-05 CN CN201310046037.3A patent/CN103970559B/zh active Active
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10599493B2 (en) | 2014-08-20 | 2020-03-24 | Kuang-Chi Intelligent Photonic Technology Ltd. | Method and module in operating system for controlling hardware device |
WO2016026449A1 (zh) * | 2014-08-20 | 2016-02-25 | 深圳光启智能光子技术有限公司 | 一种操作系统中控制硬件设备的方法和模块 |
CN104636128B (zh) * | 2014-09-10 | 2018-03-02 | 深圳光启智能光子技术有限公司 | 操作系统中控制硬件设备的方法和模块 |
CN104636128A (zh) * | 2014-09-10 | 2015-05-20 | 深圳光启创新技术有限公司 | 操作系统中控制硬件设备的方法和模块 |
CN106354498A (zh) * | 2016-08-25 | 2017-01-25 | 睿芯信息科技(上海)有限公司 | 一种Linux系统加载设备的方法 |
CN106354498B (zh) * | 2016-08-25 | 2020-05-08 | 睿芯信息科技(上海)有限公司 | 一种Linux系统加载设备的方法 |
CN108469967A (zh) * | 2017-02-23 | 2018-08-31 | 银联数据服务有限公司 | 一种交易数据处理方法和交易系统 |
US10908925B2 (en) | 2017-11-20 | 2021-02-02 | Huawei Technologies Co., Ltd. | Dynamic loading method, and target file creation method and apparatus |
WO2019095968A1 (zh) * | 2017-11-20 | 2019-05-23 | 华为技术有限公司 | 一种动态加载方法、目标文件的制作方法及装置 |
CN109144877A (zh) * | 2018-08-31 | 2019-01-04 | 北京奇艺世纪科技有限公司 | 一种应用检测方法和装置 |
CN109656571A (zh) * | 2018-09-27 | 2019-04-19 | 深圳壹账通智能科技有限公司 | 加载方法、装置、终端及计算机可读存储介质 |
CN109766197A (zh) * | 2018-12-29 | 2019-05-17 | 数源科技股份有限公司 | 一种基于Android系统的4G模块稳定工作方法 |
CN110378081A (zh) * | 2019-06-06 | 2019-10-25 | 厦门网宿有限公司 | 一种加壳动态链接库加载方法及装置 |
CN110413327A (zh) * | 2019-07-16 | 2019-11-05 | 阿里巴巴集团控股有限公司 | 一种基于硬件抽象层的硬件驱动方法和装置 |
CN110413327B (zh) * | 2019-07-16 | 2022-07-19 | 创新先进技术有限公司 | 一种基于硬件抽象层的硬件驱动方法和装置 |
WO2021232887A1 (zh) * | 2020-05-22 | 2021-11-25 | 中兴通讯股份有限公司 | Hpack动态表获取方法、通信设备、核心网系统及存储介质 |
CN114721730A (zh) * | 2021-01-05 | 2022-07-08 | 北京小米移动软件有限公司 | 图像采集部件识别方法、图像采集部件识别装置及存储介质 |
CN112859753B (zh) * | 2021-01-19 | 2022-03-25 | 深圳市汇川技术股份有限公司 | 数控系统二次开发方法、装置、设备及可读存储介质 |
CN112859753A (zh) * | 2021-01-19 | 2021-05-28 | 深圳市汇川技术股份有限公司 | 数控系统二次开发方法、装置、设备及可读存储介质 |
CN114077460A (zh) * | 2021-04-07 | 2022-02-22 | 北京鲸鲮信息系统技术有限公司 | 软件操作系统调用Android动态库HAL接口的方法、设备及介质 |
CN114077462A (zh) * | 2021-04-07 | 2022-02-22 | 北京鲸鲮信息系统技术有限公司 | 软件操作系统调用Android HIDL接口的方法、装置、设备及介质 |
CN114077460B (zh) * | 2021-04-07 | 2024-03-26 | 北京字节跳动网络技术有限公司 | 软件操作系统调用Android动态库HAL接口的方法、设备及介质 |
CN113835768A (zh) * | 2021-11-29 | 2021-12-24 | 北京鲸鲮信息系统技术有限公司 | 一种Android混合HAL的管理方法及系统 |
CN113986858A (zh) * | 2021-12-24 | 2022-01-28 | 北京鲸鲮信息系统技术有限公司 | Linux兼容安卓系统的共享文件操作方法和装置 |
CN113986858B (zh) * | 2021-12-24 | 2022-06-03 | 北京鲸鲮信息系统技术有限公司 | Linux兼容安卓系统的共享文件操作方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103970559B (zh) | 2017-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103970559A (zh) | 一种基于Android系统的设备加载方法及装置 | |
CN102160037B (zh) | 只需设计一次就能在任何平台应用的移动应用开发框架 | |
CN101432690B (zh) | Bios配置更新技术 | |
CN109726067B (zh) | 一种进程监控方法以及客户端设备 | |
CN103399814B (zh) | 自动化测试的方法及装置 | |
CN107958365B (zh) | 物料信息变更方法、装置、存储介质及电子设备 | |
CN110162464A (zh) | Mcok测试方法及系统、电子设备及可读存储介质 | |
CN110515647A (zh) | 一种静态资源管理方法、装置、设备和存储介质 | |
CN106933754A (zh) | 一种usb驱动识别方法及装置 | |
CN112463256A (zh) | 确定配置文件的方法、系统、电子设备及存储介质 | |
KR102277181B1 (ko) | 철도 설비용 호환형 제어장치 및 이를 이용한 응용소프트웨어의 호환 방법 | |
CN101667133B (zh) | 固件更新方法和使用该方法更新固件的芯片 | |
CN107992379A (zh) | 一种读取数据信息的方法、移动终端及计算机可读介质 | |
CN105493033A (zh) | 声明性配置元素 | |
CN107491316A (zh) | 基板管理控制器的扩展方法、装置及电子设备 | |
CN104461603A (zh) | 一种信息处理方法及电子设备 | |
KR20150020924A (ko) | 서버 장치 및 그의 오토사 관련 서비스 제공 방법 | |
CN110334031A (zh) | 内存分配代码检测方法、装置、计算机设备及存储介质 | |
CN113590225B (zh) | 贴图检测方法、装置、电子设备及存储介质 | |
CN106778270B (zh) | 一种恶意应用程序的检测方法及系统 | |
US20210303132A1 (en) | Electronic device and method for controlling the electronic device | |
CN112015452B (zh) | 一种闸机系统的固件升级方法、装置及闸机系统 | |
CN105681927A (zh) | 应用排序方法、移动终端、智能电视及系统 | |
CN103383646B (zh) | 一种Groovy脚本加载方法及装置 | |
CN106339243A (zh) | 配置处理方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |