一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

软件操作系统调用Android动态库HAL接口的方法、设备及介质与流程

2022-02-24 20:07:20 来源:中国专利 TAG:
软件操作系统调用android动态库hal接口的方法、设备及介质1.本发明是在申请号为202110373360.6,发明名称为《linux系统调用androidhal动态库的方法、装置及存储介质》的优先权的基础上的继续申请,其全部内容通过引用结合在本发明中。
技术领域
:2.本发明涉及计算机
技术领域
:,具体提供一种软件操作系统调用android动态库hal接口的方法、设备及介质。
背景技术
::3.android是一种基于linux内核的操作系统(operatingsystem),其广泛应用于手机和平板电脑(tabletpc)等移动设备。android的系统架构从上到下主要是系统应用层(systemapps)、框架层(framework)、硬件抽象层(hardwareabstractionlayer,hal)和linux内核层(linuxkernel)。其中,硬件抽象层为android提供了虚拟硬件平台,其可以对linux内核层进行封装并向上提供接口,屏蔽android底层的实现细节。android硬件抽象层hal的接口(androidhal接口)主要包括动态库直通式(passthrough)hal接口(android动态库hal接口)和binder跨进程式接口(androidhidl接口)等。4.目前由于android广泛应用于不同类型的移动设备,导致一部分硬件设备供应商仅提供适用于android的硬件驱动程序,同时由于其他软件操作系统如基于linux内核的操作系统无法兼容androidhal接口,导致其他软件操作系统无法在基于androidhal的移动设备上正常运行,从而极大地限制了其他软件操作系统在这类移动设备上的应用前景。5.相应地,本领域需要一种软件操作系统调用androidhal接口的方案来解决上述问题。技术实现要素:6.为了克服上述缺陷,提出了本发明,以提供解决或至少部分地解决如何使除android以外其他软件操作系统兼容androidhal接口,以使这些软件操作系统能够在基于androidhal的设备上正常运行的技术问题的软件操作系统调用android动态库hal接口的方法、设备及介质。7.在第一方面,提供一种软件操作系统调用android动态库hal接口的方法,应用于运行在基于androidhal的设备上的软件操作系统,所述方法包括:8.当软件操作系统的软件进程调用所述软件操作系统的封装库中任意一个函数方法function时,控制所述软件进程调用所述软件操作系统的封装库,并在所述封装库初始化时调用预设的兼容链接器;9.基于所述兼容链接器调用所述androidhal的封装库中对应的函数方法function,以完成软件操作系统对android动态库hal接口的调用。10.在上述软件操作系统调用android动态库hal接口的方法的一个技术方案中,当所述androidhal的封装库中的函数方法function在运行时需要调用所述设备加载的android的c基础库中的其他目标函数方法function时,“基于所述兼容链接器调用所述androidhal的封装库中的函数方法function”的步骤进一步包括:11.判断所述android的c基础库中的所述其他目标函数方法function与所述软件操作系统的c基础库中的所述其他目标函数方法function是否存在冲突;12.若存在冲突,则基于所述兼容链接器调用所述软件操作系统的c基础库中的所述其他目标函数方法function;13.若不存在冲突,则基于所述兼容链接器调用所述android的c基础库中的所述其他目标函数方法function。14.在上述软件操作系统调用android动态库hal接口的方法的一个技术方案中,“基于所述兼容链接器调用所述软件操作系统的c基础库中的所述其他目标函数方法function”的步骤具体包括:15.基于所述兼容链接器并通过hook方式调用所述软件操作系统的c基础库中的所述其他目标函数方法function。16.在上述软件操作系统调用android动态库hal接口的方法的一个技术方案中,“控制所述软件进程调用所述软件操作系统的封装库”的步骤具体包括:17.控制所述软件进程通过链接动态库的方式调用所述软件操作系统的封装库;18.和/或,19.所述androidhal的封装库中的函数方法function是所述androidhal的封装库从所述设备加载的android的c基础库中调用到的函数方法function;20.和/或,21.所述软件操作系统是linux操作系统,所述linux操作系统的封装库是linuxopengles封装库,所述androidhal的封装库是androidhalopengles封装库。22.在上述软件操作系统调用android动态库hal接口的方法的一个技术方案中,在“控制所述软件进程调用所述软件操作系统的封装库”的步骤之前,所述方法还包括:23.对所述软件操作系统与所述androidhal进行资源隔离,以使所述软件操作系统与所述androidhal在所述设备上分别独立运行。24.在上述软件操作系统调用android动态库hal接口的方法的一个技术方案中,“对所述软件操作系统与所述androidhal进行资源隔离”的步骤具体包括:25.基于namespace机制创建隔离容器并在所述隔离容器内运行所述软件操作系统或所述androidhal。26.在上述软件操作系统调用android动态库hal接口的方法的一个技术方案中,“基于namespace机制创建隔离容器并在所述隔离容器内运行所述软件操作系统或所述androidhal”的步骤具体包括:27.在启动所述设备时,若首个用户态进程是androidhal进程,则启动所述androidhal并在所述androidhal启动完成后基于namespace机制创建隔离容器;28.在所述隔离容器内启动所述软件操作系统,以在所述隔离容器内运行所述软件操作系统。29.在上述软件操作系统调用android动态库hal接口的方法的一个技术方案中,“基于namespace机制创建隔离容器并在所述隔离容器内运行所述软件操作系统或所述androidhal”的步骤具体包括:30.在启动所述设备时,若首个用户态进程是软件进程,则启动所述软件操作系统的非核心服务并在所述非核心服务启动完成后基于namespace机制创建隔离容器;31.在所述隔离容器内启动所述androidhal,以在所述隔离容器内运行所述androidhal;32.在所述androidhal启动完成后继续启动所述软件操作系统的核心服务。33.在第二方面,提供一种计算机设备,该计算机设备包括处理器和存储装置,所述存储装置适于存储多条程序代码,所述程序代码适于由所述处理器加载并运行以执行上述软件操作系统调用android动态库hal接口的方法的技术方案中任一项技术方案所述的软件操作系统调用android动态库hal接口的方法。34.在第三方面,提供一种计算机可读存储介质,该计算机可读存储介质其中存储有多条程序代码,所述程序代码适于由处理器加载并运行以执行上述软件操作系统调用android动态库hal接口的方法的技术方案中任一项技术方案所述的软件操作系统调用android动态库hal接口的方法。35.本发明上述一个或多个技术方案,至少具有如下一种或多种有益效果:36.在实施本发明的技术方案中,软件操作系统调用android动态库hal接口的方法可以应用于运行在基于androidhal的设备上的软件操作系统,其中,软件操作系统指的是除android以外其他的软件操作系统如基于linux内核的操作系统。由于android的c基础库(如bionic库)与软件操作系统的c基础库(如glibc库)不兼容,导致使用软件操作系统的c基础库的编译出的程序不能正常地动态链接到android的c基础库,因此,当基于androidhal的设备的androidhal接口采用的是android动态库hal接口时软件操作系统将无法正常地调用android动态库hal接口。对此,根据本发明实施例的方法,在基于androidhal的设备上运行软件操作系统时可以控制软件操作系统的软件进程调用软件操作系统的封装库,并在封装库初始化时调用预设的兼容链接器,进而基于兼容链接器调用androidhal的封装库中的函数方法function,以完成软件操作系统对android动态库hal接口的调用。也就是说,当软件操作系统想要调用某个函数方法function时,可以直接调用软件操作系统自己的封装库,这个封装库初始化时会调用预设的兼容链接器,进而通过这个兼容链接器再调用androidhal的封装库中的函数方法function,使得软件操作系统通过调用自己的封装库的某个函数方法function,真正调用到androidhal的封装库中的函数方法function。其中,androidhal的封装库中的这个函数方法function是androidhal的封装库从android的c基础库调用到的。可见,通过预设的兼容链接器实现了软件操作系统对androidhal的封装库中函数方法function的调用,基于这个兼容链接器实现了软件操作系统对android动态库hal接口的接口兼容,保证软件操作系统能够正常地运行在基于androidhal的设备上,克服了现有技术中由于软件操作系统无法兼容android动态库hal接口,导致软件操作系统无法在基于androidhal的设备上正常运行的缺陷。附图说明37.参照附图,本发明的公开内容将变得更易理解。本领域技术人员容易理解的是:这些附图仅仅用于说明的目的,而并非意在对本发明的保护范围组成限制。其中:38.图1是根据本发明的一个实施例的软件操作系统调用android动态库hal接口的方法的主要步骤流程示意图;39.图2是根据本发明的另一个实施例的软件操作系统调用android动态库hal接口的方法的主要操作流程示意图;40.图3是根据本发明的一个实施例的对软件操作系统与androidhal进行资源隔离的方法的主要操作流程示意图;41.图4是根据本发明的另一个实施例的对软件操作系统与androidhal进行资源隔离的方法的主要操作流程示意图。具体实施方式42.下面参照附图来描述本发明的一些实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。43.在本发明的描述中,“模块”、“处理器”可以包括硬件、软件或者两者的组合。一个模块可以包括硬件电路,各种合适的感应器,通信端口,存储器,也可以包括软件部分,比如程序代码,也可以是软件和硬件的组合。处理器可以是中央处理器、微处理器、数字信号处理器或者其他任何合适的处理器。处理器具有数据和/或信号处理功能。处理器可以以软件方式实现、硬件方式实现或者二者结合方式实现。非暂时性的计算机可读存储介质包括任何合适的可存储程序代码的介质,比如磁碟、硬盘、光碟、闪存、只读存储器、随机存取存储器等等。44.这里先解释本发明涉及到的一些术语。45.软件操作系统指的是基于计算机编程语言编写的操作系统(operatingsystem),即计算机管理控制程序。在本实施例中软件操作系统可以是除android以外其他的操作系统。在一个实施方式中软件操作系统可以是linux操作系统,该linux操作系统指的是基于linux内核的操作系统,即linux系统。46.android动态库hal接口指的是android硬件抽象层hal的接口(androidhal接口)中的动态库直通式(passthrough)hal接口。而调用androidhal动态库实际上就是调用android动态库hal接口。47.namespace机制指的是一种基于linux内核的资源隔离机制,每个namespace(容器)下的资源对于其他namespace下的资源都是透明,不同namespace可以同时存在相同进程号的进程,由于这些进程属于不同的namespace,因此不会产生冲突。在用户态每个用户只能看到属于自己的namespace中的进程。其中,用户态(usermode)指的是进程在执行用户自己的程序代码时的运行状态,此时处理器在特权级最低的用户代码中运行;相应的,内核态指的是进程陷入linux内核的程序代码时的运行状态,此时处理器处于特权级最高的内核代码中运行。48.c基础库指的是基于c语言(计算机编程语言)的基础库,即基础c库,该基础库内包含使操作系统运行必不可少的函数方法function。android的c基础库包含使android运行必不可少的函数方法function,软件操作系统如linux操作系统的c基础库包含使软件操作系统运行必不可少的函数方法function。android的c基础库包括但不限于:bionic。当软件操作系统是linux操作系统时linux操作系统的c基础库包括但不限于:glibc。49.函数方法function指的是一段可以通过名字或符号进行调用程序代码,这段程序代码能够传递和/或处理数据。此外,函数方法function也可以描述成符号function或直接描述成function。50.软件进程(process)是软件操作系统程序的执行实体。当软件操作系统是linux操作系统时软件进程可以是linux进程。51.参阅附图1,图1是根据本发明的一个实施例的软件操作系统调用android动态库hal接口的方法的主要步骤流程示意图,该方法可以应用于运行在基于androidhal的设备上的软件操作系统,该设备指的是能够加载并运行计算机程序代码的设备,该设备包括但不限于计算机设备、手机和平板电脑等。如图1所示,本发明实施例中的软件操作系统调用android动态库hal接口的方法主要包括下列步骤s101和步骤s102。52.步骤s101:当软件操作系统的软件进程调用软件操作系统的封装库中任意一个函数方法function时,控制软件操作系统的软件进程调用软件操作系统的封装库,并在封装库初始化时调用预设的兼容链接器。53.由于android的c基础库(如bionic库)与软件操作系统的c基础库(如glibc库)不兼容,导致使用软件操作系统的c基础库的编译出的程序(软件进程)不能正常地动态链接到android的c基础库,因此,当基于androidhal的设备的androidhal接口采用的是android动态库hal接口时软件操作系统将无法正常地调用android动态库hal接口。也就是说,当软件操作系统运行在基于androidhal的设备上时,软件操作系统无法直接调用androidhal的封装库中的函数方法function。而在本实施例中当软件操作系统想要调用androidhal的封装库中的目标函数方法function时,可以控制软件操作系统直接调用软件操作系统自己的封装库中与这个目标函数方法function对应的函数方法function,这个封装库初始化时会调用预设的兼容链接器,进而通过这个兼容链接器再调用androidhal的封装库中的目标函数方法function,从而使得软件操作系统在调用软件操作系统的封装库中任意一个函数方法function时可以基于兼容链接器真正调用到androidhal的封装库中对应的函数方法function。例如,当linux操作系统需要调用androidhal接口中的android动态库hal接口与设备的硬件进行通信比如与设备的音频器件进行通信获取音频数据时可以控制linux进程调用linux操作系统的封装库,通过调用这个封装库去调用预设的兼容链接器,进而基于兼容链接器与设备的音频器件进行通信获取音频数据。54.兼容链接器会生成符号地址映射表,这个符号地址映射表包含了软件进程想要调用的函数方法function的方法地址,通过查询这个符号地址映射表就可以获得这个方法地址,而这个方法地址能够指向androidhal的封装库中的函数方法function。也就是说,兼容链接器通过上述方法指定的模式打开androidhal的封装库,调用androidhal的封装库中对应的函数方法function。55.软件操作系统的封装库是软件操作系统的动态库,在一个实施方式中可以控制软件进程通过链接动态库的方式调用软件操作系统的封装库。在本实施方式中可以采用软件
技术领域
:中常规的链接动态库的方式去调用软件操作系统的封装库,在此不对链接动态库的方式进行具体说明。56.步骤s102:基于兼容链接器调用androidhal的封装库中对应的函数方法function,以完成软件操作系统对android动态库hal接口的调用。57.由于兼容链接器生成的符号地址映射表包含了软件进程想要调用的函数方法function的方法地址,而这个方法地址能够指向androidhal的封装库中的函数方法function,因此,基于这个方法地址就可以从androidhal的封装库中调用到相应的函数方法function,从而使得软件操作系统通过调用自己封装库的某个函数方法function,真正调用到androidhal的封装库中相应的函数方法function,完成对android动态库hal接口的调用。在本实施例中androidhal的封装库中的函数方法function可以是androidhal的封装库从设备加载的android的c基础库中调用到的函数方法function。58.基于上述步骤s101至步骤s102,通过预设的兼容链接器实现了软件操作系统对androidhal的封装库中函数方法function的调用,基于这个兼容链接器实现了软件操作系统对android动态库hal接口的接口兼容,保证软件操作系统能够正常地运行在基于androidhal的设备上,克服了现有技术中由于软件操作系统无法兼容android动态库hal接口,导致软件操作系统无法在基于androidhal的设备上正常运行的缺陷。59.下面对步骤s102作进一步说明。60.在上述步骤s102的一个实施方式中,如果androidhal的封装库中的函数方法function在运行时不需要调用设备加载的android的c基础库中的其他目标函数方法function,那么在基于兼容链接器调用androidhal的封装库中的函数方法function时,可以直接调用androidhal的封装库中的这个函数方法function;如果androidhal的封装库中的函数方法function在运行时需要调用设备加载的android的c基础库中的其他目标函数方法function,那么在基于兼容链接器调用androidhal的封装库中的函数方法function时,可以通过下列步骤11至步骤13去调用上述需要调用的其他目标函数方法function:61.步骤11:判断android的c基础库中的上述其他目标函数方法function与软件操作系统的c基础库中的上述其他目标函数方法function是否存在冲突;如果存在冲突,则转至步骤12;如果不存在冲突则转至步骤13。62.冲突指的是android的c基础库中的目标函数方法function与软件操作系统的c基础库中的目标函数方法function的方法实现存在差异。如果在同一进程中,androidhal和软件操作系统调用各自c基础库中的目标函数方法function,会导致进程崩溃,从而导致软件操作系统无法在设备上正常运行。例如,android的c基础库和linux操作系统的c基础库中的线程局部存储(threadlocalstorage,tls)在内存位置上存在差异,会导致这两个线程局部存储存在冲突。63.步骤12:基于兼容链接器调用软件操作系统的c基础库中的目标函数方法function。在一个实施方式中可以基于兼容链接器并通过hook方式调用软件操作系统的c基础库中的上述其他目标函数方法function。hook是一种修改链接器链接封装库的方式,通过hook可以修改兼容链接器链接封装库的行为,使得兼容链接器能够调用软件操作系统的c基础库中的目标函数方法function。64.步骤13:基于兼容链接器调用android的c基础库中的目标函数方法function。65.通过上述步骤11至步骤13,当android的c基础库中的目标函数方法function与软件操作系统的c基础库中的目标函数方法function存在冲突时可以使软件操作系统调用自己c基础库中的目标函数方法function,避免在调用android的c基础库中的目标函数方法function导致进程崩溃,无法正常运行。66.参阅附图2,以linuxapp(基于linux操作系统的应用程序)需要调用androidhalopengles封装库中的某个函数方法function为例,对linux操作系统调用android动态库hal接口的方法进行具体说明。67.通过linuxapp的linux进程调用linuxopengles封装库,linuxopengles封装库在初始化时会调用兼容链接器,兼容链接器调用androidhalopengles封装库中的函数方法function,同时兼容链接器会将调用到的函数方法function返回至linuxopengles封装库,使得linux进程能够真正调用到androidhalopengles封装库中的这个函数方法function。68.当这个函数方法function在运行时需要调用android的c基础库中的其他目标函数方法function时如果linux操作系统的c基础库(linuxglibc)与用android的c基础库(androidbionic)中的这个目标函数方法function存在冲突,则可以基于兼容链接器从linuxglibc中调用目标函数方法function,同时兼容链接器会将调用到的目标函数方法function返回至linuxopengles封装库;如果不存在冲突,则可以基于兼容链接器从androidbionic中调用目标函数方法function,同时兼容链接器会将调用到的目标函数方法function返回至linuxopengles封装库。69.此外,linuxapp需要调用linux操作系统的c基础库中的某个函数方法function时linux进程可以直接调用linuxglibc中的函数方法function。70.进一步,在根据本发明的另一个软件操作系统调用android动态库hal接口的方法的实施例中,该软件操作系统调用android动态库hal接口的方法不仅可以包括上述步骤s101至步骤s102,在执行上述步骤s101和步骤s102之前还可以包括步骤s100,通过执行步骤s100可以对软件操作系统与androidhal进行资源隔离以使软件操作系统与androidhal在设备上分别独立运行。其中,资源隔离包括但不限于:运行环境隔离和文件隔离等。通过对软件操作系统与androidhal进行资源隔离,可以保证在基于androidhal的设备上运行软件操作系统时软件操作系统与androidhal不会产生冲突与相互干扰,从而保证软件操作系统的正常运行。71.在本实施例的一个实施方式中可以通过更改根目录的方式对软件操作系统与androidhal进行资源隔离,例如使用chroot(changerootdirectory)命令更改软件操作系统或androidhal的根目录,以实现对软件操作系统与androidhal的资源隔离。而在本实施例的另一个实施方式中可以基于namespace机制创建隔离容器并在隔离容器内运行软件操作系统或androidhal,即将一个系统(软件操作系统或androidhal)放在隔离容器内运行,将另一个系统(androidhal或软件操作系统)放在隔离容器以外运行,即使在软件操作系统和androidhal中同时运行相同进程号的进程,由于一个系统的进程是在隔离容器内运行,因此软件操作系统和androidhal也不会产生冲突,二者均可以正常运行。72.设备的启动过程主要包括bootloader引导阶段、linux内核启动阶段和软件/androidhal启动阶段。其中,bootloader引导阶段和linux内核启动阶段分别与常规的android启动方法中的bootloader引导阶段和linux内核启动阶段相同,而本实施方式与常规的android启动方法的主要区别在于软件/androidhal启动阶段。在本实施方式中,当linux内核启动阶段完成后首个内核态进程转换成用户态进程进入软件/androidhal启动阶段,在软件/androidhal启动阶段中可以基于namespace机制创建隔离容器并在隔离容器内启动软件操作系统或androidhal,以便在隔离容器内运行软件操作系统或androidhal。73.在一个实施方式中如果首个用户态进程是androidhal进程,则可以基于namespace机制创建隔离容器并通过下列步骤21至步骤22在隔离容器内启动并运行软件操作系统:74.步骤21:在启动设备时,若首个用户态进程是androidhal进程,则启动androidhal并在androidhal启动完成后基于namespace机制创建隔离容器(容器service)。在本实施方式中可以采用计算机
技术领域
:中常规的androidhal启动方法对androidhal进行启动,例如挂载android的基础文件系统、system分区、vendor分区等,同时启动androidservicemanager、androidhalservice、androidnativeservice等服务。75.步骤22:在隔离容器内启动软件操作系统,以在隔离容器内运行软件操作系统。在本实施方式中同样可以采用计算机
技术领域
:中常规的软件启动方法在隔离容器内启动软件操作系统。参阅附图3,若软件操作系统是linux操作系统,那么在隔离容器内启动linux操作系统包括但不限于:挂载linux操作系统的基础文件系统、dbus等,同时启动linuxservice等服务。76.通过上述步骤21至步骤22,可以在隔离容器内启动并运行软件操作系统,实现对androidhal与软件操作系统的资源隔离。77.在一个实施方式中如果首个用户态进程是linux进程,则可以基于namespace机制创建隔离容器并通过下列步骤31至步骤33在隔离容器内启动并运行androidhal:78.步骤31:在启动设备时,若首个用户态进程是软件进程,则启动软件操作系统的非核心服务并在非核心服务启动完成后基于namespace机制创建隔离容器。79.在本实施方式中可以采用计算机
技术领域
:中常规的软件启动方法对软件操作系统进行启动,但由于软件操作系统的核心服务需要在设备完成硬件初始化之后进行启动,因此,在本实施例中可以先启动软件操作系统的非核心服务,在完成androidhal启动后再启动软件操作系统的核心服务,以保证软件操作系统能够成功启动,正常运行。参阅附图4,若软件操作系统是linux操作系统,则可以启动linux操作系统的非核心服务linuxservice并在非核心服务linuxservice启动完成后基于namespace机制创建隔离容器,即基于容器service创建android容器。80.步骤32:在隔离容器内启动androidhal,以在隔离容器内运行androidhal。在本实施方式中可以采用计算机
技术领域
:中常规的androidhal启动方法对androidhal进行启动,例如挂载android的基础文件系统、system分区、vendor分区等,同时启动androidservicemanager、androidhalservice、androidnativeservice等服务。81.步骤33:在androidhal启动完成后继续启动软件操作系统的核心服务。82.通过上述步骤31至步骤33,可以在隔离容器内启动并运行androidhal,实现对androidhal与软件操作系统的资源隔离。83.需要指出的是,尽管上述实施例中将各个步骤按照特定的先后顺序进行了描述,但是本领域技术人员可以理解,为了实现本发明的效果,不同的步骤之间并非必须按照这样的顺序执行,其可以同时(并行)执行或以其他顺序执行,这些变化都在本发明的保护范围之内。84.本领域技术人员能够理解的是,本发明实现上述一实施例的方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器、随机存取存储器、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。85.进一步,本发明还提供了一种计算机设备。在根据本发明的一个计算机设备实施例中,计算机设备包括处理器和存储装置,存储装置可以被配置成存储执行上述方法实施例的软件操作系统调用android动态库hal接口的方法的程序,处理器可以被配置成用于执行存储装置中的程序,该程序包括但不限于执行上述方法实施例的软件操作系统调用android动态库hal接口的方法的程序。为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该计算机设备可以是包括各种电子设备形成的控制装置设备。86.进一步,本发明还提供了一种计算机可读存储介质。在根据本发明的一个计算机可读存储介质实施例中,计算机可读存储介质可以被配置成存储执行上述方法实施例的软件操作系统调用android动态库hal接口的方法的程序,该程序可以由处理器加载并运行以实现上述软件操作系统调用android动态库hal接口的方法。为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该计算机可读存储介质可以是包括各种电子设备形成的存储装置设备,可选的,本发明实施例中计算机可读存储介质是非暂时性的计算机可读存储介质。87.至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献