WO2023124968A1 - Method for calling android dynamic library hal interface by software operating system, device and medium - Google Patents
Method for calling android dynamic library hal interface by software operating system, device and medium Download PDFInfo
- Publication number
- WO2023124968A1 WO2023124968A1 PCT/CN2022/138657 CN2022138657W WO2023124968A1 WO 2023124968 A1 WO2023124968 A1 WO 2023124968A1 CN 2022138657 W CN2022138657 W CN 2022138657W WO 2023124968 A1 WO2023124968 A1 WO 2023124968A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- operating system
- android
- library
- hal
- software operating
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 177
- 238000004806 packaging method and process Methods 0.000 claims abstract description 25
- 230000006870 function Effects 0.000 claims description 165
- 238000003860 storage Methods 0.000 claims description 24
- 238000005538 encapsulation Methods 0.000 claims description 13
- 238000002955 isolation Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 239000011664 nicotinic acid Substances 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 239000011230 binding agent Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
Definitions
- the present application relates to the field of computer technology, for example, to a method, device and medium for a software operating system to call an Android dynamic library hardware abstraction layer (Hardware Abstract Layer, HAL) interface.
- Android dynamic library hardware abstraction layer Hardware Abstract Layer, HAL
- Android is an operating system (Operating System) based on the Linux kernel, which is widely used in mobile devices such as mobile phones and tablet PCs (Tablet PC).
- Android's system architecture from top to bottom is mainly the system application layer (System Apps), framework layer (Framework), HAL and Linux kernel layer (Linux Kernel).
- HAL provides a virtual hardware platform for Android, which can encapsulate the Linux kernel layer and provide an interface upward, shielding the implementation details of the bottom layer of Android.
- the interface of Android HAL (Android HAL interface) mainly includes dynamic library passthrough (Passthrough) HAL interface (Android dynamic library HAL interface) and Binder cross-process interface (Android HIDL interface).
- the application provides a method, device and medium for a software operating system to call an Android dynamic library HAL interface.
- This application provides a method for a software operating system to call an Android dynamic library HAL interface, which is applied to a software operating system running on an Android HAL-based device, including:
- the present application provides a computer device, which includes a processor and a storage device, the storage device is suitable for storing a plurality of program codes, and the program codes are suitable for being loaded and run by the processor to perform the above-mentioned software operations
- the system calls the method of the Android dynamic library HAL interface.
- the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a plurality of program codes, and the program codes are suitable for being loaded and run by a processor to execute the above-mentioned software operating system calling the Android dynamic library HAL interface Methods.
- Fig. 1 is the schematic flow chart of the method that a kind of software operating system that the embodiment of the application provides calls the Android dynamic library HAL interface;
- Fig. 2 is the operational flow schematic diagram of the method that a kind of software operating system calls Android dynamic storehouse HAL interface that the embodiment of the application provides;
- Fig. 3 is a schematic diagram of the operation flow of a method for resource isolation of a software operating system and an Android HAL provided by an embodiment of the present application;
- Fig. 4 is a schematic diagram of the operation flow of another method for resource isolation of a software operating system and an Android HAL provided by an embodiment of the present application;
- Fig. 5 is a schematic structural diagram of a computer device provided by an embodiment of the present application.
- module and “processor” may include hardware, software or a combination of both.
- a module may include hardware circuits, a variety of suitable sensors, communication ports, memory, and may also include software parts, such as program codes, or a combination of software and hardware.
- the processor may be a central processing unit, a microprocessor, a digital signal processor or any other suitable processor.
- the processor has data and/or signal processing functions.
- the processor can be implemented in software, hardware or a combination of both.
- the non-transitory computer readable storage medium includes any suitable medium that can store program code, such as magnetic disks, hard disks, optical disks, flash memory, read only memory, random access memory, and the like.
- the software operating system refers to the operating system (operating system) written based on computer programming language, that is, the computer management control program.
- the software operating system may be an operating system other than Android.
- the software operating system may be a Linux operating system, which refers to an operating system based on a Linux kernel, that is, a Linux system.
- the Android dynamic library HAL interface refers to the dynamic library passthrough HAL interface in the Android HAL interface (Android HAL interface). And calling the Android HAL dynamic library is actually calling the Android dynamic library HAL interface.
- the NameSpace mechanism refers to a resource isolation mechanism based on the Linux kernel.
- the resources under each NameSpace are transparent to the resources under other NameSpaces.
- Different NameSpaces can have processes with the same process number at the same time, because these processes belong to different NameSpace, so there will be no conflicts.
- user mode each user can only see the processes in their own NameSpace.
- user mode refers to the running state of the process when executing the user's own program code.
- the processor runs in the user code with the lowest privilege level; correspondingly, the kernel mode refers to the process falling into the Linux kernel.
- the running state of the program code at this time the processor is running in the kernel code with the highest privilege level.
- the C basic library refers to a basic library based on the C language (computer programming language), that is, the basic C library, which contains functions and methods that are essential for the operation of the operating system.
- the C basic library of Android contains functions and methods essential for running Android, and the C basic library of software operating systems such as Linux operating systems contains functions and methods essential for the operation of software operating systems.
- Android's C base library includes: Bionic.
- the C basic library of the Linux operating system includes: Glibc.
- a function method refers to a piece of program code that can be called by name or symbol, and this piece of program code can transfer and/or process data.
- the function method function can also be described as a symbol function or directly described as a function.
- a software process is an execution entity of a software operating system program.
- the software process may be a Linux process.
- Fig. 1 is the flow diagram of a kind of software operating system that the embodiment of the application provides calls the method for Android dynamic library HAL interface, and this method can be applied to the software operating system running on the device based on Android HAL
- this Devices refer to devices capable of loading and running computer program codes, such devices include computer devices, mobile phones and tablet computers, etc.
- the software operating system refers to software operating systems other than Android, such as operating systems based on the Linux kernel.
- the method for the software operating system in the embodiment of the present application to call the Android dynamic library HAL interface includes the following steps S101 and S102.
- the program (software process) compiled using the C basic library of the software operating system cannot be dynamically linked normally.
- the software operating system will not be able to normally call the Android dynamic library HAL interface. That is to say, when the software operating system runs on a device based on the Android HAL, the software operating system cannot directly call the functions and methods in the package library of the Android HAL.
- the software operating system when the software operating system wants to call the target function method function in the packaging library of the Android HAL, the software operating system can be controlled to directly call the function corresponding to the target function method function in the packaging library of the software operating system itself.
- this package library will call the preset compatible linker when it is initialized, and then call the target function method function in the package library of Android HAL through this compatible linker, so that the software operating system calls the package library of the software operating system Any one of the function methods in the function can be based on the compatible linker to actually call the corresponding function method function in the Android HAL package library.
- the Linux process can be controlled to call the package library of the Linux operating system. Call the preset compatible linker by calling this package library, and then communicate with the audio device of the device based on the compatible linker to obtain audio data.
- the compatible linker will generate a symbolic address mapping table.
- This symbolic address mapping table contains the method address of the function method function that the software process wants to call. This method address can be obtained by querying this symbolic address mapping table, and this method address can point to The function method function in the package library of Android HAL. That is to say, the compatible linker opens the packaging library of Android HAL through the mode specified by the above method, and calls the corresponding function method function in the packaging library of Android HAL.
- the package library of the software operating system is a dynamic library of the software operating system.
- the software process can be controlled to call the package library of the software operating system by linking the dynamic library.
- the conventional way of linking the dynamic library in the field of software technology can be used to call the encapsulation library of the software operating system, and the way of linking the dynamic library will not be described here.
- S102 call the corresponding function method function in the package library of Android HAL based on the compatible linker, so as to complete the call of the Android dynamic library HAL interface by the software operating system.
- the symbolic address mapping table generated by the compatible linker contains the method address of the function method function that the software process wants to call, and this method address can point to the function method function in the Android HAL package library, therefore, based on this method address, you can Call the corresponding function method function from the package library of Android HAL, that is to say, when the software operating system wants to call a function method function, it can directly call the package library of the software operating system itself, which will be called when the package library is initialized.
- the preset compatible linker and then use this compatible linker to call the function method function in the Android HAL package library, so that the software operating system can actually call the Android HAL package by calling a function method function in its own package library
- the corresponding function method function in the library completes the call to the HAL interface of the Android dynamic library.
- the function method function in the packaging library of the Android HAL may be a function method function called by the packaging library of the Android HAL from the C basic library of Android loaded by the device.
- the software operating system calls the function method function in the Android HAL package library through the preset compatible linker, and based on this compatible linker, the software operating system is compatible with the interface of the Android dynamic library HAL interface , to ensure that the software operating system can run normally on Android HAL-based devices, and overcome the defects in related technologies that the software operating system cannot run normally on Android HAL-based devices because the software operating system cannot be compatible with the Android dynamic library HAL interface .
- the method that the software operating system provided in this embodiment calls the Android dynamic library HAL interface solves the problem of how to make other software operating systems compatible with the Android HAL interface except Android, so that these software operating systems can run normally on devices based on the Android HAL .
- the target function method function in the packaging library of Android HAL does not need to call other target function method functions in the Android C basic library loaded by the device at runtime, then the call based on the compatible linker
- you can directly call the target function method function in the Android HAL package library you can directly call the target function method function in the Android HAL package library; if the target function method function in the Android HAL package library needs to call the Android other target functions and methods in the C basic library, then when calling the target functions and methods in the package library of Android HAL based on the compatible linker, you can use the following S11 to S13 to call the above other target functions and methods that need to be called:
- S11 Determine whether there is a conflict between the above-mentioned other target function method functions in the C basic library of Android and the above-mentioned other target function method functions in the C basic library of the software operating system; if the above-mentioned other target function method functions in the Android C basic library If there is a conflict with the above-mentioned other target function method function in the C basic library of the software operating system, then go to S12; if there is no conflict, then go to S13.
- the conflict refers to the difference in method implementation between the target function method function in the C base library of Android and the target function method function in the C base library of the software operating system. If in the same process, the Android HAL and the software operating system call the target function method function in their respective C base libraries, it will cause the process to crash, which will cause the software operating system to fail to run normally on the device. For example, there is a difference in the memory location of the thread local storage (Thread Local Storage, TLS) in the C base library of Android and the C base library of the Linux operating system, which will cause conflicts between the two thread local storages.
- TLS Thread Local Storage
- the above-mentioned other target functions and methods in the C basic library of the software operating system can be called based on a compatible linker and through Hooks.
- Hook is a way to modify the linking package library of the linker. Through Hook, the behavior of linking the package library of the compatible linker can be modified, so that the compatible linker can call the above-mentioned other target functions and methods in the C basic library of the software operating system.
- the software operating system can call the above-mentioned function in the C basic library of the software operating system.
- Other target function method functions to avoid process crashes caused by calling the above-mentioned other target function method functions in the C base library of Android, and cannot run normally.
- Linux application program Application, APP
- the application program based on Linux operating system needs to call Android HAL and faces a function in the Open Graphics Library for Embedded Systems (OpenGLES) encapsulation library of the Open Graphics Library for Embedded Systems
- OpenGLES Open Graphics Library for Embedded Systems
- the method function is taken as an example to describe how the Linux operating system invokes the HAL interface of the Android dynamic library.
- the Linux OpenGLES packaging library will call the compatible linker when it is initialized.
- the compatible linker calls the function method function in the Android HAL OpenGLES packaging library, and the compatible linker will call the function.
- the method function returns to the Linux OpenGLES package library, so that the Linux process can actually call this function method function in the Android HAL OpenGLES package library.
- the Linux process can directly call the function method function in the Linux Glibc.
- the method for the software operating system to call the Android dynamic library HAL interface can not only include the above S101 to S102, but also include S100 before performing the above S101 and S102 , by executing S100, the resource isolation of the software operating system and the Android HAL can be performed so that the software operating system and the Android HAL run independently on the device.
- resource isolation includes: operating environment isolation and file isolation.
- the software operating system and the Android HAL can be resource-isolated by changing the root directory, for example, using the chroot (change root directory) command to change the root directory of the software operating system or the Android HAL to achieve The software operating system is isolated from the resources of the Android HAL.
- an isolated container can be created based on the NameSpace mechanism and a software operating system or Android HAL can be run in the isolated container, that is, a system (software operating system or Android HAL) is placed to run in the isolated container, and the Another system (Android HAL or software operating system) runs outside the isolated container, even if the process with the same process number runs in the software operating system and Android HAL at the same time, since the process of a system runs in an isolated container, the software operation There is no conflict between the system and the Android HAL, and both can run normally.
- the startup process of the device mainly includes the BootLoader boot phase, the Linux kernel startup phase and the software/Android HAL startup phase.
- the BootLoader guide phase and the Linux kernel startup phase are respectively the same as the BootLoader boot phase and the Linux kernel startup phase in the conventional Android startup method, and the main difference between this embodiment and the conventional Android startup method is the software/Android HAL startup phase.
- the Linux kernel startup phase when the Linux kernel startup phase is completed, the first kernel state process is converted into a user state process and enters the software/Android HAL startup phase.
- an isolated container can be created based on the NameSpace mechanism and stored in the isolated container. Start the software operating system or Android HAL to run the software operating system or Android HAL inside the isolated container.
- an isolated container can be created based on the NameSpace mechanism and the software operating system can be started and run in the isolated container through the following S21 to S22:
- the conventional Android HAL startup method in the computer technology field can be used to start the Android HAL, such as mounting the Android basic file system, system partition, vendor partition, etc., and simultaneously starting the Android Service Manager, Android HAL Service, Android Native Service and other services.
- S22 Start the software operating system in the isolated container, so as to run the software operating system in the isolated container.
- a conventional software startup method in the field of computer technology can also be used to start the software operating system in the isolation container.
- the software operating system is a Linux operating system
- starting the Linux operating system in the isolated container includes: mounting the basic file system, Dbus, etc. of the Linux operating system, and simultaneously starting services such as Linux Service.
- the software operating system can be started and run in the isolated container to realize resource isolation between the Android HAL and the software operating system.
- an isolated container can be created based on the NameSpace mechanism and the Android HAL can be started and run in the isolated container through the following S31 to S33:
- a conventional software startup method in the computer technology field can be used to start the software operating system, but since the core service of the software operating system needs to be started after the hardware initialization of the device is completed, in this embodiment, you can first Start the non-core services of the software operating system, and then start the core services of the software operating system after the Android HAL is started, so as to ensure that the software operating system can be successfully started and run normally.
- the software operating system is a Linux operating system
- S32 Start the Android HAL in the isolated container, so as to run the Android HAL in the isolated container.
- the Android HAL can be started by using a conventional Android HAL startup method in the field of computer technology, such as mounting Android's basic file system, system partition, vendor partition, etc., and simultaneously starting Android Service Manager, Android HAL Service, Android Native Service and other services.
- the Android HAL can be started and run in the isolated container, so as to realize resource isolation between the Android HAL and the software operating system.
- the computer program can be stored in a computer-readable storage medium.
- the computer program includes computer program code
- the computer program code may be in the form of source code, object code, executable file or some intermediate form.
- the computer-readable storage medium may include: any entity or device capable of carrying the computer program code, medium, U disk, removable hard disk, magnetic disk, optical disk, computer memory, read-only memory, random access memory, electric carrier signals, telecommunication signals, and software distribution media, etc.
- the content contained in the computer-readable storage medium may be appropriately increased or decreased according to the requirements of the legislation and patent practice in the jurisdiction. For example, in some jurisdictions, the computer-readable storage medium does not include the electronic carrier signals and telecommunication signals.
- the present application also provides a computer device.
- the computer device includes a processor 10 and a storage device 20, the storage device 20 may be configured to store a program for executing the method in which the software operating system of the method embodiment calls the Android dynamic library HAL interface, and the processor 10 It may be configured to execute a program in the storage device 20 , the program includes a program that executes the method of calling the Android dynamic library HAL interface by the software operating system of the above method embodiment.
- the computer device may be a control device device formed including various electronic devices.
- the present application also provides a computer-readable storage medium.
- the computer-readable storage medium may be configured to store a program for executing the method in which the software operating system of the above method embodiment calls the Android dynamic library HAL interface, and the program may be loaded and run by the processor In order to realize the method of calling the Android dynamic library HAL interface by the above-mentioned software operating system.
- the computer-readable storage medium may be a storage device formed by including various electronic devices.
- the computer-readable storage medium in the embodiment of the present application is a non-transitory computer-readable storage medium.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Telephone Function (AREA)
Abstract
Disclosed herein are a method for calling an Android dynamic library HAL interface by a software operating system, a device and a medium. The method for calling the Android dynamic library HAL interface by a software operating system is applied to a software operating system running on a device based on Android HAL, and comprises: when a software process of a software operating system calls a function in a packaging library of the software operating system, controlling the software process of the software operating system to call the packaging library of the software operating system, and calling a preset compatible link when the packaging library is initialized; calling a target function method corresponding to the function method in the packaging library of the Android HAL on the basis of the compatible link, so as to complete calling of the Android dynamic library HAL interface by the software operating system.
Description
本申请要求在2021年12月31日提交中国专利局、申请号为202111672017.8的中国专利申请的优先权,该申请的全部内容通过引用结合在本申请中。This application claims priority to a Chinese patent application with application number 202111672017.8 filed with the China Patent Office on December 31, 2021, the entire contents of which are incorporated herein by reference.
本申请涉及计算机技术领域,例如涉及一种软件操作系统调用Android动态库硬件抽象层(Hardware Abstract Layer,HAL)接口的方法、设备及介质。The present application relates to the field of computer technology, for example, to a method, device and medium for a software operating system to call an Android dynamic library hardware abstraction layer (Hardware Abstract Layer, HAL) interface.
Android是一种基于Linux内核的操作系统(Operating System),其广泛应用于手机和平板电脑(Tablet PC)等移动设备。Android的系统架构从上到下主要是系统应用层(System Apps)、框架层(Framework)、HAL和Linux内核层(Linux Kernel)。其中,HAL为Android提供了虚拟硬件平台,其可以对Linux内核层进行封装并向上提供接口,屏蔽Android底层的实现细节。Android HAL的接口(Android HAL接口)主要包括动态库直通式(Passthrough)HAL接口(Android动态库HAL接口)和Binder跨进程式接口(Android HIDL接口)等。Android is an operating system (Operating System) based on the Linux kernel, which is widely used in mobile devices such as mobile phones and tablet PCs (Tablet PC). Android's system architecture from top to bottom is mainly the system application layer (System Apps), framework layer (Framework), HAL and Linux kernel layer (Linux Kernel). Among them, HAL provides a virtual hardware platform for Android, which can encapsulate the Linux kernel layer and provide an interface upward, shielding the implementation details of the bottom layer of Android. The interface of Android HAL (Android HAL interface) mainly includes dynamic library passthrough (Passthrough) HAL interface (Android dynamic library HAL interface) and Binder cross-process interface (Android HIDL interface).
由于Android广泛应用于不同类型的移动设备,导致一部分硬件设备供应商仅提供适用于Android的硬件驱动程序,同时由于其他软件操作系统如基于Linux内核的操作系统无法兼容Android HAL接口,导致其他软件操作系统无法在基于Android HAL的移动设备上正常运行,从而极大地限制了其他软件操作系统在这类移动设备上的应用前景。Because Android is widely used in different types of mobile devices, some hardware device suppliers only provide hardware drivers for Android, and because other software operating systems such as Linux kernel-based operating systems are not compatible with the Android HAL interface, other software operations The system cannot run normally on Android HAL-based mobile devices, which greatly limits the application prospects of other software operating systems on such mobile devices.
发明内容Contents of the invention
本申请提供了一种软件操作系统调用Android动态库HAL接口的方法、设备及介质。The application provides a method, device and medium for a software operating system to call an Android dynamic library HAL interface.
本申请提供一种软件操作系统调用Android动态库HAL接口的方法,应用于运行在基于Android HAL的设备上的软件操作系统,包括:This application provides a method for a software operating system to call an Android dynamic library HAL interface, which is applied to a software operating system running on an Android HAL-based device, including:
当软件操作系统的软件进程调用所述软件操作系统的封装库中任意一个函数方法function时,控制所述软件进程调用所述软件操作系统的封装库,并在所述封装库初始化时调用预设的兼容链接器;When the software process of the software operating system calls any function method function in the packaging library of the software operating system, control the software process to call the packaging library of the software operating system, and call the preset when the packaging library is initialized compatible linker;
基于所述兼容链接器调用所述Android HAL的封装库中所述一个函数方法function对应的目标函数方法function,以完成软件操作系统对Android动态库 HAL接口的调用。Call the target function method function corresponding to a function method function in the encapsulation library of the Android HAL based on the compatible linker, to complete the calling of the Android dynamic library HAL interface by the software operating system.
本申请提供一种计算机设备,该计算机设备包括处理器和存储装置,所述存储装置适于存储多条程序代码,所述程序代码适于由所述处理器加载并运行以执行上述的软件操作系统调用Android动态库HAL接口的方法。The present application provides a computer device, which includes a processor and a storage device, the storage device is suitable for storing a plurality of program codes, and the program codes are suitable for being loaded and run by the processor to perform the above-mentioned software operations The system calls the method of the Android dynamic library HAL interface.
本申请提供一种计算机可读存储介质,该计算机可读存储介质其中存储有多条程序代码,所述程序代码适于由处理器加载并运行以执行上述的软件操作系统调用Android动态库HAL接口的方法。The present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a plurality of program codes, and the program codes are suitable for being loaded and run by a processor to execute the above-mentioned software operating system calling the Android dynamic library HAL interface Methods.
图1是本申请实施例提供的一种软件操作系统调用Android动态库HAL接口的方法的流程示意图;Fig. 1 is the schematic flow chart of the method that a kind of software operating system that the embodiment of the application provides calls the Android dynamic library HAL interface;
图2是本申请的实施例提供的一种软件操作系统调用Android动态库HAL接口的方法的操作流程示意图;Fig. 2 is the operational flow schematic diagram of the method that a kind of software operating system calls Android dynamic storehouse HAL interface that the embodiment of the application provides;
图3是本申请的实施例提供的一种对软件操作系统与Android HAL进行资源隔离的方法的操作流程示意图;Fig. 3 is a schematic diagram of the operation flow of a method for resource isolation of a software operating system and an Android HAL provided by an embodiment of the present application;
图4是本申请的实施例提供的另一种对软件操作系统与Android HAL进行资源隔离的方法的操作流程示意图;Fig. 4 is a schematic diagram of the operation flow of another method for resource isolation of a software operating system and an Android HAL provided by an embodiment of the present application;
图5是本申请实施例提供的一种计算机设备的结构示意图。Fig. 5 is a schematic structural diagram of a computer device provided by an embodiment of the present application.
下面参照附图来描述本申请的一些实施方式。这些实施方式仅仅用于解释本申请的技术原理。Some embodiments of the present application are described below with reference to the accompanying drawings. These embodiments are only used to explain the technical principle of the present application.
在本申请的描述中,“模块”、“处理器”可以包括硬件、软件或者两者的组合。一个模块可以包括硬件电路,多种合适的感应器,通信端口,存储器,也可以包括软件部分,比如程序代码,也可以是软件和硬件的组合。处理器可以是中央处理器、微处理器、数字信号处理器或者其他任何合适的处理器。处理器具有数据和/或信号处理功能。处理器可以以软件方式实现、硬件方式实现或者二者结合方式实现。非暂时性的计算机可读存储介质包括任何合适的可存储程序代码的介质,比如磁碟、硬盘、光碟、闪存、只读存储器、随机存取存储器等等。In the description of this application, "module" and "processor" may include hardware, software or a combination of both. A module may include hardware circuits, a variety of suitable sensors, communication ports, memory, and may also include software parts, such as program codes, or a combination of software and hardware. The processor may be a central processing unit, a microprocessor, a digital signal processor or any other suitable processor. The processor has data and/or signal processing functions. The processor can be implemented in software, hardware or a combination of both. The non-transitory computer readable storage medium includes any suitable medium that can store program code, such as magnetic disks, hard disks, optical disks, flash memory, read only memory, random access memory, and the like.
这里先解释本申请涉及到的一些术语。Some terms involved in this application are first explained here.
软件操作系统指的是基于计算机编程语言编写的操作系统(operating system),即计算机管理控制程序。在本实施例中软件操作系统可以是除Android以外其他的操作系统。在一个实施方式中软件操作系统可以是Linux操作系统,该Linux操作系统指的是基于Linux内核的操作系统,即Linux系统。The software operating system refers to the operating system (operating system) written based on computer programming language, that is, the computer management control program. In this embodiment, the software operating system may be an operating system other than Android. In one embodiment, the software operating system may be a Linux operating system, which refers to an operating system based on a Linux kernel, that is, a Linux system.
Android动态库HAL接口指的是Android HAL的接口(Android HAL接口)中的动态库直通式(Passthrough)HAL接口。而调用Android HAL动态库实际上就是调用Android动态库HAL接口。The Android dynamic library HAL interface refers to the dynamic library passthrough HAL interface in the Android HAL interface (Android HAL interface). And calling the Android HAL dynamic library is actually calling the Android dynamic library HAL interface.
NameSpace机制指的是一种基于Linux内核的资源隔离机制,每个NameSpace(容器)下的资源对于其他NameSpace下的资源都是透明,不同NameSpace可以同时存在相同进程号的进程,由于这些进程属于不同的NameSpace,因此不会产生冲突。在用户态,每个用户只能看到属于自己的NameSpace中的进程。其中,用户态(user mode)指的是进程在执行用户自己的程序代码时的运行状态,此时处理器在特权级最低的用户代码中运行;相应的,内核态指的是进程陷入Linux内核的程序代码时的运行状态,此时处理器处于特权级最高的内核代码中运行。The NameSpace mechanism refers to a resource isolation mechanism based on the Linux kernel. The resources under each NameSpace (container) are transparent to the resources under other NameSpaces. Different NameSpaces can have processes with the same process number at the same time, because these processes belong to different NameSpace, so there will be no conflicts. In user mode, each user can only see the processes in their own NameSpace. Among them, user mode (user mode) refers to the running state of the process when executing the user's own program code. At this time, the processor runs in the user code with the lowest privilege level; correspondingly, the kernel mode refers to the process falling into the Linux kernel. The running state of the program code, at this time the processor is running in the kernel code with the highest privilege level.
C基础库指的是基于C语言(计算机编程语言)的基础库,即基础C库,该基础库内包含使操作系统运行必不可少的函数方法function。Android的C基础库包含使Android运行必不可少的函数方法function,软件操作系统如Linux操作系统的C基础库包含使软件操作系统运行必不可少的函数方法function。Android的C基础库包括:Bionic。当软件操作系统是Linux操作系统时Linux操作系统的C基础库包括:Glibc。The C basic library refers to a basic library based on the C language (computer programming language), that is, the basic C library, which contains functions and methods that are essential for the operation of the operating system. The C basic library of Android contains functions and methods essential for running Android, and the C basic library of software operating systems such as Linux operating systems contains functions and methods essential for the operation of software operating systems. Android's C base library includes: Bionic. When the software operating system is a Linux operating system, the C basic library of the Linux operating system includes: Glibc.
函数方法function指的是一段可以通过名字或符号进行调用程序代码,这段程序代码能够传递和/或处理数据。此外,函数方法function也可以描述成符号function或直接描述成function。A function method refers to a piece of program code that can be called by name or symbol, and this piece of program code can transfer and/or process data. In addition, the function method function can also be described as a symbol function or directly described as a function.
软件进程(process)是软件操作系统程序的执行实体。当软件操作系统是Linux操作系统时,软件进程可以是Linux进程。A software process is an execution entity of a software operating system program. When the software operating system is a Linux operating system, the software process may be a Linux process.
参阅附图1,图1是本申请实施例提供的一种软件操作系统调用Android动态库HAL接口的方法的流程示意图,该方法可以应用于运行在基于Android HAL的设备上的软件操作系统,该设备指的是能够加载并运行计算机程序代码的设备,该设备包括计算机设备、手机和平板电脑等,该软件操作系统指的是除Android以外其他的软件操作系统,如基于Linux内核的操作系统。如图1所示,本申请实施例中的软件操作系统调用Android动态库HAL接口的方法包括下列S101和S102。Referring to accompanying drawing 1, Fig. 1 is the flow diagram of a kind of software operating system that the embodiment of the application provides calls the method for Android dynamic library HAL interface, and this method can be applied to the software operating system running on the device based on Android HAL, this Devices refer to devices capable of loading and running computer program codes, such devices include computer devices, mobile phones and tablet computers, etc. The software operating system refers to software operating systems other than Android, such as operating systems based on the Linux kernel. As shown in FIG. 1 , the method for the software operating system in the embodiment of the present application to call the Android dynamic library HAL interface includes the following steps S101 and S102.
S101:当软件操作系统的软件进程调用软件操作系统的封装库中任意一个 函数方法function时,控制软件操作系统的软件进程调用软件操作系统的封装库,并在封装库初始化时调用预设的兼容链接器。S101: When the software process of the software operating system calls any function method function in the packaging library of the software operating system, the software process of the control software operating system calls the packaging library of the software operating system, and calls the preset compatible library when the packaging library is initialized. Linker.
由于Android的C基础库(如Bionic库)与软件操作系统的C基础库(如Glibc库)不兼容,导致使用软件操作系统的C基础库的编译出的程序(软件进程)不能正常地动态链接到Android的C基础库,因此,当基于Android HAL的设备的Android HAL接口采用的是Android动态库HAL接口时软件操作系统将无法正常地调用Android动态库HAL接口。也就是说,当软件操作系统运行在基于Android HAL的设备上时,软件操作系统无法直接调用Android HAL的封装库中的函数方法function。而在本实施例中当软件操作系统想要调用Android HAL的封装库中的目标函数方法function时,可以控制软件操作系统直接调用软件操作系统自己的封装库中与这个目标函数方法function对应的函数方法function,这个封装库初始化时会调用预设的兼容链接器,进而通过这个兼容链接器再调用Android HAL的封装库中的目标函数方法function,从而使得软件操作系统在调用软件操作系统的封装库中任意一个函数方法function时可以基于兼容链接器真正调用到Android HAL的封装库中对应的函数方法function。例如,当Linux操作系统需要调用Android HAL接口中的Android动态库HAL接口与设备的硬件进行通信,比如与设备的音频器件进行通信获取音频数据时,可以控制Linux进程调用Linux操作系统的封装库,通过调用这个封装库去调用预设的兼容链接器,进而基于兼容链接器与设备的音频器件进行通信获取音频数据。Due to the incompatibility between the C basic library of Android (such as the Bionic library) and the C basic library of the software operating system (such as the Glibc library), the program (software process) compiled using the C basic library of the software operating system cannot be dynamically linked normally. To the C basic library of Android, therefore, when the Android HAL interface of the Android HAL-based device adopts the Android dynamic library HAL interface, the software operating system will not be able to normally call the Android dynamic library HAL interface. That is to say, when the software operating system runs on a device based on the Android HAL, the software operating system cannot directly call the functions and methods in the package library of the Android HAL. In this embodiment, when the software operating system wants to call the target function method function in the packaging library of the Android HAL, the software operating system can be controlled to directly call the function corresponding to the target function method function in the packaging library of the software operating system itself. Method function, this package library will call the preset compatible linker when it is initialized, and then call the target function method function in the package library of Android HAL through this compatible linker, so that the software operating system calls the package library of the software operating system Any one of the function methods in the function can be based on the compatible linker to actually call the corresponding function method function in the Android HAL package library. For example, when the Linux operating system needs to call the Android dynamic library HAL interface in the Android HAL interface to communicate with the hardware of the device, such as communicating with the audio device of the device to obtain audio data, the Linux process can be controlled to call the package library of the Linux operating system. Call the preset compatible linker by calling this package library, and then communicate with the audio device of the device based on the compatible linker to obtain audio data.
兼容链接器会生成符号地址映射表,这个符号地址映射表包含了软件进程想要调用的函数方法function的方法地址,通过查询这个符号地址映射表就可以获得这个方法地址,而这个方法地址能够指向Android HAL的封装库中的函数方法function。也就是说,兼容链接器通过上述方法指定的模式打开Android HAL的封装库,调用Android HAL的封装库中对应的函数方法function。The compatible linker will generate a symbolic address mapping table. This symbolic address mapping table contains the method address of the function method function that the software process wants to call. This method address can be obtained by querying this symbolic address mapping table, and this method address can point to The function method function in the package library of Android HAL. That is to say, the compatible linker opens the packaging library of Android HAL through the mode specified by the above method, and calls the corresponding function method function in the packaging library of Android HAL.
软件操作系统的封装库是软件操作系统的动态库,在一个实施方式中可以控制软件进程通过链接动态库的方式调用软件操作系统的封装库。在本实施方式中可以采用软件技术领域中常规的链接动态库的方式去调用软件操作系统的封装库,在此不对链接动态库的方式进行说明。The package library of the software operating system is a dynamic library of the software operating system. In one embodiment, the software process can be controlled to call the package library of the software operating system by linking the dynamic library. In this embodiment, the conventional way of linking the dynamic library in the field of software technology can be used to call the encapsulation library of the software operating system, and the way of linking the dynamic library will not be described here.
S102:基于兼容链接器调用Android HAL的封装库中对应的函数方法function,以完成软件操作系统对Android动态库HAL接口的调用。S102: call the corresponding function method function in the package library of Android HAL based on the compatible linker, so as to complete the call of the Android dynamic library HAL interface by the software operating system.
由于兼容链接器生成的符号地址映射表包含了软件进程想要调用的函数方法function的方法地址,而这个方法地址能够指向Android HAL的封装库中的函数方法function,因此,基于这个方法地址就可以从Android HAL的封装库中调用到相应的函数方法function,也就是说,当软件操作系统想要调用一个函数 方法function时,可以直接调用软件操作系统自己的封装库,这个封装库初始化时会调用预设的兼容链接器,进而通过这个兼容链接器再调用Android HAL的封装库中的这个函数方法function,从而使得软件操作系统通过调用自己封装库的一个函数方法function,真正调用到Android HAL的封装库中相应的函数方法function,完成对Android动态库HAL接口的调用。在本实施例中Android HAL的封装库中的函数方法function可以是Android HAL的封装库从设备加载的Android的C基础库中调用到的函数方法function。Since the symbolic address mapping table generated by the compatible linker contains the method address of the function method function that the software process wants to call, and this method address can point to the function method function in the Android HAL package library, therefore, based on this method address, you can Call the corresponding function method function from the package library of Android HAL, that is to say, when the software operating system wants to call a function method function, it can directly call the package library of the software operating system itself, which will be called when the package library is initialized. The preset compatible linker, and then use this compatible linker to call the function method function in the Android HAL package library, so that the software operating system can actually call the Android HAL package by calling a function method function in its own package library The corresponding function method function in the library completes the call to the HAL interface of the Android dynamic library. In this embodiment, the function method function in the packaging library of the Android HAL may be a function method function called by the packaging library of the Android HAL from the C basic library of Android loaded by the device.
基于上述S101至S102,通过预设的兼容链接器实现了软件操作系统对Android HAL的封装库中函数方法function的调用,基于这个兼容链接器实现了软件操作系统对Android动态库HAL接口的接口兼容,保证软件操作系统能够正常地运行在基于Android HAL的设备上,克服了相关技术中由于软件操作系统无法兼容Android动态库HAL接口,导致软件操作系统无法在基于Android HAL的设备上正常运行的缺陷。本实施例提供的软件操作系统调用Android动态库HAL接口的方法解决了如何使除Android以外其他软件操作系统兼容Android HAL接口,以使这些软件操作系统能够在基于Android HAL的设备上正常运行的问题。Based on the above S101 to S102, the software operating system calls the function method function in the Android HAL package library through the preset compatible linker, and based on this compatible linker, the software operating system is compatible with the interface of the Android dynamic library HAL interface , to ensure that the software operating system can run normally on Android HAL-based devices, and overcome the defects in related technologies that the software operating system cannot run normally on Android HAL-based devices because the software operating system cannot be compatible with the Android dynamic library HAL interface . The method that the software operating system provided in this embodiment calls the Android dynamic library HAL interface solves the problem of how to make other software operating systems compatible with the Android HAL interface except Android, so that these software operating systems can run normally on devices based on the Android HAL .
下面对S102作说明。S102 will be described below.
在上述S102的一个实施方式中,如果Android HAL的封装库中的目标函数方法function在运行时不需要调用设备加载的Android的C基础库中的其他目标函数方法function,那么在基于兼容链接器调用Android HAL的封装库中的目标函数方法function时,可以直接调用Android HAL的封装库中的这个目标函数方法function;如果Android HAL的封装库中的目标函数方法function在运行时需要调用设备加载的Android的C基础库中的其他目标函数方法function,那么在基于兼容链接器调用Android HAL的封装库中的目标函数方法function时,可以通过下列S11至S13去调用上述需要调用的其他目标函数方法function:In an implementation of the above S102, if the target function method function in the packaging library of Android HAL does not need to call other target function method functions in the Android C basic library loaded by the device at runtime, then the call based on the compatible linker When the target function method function in the Android HAL package library, you can directly call the target function method function in the Android HAL package library; if the target function method function in the Android HAL package library needs to call the Android other target functions and methods in the C basic library, then when calling the target functions and methods in the package library of Android HAL based on the compatible linker, you can use the following S11 to S13 to call the above other target functions and methods that need to be called:
S11:判断Android的C基础库中的上述其他目标函数方法function与软件操作系统的C基础库中的上述其他目标函数方法function是否存在冲突;如果Android的C基础库中的上述其他目标函数方法function与软件操作系统的C基础库中的上述其他目标函数方法function存在冲突,则转至S12;如果不存在冲突则转至S13。S11: Determine whether there is a conflict between the above-mentioned other target function method functions in the C basic library of Android and the above-mentioned other target function method functions in the C basic library of the software operating system; if the above-mentioned other target function method functions in the Android C basic library If there is a conflict with the above-mentioned other target function method function in the C basic library of the software operating system, then go to S12; if there is no conflict, then go to S13.
冲突指的是Android的C基础库中的目标函数方法function与软件操作系统的C基础库中的目标函数方法function的方法实现存在差异。如果在同一进程中,Android HAL和软件操作系统调用各自C基础库中的目标函数方法function,会导致进程崩溃,从而导致软件操作系统无法在设备上正常运行。例如,Android 的C基础库和Linux操作系统的C基础库中的线程局部存储(Thread Local Storage,TLS)在内存位置上存在差异,会导致这两个线程局部存储存在冲突。The conflict refers to the difference in method implementation between the target function method function in the C base library of Android and the target function method function in the C base library of the software operating system. If in the same process, the Android HAL and the software operating system call the target function method function in their respective C base libraries, it will cause the process to crash, which will cause the software operating system to fail to run normally on the device. For example, there is a difference in the memory location of the thread local storage (Thread Local Storage, TLS) in the C base library of Android and the C base library of the Linux operating system, which will cause conflicts between the two thread local storages.
S12:基于兼容链接器调用软件操作系统的C基础库中的上述其他目标函数方法function。S12: calling the above-mentioned other target functions and methods in the C basic library of the software operating system based on the compatible linker.
在一个实施方式中可以基于兼容链接器并通过Hook方式调用软件操作系统的C基础库中的上述其他目标函数方法function。Hook是一种修改链接器链接封装库的方式,通过Hook可以修改兼容链接器链接封装库的行为,使得兼容链接器能够调用软件操作系统的C基础库中的上述其他目标函数方法function。In one embodiment, the above-mentioned other target functions and methods in the C basic library of the software operating system can be called based on a compatible linker and through Hooks. Hook is a way to modify the linking package library of the linker. Through Hook, the behavior of linking the package library of the compatible linker can be modified, so that the compatible linker can call the above-mentioned other target functions and methods in the C basic library of the software operating system.
S13:基于兼容链接器调用Android的C基础库中的上述其他目标函数方法function。S13: call the above-mentioned other target function method function in the C basic library of Android based on the compatible linker.
通过上述S11至S13,当Android的C基础库中的目标函数方法function与软件操作系统的C基础库中的上述其他目标函数方法function存在冲突时可以使软件操作系统调用自己C基础库中的上述其他目标函数方法function,避免在调用Android的C基础库中的上述其他目标函数方法function导致进程崩溃,无法正常运行。Through the above S11 to S13, when there is a conflict between the target function method function in the C basic library of Android and the above-mentioned other target function method functions in the C basic library of the software operating system, the software operating system can call the above-mentioned function in the C basic library of the software operating system. Other target function method functions, to avoid process crashes caused by calling the above-mentioned other target function method functions in the C base library of Android, and cannot run normally.
参阅附图2,以Linux应用程序(Application,APP)(基于Linux操作系统的应用程序)需要调用Android HAL面向嵌入式系统的开放图形库Open Graphics Library for Embedded Systems,OpenGLES)封装库中的一个函数方法function为例,对Linux操作系统调用Android动态库HAL接口的方法进行说明。Referring to accompanying drawing 2, with Linux application program (Application, APP) (the application program based on Linux operating system) needs to call Android HAL and faces a function in the Open Graphics Library for Embedded Systems (OpenGLES) encapsulation library of the Open Graphics Library for Embedded Systems The method function is taken as an example to describe how the Linux operating system invokes the HAL interface of the Android dynamic library.
通过Linux APP的Linux进程调用Linux OpenGLES封装库,Linux OpenGLES封装库在初始化时会调用兼容链接器,兼容链接器调用Android HAL OpenGLES封装库中的函数方法function,同时兼容链接器会将调用到的函数方法function返回至Linux OpenGLES封装库,使得Linux进程能够真正调用到Android HAL OpenGLES封装库中的这个函数方法function。Call the Linux OpenGLES packaging library through the Linux process of the Linux APP. The Linux OpenGLES packaging library will call the compatible linker when it is initialized. The compatible linker calls the function method function in the Android HAL OpenGLES packaging library, and the compatible linker will call the function. The method function returns to the Linux OpenGLES package library, so that the Linux process can actually call this function method function in the Android HAL OpenGLES package library.
当这个函数方法function在运行时需要调用Android的C基础库中的其他目标函数方法function时,如果Linux操作系统的C基础库(Linux Glibc)与Android的C基础库(Android Bionic)中的上述其他目标函数方法function存在冲突,则可以基于兼容链接器从Linux Glibc中调用上述其他目标函数方法function,同时兼容链接器会将调用到的目标函数方法function返回至Linux OpenGLES封装库;如果Linux操作系统的C基础库(Linux Glibc)与Android的C基础库(Android Bionic)中的上述其他目标函数方法function不存在冲突,则可以基于兼容链接器从Android Bionic中调用上述其他目标函数方法function,同时兼容链接器会将调用到的目标函数方法function返回至Linux OpenGLES封装库。When this function method needs to call other target function methods in the Android C base library during runtime, if the C base library (Linux Glibc) of the Linux operating system and the above-mentioned other functions in the Android C base library (Android Bionic) If there is a conflict in the target function method, you can call the other target function method function from Linux Glibc based on the compatible linker, and the compatible linker will return the called target function method function to the Linux OpenGLES package library; if the Linux operating system If there is no conflict between the C base library (Linux Glibc) and the above-mentioned other target function method functions in the Android C base library (Android Bionic), then the above-mentioned other target function method functions can be called from Android Bionic based on the compatible linker, and the compatible link The compiler will return the called target function method function to the Linux OpenGLES package library.
此外,Linux APP需要调用Linux操作系统的C基础库中的一个函数方法function时Linux进程可以直接调用Linux Glibc中的函数方法function。In addition, when a Linux APP needs to call a function method function in the C basic library of the Linux operating system, the Linux process can directly call the function method function in the Linux Glibc.
在软件操作系统调用Android动态库HAL接口的方法的另一个实施例中,该软件操作系统调用Android动态库HAL接口的方法不仅可以包括上述S101至S102,在执行上述S101和S102之前还可以包括S100,通过执行S100可以对软件操作系统与Android HAL进行资源隔离以使软件操作系统与Android HAL在设备上分别独立运行。其中,资源隔离包括:运行环境隔离和文件隔离等。通过对软件操作系统与Android HAL进行资源隔离,可以保证在基于Android HAL的设备上运行软件操作系统时,软件操作系统与Android HAL不会产生冲突与相互干扰,从而保证软件操作系统的正常运行。In another embodiment of the method for the software operating system to call the Android dynamic library HAL interface, the method for the software operating system to call the Android dynamic library HAL interface can not only include the above S101 to S102, but also include S100 before performing the above S101 and S102 , by executing S100, the resource isolation of the software operating system and the Android HAL can be performed so that the software operating system and the Android HAL run independently on the device. Among them, resource isolation includes: operating environment isolation and file isolation. By isolating resources between the software operating system and the Android HAL, it can be ensured that when the software operating system is running on an Android HAL-based device, the software operating system and the Android HAL will not conflict and interfere with each other, thereby ensuring the normal operation of the software operating system.
在本实施例的一个实施方式中可以通过更改根目录的方式对软件操作系统与Android HAL进行资源隔离,例如使用chroot(change root directory)命令更改软件操作系统或Android HAL的根目录,以实现对软件操作系统与Android HAL的资源隔离。而在本实施例的另一个实施方式中可以基于NameSpace机制创建隔离容器并在隔离容器内运行软件操作系统或Android HAL,即将一个系统(软件操作系统或Android HAL)放在隔离容器内运行,将另一个系统(Android HAL或软件操作系统)放在隔离容器以外运行,即使在软件操作系统和Android HAL中同时运行相同进程号的进程,由于一个系统的进程是在隔离容器内运行,因此软件操作系统和Android HAL也不会产生冲突,二者均可以正常运行。In an implementation of this embodiment, the software operating system and the Android HAL can be resource-isolated by changing the root directory, for example, using the chroot (change root directory) command to change the root directory of the software operating system or the Android HAL to achieve The software operating system is isolated from the resources of the Android HAL. In another implementation of this embodiment, an isolated container can be created based on the NameSpace mechanism and a software operating system or Android HAL can be run in the isolated container, that is, a system (software operating system or Android HAL) is placed to run in the isolated container, and the Another system (Android HAL or software operating system) runs outside the isolated container, even if the process with the same process number runs in the software operating system and Android HAL at the same time, since the process of a system runs in an isolated container, the software operation There is no conflict between the system and the Android HAL, and both can run normally.
设备的启动过程主要包括BootLoader引导阶段、Linux内核启动阶段和软件/Android HAL启动阶段。其中,BootLoader引导阶段和Linux内核启动阶段分别与常规的Android启动方法中的BootLoader引导阶段和Linux内核启动阶段相同,而本实施方式与常规的Android启动方法的主要区别在于软件/Android HAL启动阶段。在本实施方式中,当Linux内核启动阶段完成后首个内核态进程转换成用户态进程进入软件/Android HAL启动阶段,在软件/Android HAL启动阶段中可以基于NameSpace机制创建隔离容器并在隔离容器内启动软件操作系统或Android HAL,以便在隔离容器内运行软件操作系统或Android HAL。The startup process of the device mainly includes the BootLoader boot phase, the Linux kernel startup phase and the software/Android HAL startup phase. Wherein, the BootLoader guide phase and the Linux kernel startup phase are respectively the same as the BootLoader boot phase and the Linux kernel startup phase in the conventional Android startup method, and the main difference between this embodiment and the conventional Android startup method is the software/Android HAL startup phase. In this embodiment, when the Linux kernel startup phase is completed, the first kernel state process is converted into a user state process and enters the software/Android HAL startup phase. In the software/Android HAL startup phase, an isolated container can be created based on the NameSpace mechanism and stored in the isolated container. Start the software operating system or Android HAL to run the software operating system or Android HAL inside the isolated container.
在一个实施方式中,如果首个用户态进程是Android HAL进程,则可以基于NameSpace机制创建隔离容器并通过下列S21至S22在隔离容器内启动并运行软件操作系统:In one embodiment, if the first user state process is an Android HAL process, an isolated container can be created based on the NameSpace mechanism and the software operating system can be started and run in the isolated container through the following S21 to S22:
S21:在启动设备时,若首个用户态进程是Android HAL进程,则启动Android HAL并在Android HAL启动完成后基于NameSpace机制创建隔离容器(容器Service)。S21: When starting the device, if the first user state process is the Android HAL process, start the Android HAL and create an isolated container (container Service) based on the NameSpace mechanism after the Android HAL startup is completed.
在本实施方式中可以采用计算机技术领域中常规的Android HAL启动方法 对Android HAL进行启动,例如挂载Android的基础文件系统、system分区、vendor分区等,同时启动Android Service Manager、Android HAL Service、Android Native Service等服务。In this embodiment, the conventional Android HAL startup method in the computer technology field can be used to start the Android HAL, such as mounting the Android basic file system, system partition, vendor partition, etc., and simultaneously starting the Android Service Manager, Android HAL Service, Android Native Service and other services.
S22:在隔离容器内启动软件操作系统,以在隔离容器内运行软件操作系统。S22: Start the software operating system in the isolated container, so as to run the software operating system in the isolated container.
在本实施方式中同样可以采用计算机技术领域中常规的软件启动方法在隔离容器内启动软件操作系统。参阅附图3,若软件操作系统是Linux操作系统,那么在隔离容器内启动Linux操作系统包括:挂载Linux操作系统的基础文件系统、Dbus等,同时启动Linux Service等服务。In this embodiment, a conventional software startup method in the field of computer technology can also be used to start the software operating system in the isolation container. Referring to accompanying drawing 3, if the software operating system is a Linux operating system, starting the Linux operating system in the isolated container includes: mounting the basic file system, Dbus, etc. of the Linux operating system, and simultaneously starting services such as Linux Service.
通过上述S21至S22,可以在隔离容器内启动并运行软件操作系统,实现对Android HAL与软件操作系统的资源隔离。Through the above S21 to S22, the software operating system can be started and run in the isolated container to realize resource isolation between the Android HAL and the software operating system.
在一个实施方式中如果首个用户态进程是Linux进程,则可以基于NameSpace机制创建隔离容器并通过下列S31至S33在隔离容器内启动并运行Android HAL:In one embodiment, if the first user state process is a Linux process, an isolated container can be created based on the NameSpace mechanism and the Android HAL can be started and run in the isolated container through the following S31 to S33:
S31:在启动设备时,若首个用户态进程是软件进程,则启动软件操作系统的非核心服务并在非核心服务启动完成后基于NameSpace机制创建隔离容器。S31: When starting the device, if the first user state process is a software process, start the non-core service of the software operating system and create an isolated container based on the NameSpace mechanism after the non-core service is started.
在本实施方式中可以采用计算机技术领域中常规的软件启动方法对软件操作系统进行启动,但由于软件操作系统的核心服务需要在设备完成硬件初始化之后进行启动,因此,在本实施例中可以先启动软件操作系统的非核心服务,在完成Android HAL启动后再启动软件操作系统的核心服务,以保证软件操作系统能够成功启动,正常运行。参阅附图4,若软件操作系统是Linux操作系统,则可以启动Linux操作系统的非核心服务Linux Service并在非核心服务Linux Service启动完成后基于NameSpace机制创建隔离容器,即基于容器Service创建Android容器。In this embodiment, a conventional software startup method in the computer technology field can be used to start the software operating system, but since the core service of the software operating system needs to be started after the hardware initialization of the device is completed, in this embodiment, you can first Start the non-core services of the software operating system, and then start the core services of the software operating system after the Android HAL is started, so as to ensure that the software operating system can be successfully started and run normally. Referring to Figure 4, if the software operating system is a Linux operating system, you can start the non-core service Linux Service of the Linux operating system and create an isolated container based on the NameSpace mechanism after the non-core service Linux Service is started, that is, create an Android container based on the container Service .
S32:在隔离容器内启动Android HAL,以在隔离容器内运行Android HAL。S32: Start the Android HAL in the isolated container, so as to run the Android HAL in the isolated container.
在本实施方式中,可以采用计算机技术领域中常规的Android HAL启动方法对Android HAL进行启动,例如挂载Android的基础文件系统、system分区、vendor分区等,同时启动Android Service Manager、Android HAL Service、Android Native Service等服务。In this embodiment, the Android HAL can be started by using a conventional Android HAL startup method in the field of computer technology, such as mounting Android's basic file system, system partition, vendor partition, etc., and simultaneously starting Android Service Manager, Android HAL Service, Android Native Service and other services.
S33:在Android HAL启动完成后继续启动软件操作系统的核心服务。S33: Continue to start the core service of the software operating system after the Android HAL is started.
通过上述S31至S33,可以在隔离容器内启动并运行Android HAL,实现对Android HAL与软件操作系统的资源隔离。Through the above S31 to S33, the Android HAL can be started and run in the isolated container, so as to realize resource isolation between the Android HAL and the software operating system.
尽管上述实施例中将多个步骤按照特定的先后顺序进行了描述,为了实现 本申请的效果,不同的步骤之间并非必须按照这样的顺序执行,其可以同时(并行)执行或以其他顺序执行,这些变化都在本申请的保护范围之内。Although multiple steps are described in a specific order in the above embodiments, in order to achieve the effect of the present application, different steps do not have to be performed in this order, and they can be performed simultaneously (parallel) or in other orders , these changes are all within the protection scope of the present application.
本申请实现上述一实施例的方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述多个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或一些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器、随机存取存储器、电载波信号、电信信号以及软件分发介质等。所述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在一些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。All or part of the process in the method of the above-mentioned embodiment of the present application can also be completed by instructing related hardware through a computer program. The computer program can be stored in a computer-readable storage medium. When executed by a processor, the steps in the above multiple method embodiments can be realized. Wherein, the computer program includes computer program code, and the computer program code may be in the form of source code, object code, executable file or some intermediate form. The computer-readable storage medium may include: any entity or device capable of carrying the computer program code, medium, U disk, removable hard disk, magnetic disk, optical disk, computer memory, read-only memory, random access memory, electric carrier signals, telecommunication signals, and software distribution media, etc. The content contained in the computer-readable storage medium may be appropriately increased or decreased according to the requirements of the legislation and patent practice in the jurisdiction. For example, in some jurisdictions, the computer-readable storage medium does not include the electronic carrier signals and telecommunication signals.
如图5所示,本申请还提供了一种计算机设备。在一个计算机设备实施例中,计算机设备包括处理器10和存储装置20,存储装置20可以被配置成存储执行上述方法实施例的软件操作系统调用Android动态库HAL接口的方法的程序,处理器10可以被配置成执行存储装置20中的程序,该程序包括执行上述方法实施例的软件操作系统调用Android动态库HAL接口的方法的程序。为了便于说明,仅示出了与本申请实施例相关的部分,技术细节未揭示的,请参照本申请实施例方法部分。该计算机设备可以是包括多种电子设备形成的控制装置设备。As shown in FIG. 5 , the present application also provides a computer device. In an embodiment of a computer device, the computer device includes a processor 10 and a storage device 20, the storage device 20 may be configured to store a program for executing the method in which the software operating system of the method embodiment calls the Android dynamic library HAL interface, and the processor 10 It may be configured to execute a program in the storage device 20 , the program includes a program that executes the method of calling the Android dynamic library HAL interface by the software operating system of the above method embodiment. For ease of description, only the parts related to the embodiments of the present application are shown, and for technical details not disclosed, please refer to the method part of the embodiments of the present application. The computer device may be a control device device formed including various electronic devices.
本申请还提供了一种计算机可读存储介质。在一个计算机可读存储介质实施例中,计算机可读存储介质可以被配置成存储执行上述方法实施例的软件操作系统调用Android动态库HAL接口的方法的程序,该程序可以由处理器加载并运行以实现上述软件操作系统调用Android动态库HAL接口的方法。为了便于说明,仅示出了与本申请实施例相关的部分,技术细节未揭示的,请参照本申请实施例方法部分。该计算机可读存储介质可以是包括多种电子设备形成的存储装置设备,例如,本申请实施例中计算机可读存储介质是非暂时性的计算机可读存储介质。The present application also provides a computer-readable storage medium. In a computer-readable storage medium embodiment, the computer-readable storage medium may be configured to store a program for executing the method in which the software operating system of the above method embodiment calls the Android dynamic library HAL interface, and the program may be loaded and run by the processor In order to realize the method of calling the Android dynamic library HAL interface by the above-mentioned software operating system. For ease of description, only the parts related to the embodiments of the present application are shown, and for technical details not disclosed, please refer to the method part of the embodiments of the present application. The computer-readable storage medium may be a storage device formed by including various electronic devices. For example, the computer-readable storage medium in the embodiment of the present application is a non-transitory computer-readable storage medium.
Claims (10)
- 一种软件操作系统调用Android动态库硬件抽象层HAL接口的方法,应用于运行在基于Android HAL的设备上的软件操作系统,包括:A method for a software operating system to call an Android dynamic library hardware abstraction layer HAL interface, applied to a software operating system running on an Android HAL-based device, including:在所述软件操作系统的软件进程调用所述软件操作系统的封装库中一个函数方法function的情况下,控制所述软件进程调用所述软件操作系统的封装库,并在所述封装库初始化时调用预设的兼容链接器;When the software process of the software operating system calls a function method function in the packaging library of the software operating system, control the software process to call the packaging library of the software operating system, and when the packaging library is initialized Call the preset compatible linker;基于所述兼容链接器调用所述Android HAL的封装库中所述一个函数方法function对应的目标函数方法function,以完成所述软件操作系统对Android动态库HAL接口的调用。Based on the compatible linker calling the target function method function corresponding to the function method function in the encapsulation library of the Android HAL, to complete the calling of the Android dynamic library HAL interface by the software operating system.
- 根据权利要求1所述的软件操作系统调用Android动态库HAL接口的方法,其中,在所述Android HAL的封装库中所述一个函数方法function对应的目标函数方法function在运行时需要调用所述设备加载的Android的C基础库中的其他目标函数方法function的情况下,所述基于所述兼容链接器调用所述Android HAL的封装库中所述一个函数方法function对应的目标函数方法function,包括:The method for calling the Android dynamic library HAL interface according to the software operating system according to claim 1, wherein, in the encapsulation library of the Android HAL, the target function method function corresponding to a function method function needs to call the device at runtime In the case of other target function method functions in the C base library of Android loaded, the target function method function corresponding to the one function method function in the encapsulation library of the Android HAL based on the compatible linker call includes:判断所述Android的C基础库中的所述其他目标函数方法function与所述软件操作系统的C基础库中的所述其他目标函数方法function是否存在冲突;Judging whether there is a conflict between the other target function method functions in the C basic library of the Android and the other target function method functions in the C basic library of the software operating system;响应于所述Android的C基础库中的所述其他目标函数方法function与所述软件操作系统的C基础库中的所述其他目标函数方法function存在冲突,基于所述兼容链接器调用所述软件操作系统的C基础库中的所述其他目标函数方法function;In response to conflicts between the other target function method functions in the C base library of the Android and the other target function method functions in the C base library of the software operating system, calling the software based on the compatible linker The other target function method function in the C basic library of the operating system;响应于所述Android的C基础库中的所述其他目标函数方法function与所述软件操作系统的C基础库中的所述其他目标函数方法function不存在冲突,基于所述兼容链接器调用所述Android的C基础库中的所述其他目标函数方法function。In response to the fact that there is no conflict between the other target function method function in the C base library of the Android and the other target function method function in the C base library of the software operating system, based on the compatible linker calling the The other target function method functions in Android's C base library.
- 根据权利要求2所述的软件操作系统调用Android动态库HAL接口的方法,其中,所述基于所述兼容链接器调用所述软件操作系统的C基础库中的所述目标函数方法function,包括:The method for calling the Android dynamic library HAL interface by the software operating system according to claim 2, wherein the method of calling the target function method function in the C basic library of the software operating system based on the compatible linker includes:基于所述兼容链接器并通过Hook方式调用所述软件操作系统的C基础库中的所述目标函数方法function。Calling the target function method function in the C basic library of the software operating system based on the compatible linker through Hook mode.
- 根据权利要求1所述的软件操作系统调用Android动态库HAL接口的方法,满足以下至少之一:The method for calling the Android dynamic library HAL interface according to the software operating system described in claim 1 satisfies at least one of the following:所述控制所述软件进程调用所述软件操作系统的封装库,包括:控制所述 软件进程通过链接动态库的方式调用所述软件操作系统的封装库;The controlling the software process to call the encapsulation library of the software operating system includes: controlling the software process to call the encapsulation library of the software operating system by linking a dynamic library;所述Android HAL的封装库中对应的函数方法function是所述Android HAL的封装库从所述设备加载的Android的C基础库中调用到的函数方法function;The corresponding function method function in the packaging library of the Android HAL is the function method function that the packaging library of the Android HAL calls from the C basic library of Android loaded by the device;或者or所述软件操作系统是Linux操作系统,所述Linux操作系统的封装库是Linux面向嵌入式系统的开放式图形库OpenGLES封装库,所述Android HAL的封装库是Android HAL OpenGLES封装库。Described software operating system is Linux operating system, and the encapsulation storehouse of described Linux operating system is the OpenGLES encapsulation storehouse of Linux-oriented open graphics library for embedded systems, and the encapsulation storehouse of described Android HAL is Android HAL OpenGLES encapsulation storehouse.
- 根据权利要求1至4中任一项所述的软件操作系统调用Android动态库HAL接口的方法,其中,在所述控制所述软件进程调用所述软件操作系统的封装库之前,还包括:The method for calling the Android dynamic library HAL interface by the software operating system according to any one of claims 1 to 4, wherein, before the control of the software process calls the encapsulation library of the software operating system, it also includes:对所述软件操作系统与所述Android HAL进行资源隔离,以使所述软件操作系统与所述Android HAL在所述设备上分别独立运行。Resource isolation is performed on the software operating system and the Android HAL, so that the software operating system and the Android HAL run independently on the device.
- 根据权利要求5所述的软件操作系统调用Android动态库HAL接口的方法,其中,所述对所述软件操作系统与所述Android HAL进行资源隔离,包括:The method for calling the Android dynamic library HAL interface according to the software operating system according to claim 5, wherein said resource isolation to said software operating system and said Android HAL comprises:基于NameSpace机制创建隔离容器并在所述隔离容器内运行所述软件操作系统或所述Android HAL。Create an isolated container based on the NameSpace mechanism and run the software operating system or the Android HAL in the isolated container.
- 根据权利要求6所述的软件操作系统调用Android动态库HAL接口的方法,其中,所述基于NameSpace机制创建隔离容器并在所述隔离容器内运行所述软件操作系统或所述Android HAL,包括:The method for calling the Android dynamic library HAL interface by the software operating system according to claim 6, wherein, creating an isolated container based on the NameSpace mechanism and running the software operating system or the Android HAL in the isolated container, comprising:在启动所述设备,且首个用户态进程是Android HAL进程的情况下,则启动所述Android HAL并在所述Android HAL启动完成后基于所述NameSpace机制创建所述隔离容器;When the device is started, and the first user state process is an Android HAL process, then start the Android HAL and create the isolated container based on the NameSpace mechanism after the Android HAL startup is complete;在所述隔离容器内启动所述软件操作系统,以在所述隔离容器内运行所述软件操作系统。The software operating system is started in the isolated container to run the software operating system in the isolated container.
- 根据权利要求6所述的软件操作系统调用Android动态库HAL接口的方法,其中,所述基于NameSpace机制创建隔离容器并在所述隔离容器内运行所述软件操作系统或所述Android HAL,包括:The method for calling the Android dynamic library HAL interface by the software operating system according to claim 6, wherein, creating an isolated container based on the NameSpace mechanism and running the software operating system or the Android HAL in the isolated container, comprising:在启动所述设备,且首个用户态进程是软件进程的情况下,启动所述软件操作系统的非核心服务并在所述非核心服务启动完成后基于所述NameSpace机制创建所述隔离容器;When the device is started and the first user state process is a software process, start the non-core service of the software operating system and create the isolated container based on the NameSpace mechanism after the non-core service is started;在所述隔离容器内启动所述Android HAL,以在所述隔离容器内运行所述 Android HAL;launching said Android HAL within said isolated container to run said Android HAL within said isolated container;在所述Android HAL启动完成后继续启动所述软件操作系统的核心服务。Continue to start the core service of the software operating system after the Android HAL startup is completed.
- 一种计算机设备,包括处理器和存储装置,所述存储装置适于存储多条程序代码,其中,所述程序代码适于由所述处理器加载并运行以执行权利要求1至8中任一项所述的软件操作系统调用Android动态库HAL接口的方法。A computer device comprising a processor and a storage device, the storage device being adapted to store a plurality of pieces of program code, wherein the program code is adapted to be loaded and run by the processor to perform any one of claims 1 to 8 The software operating system described in the item calls the method of the Android dynamic library HAL interface.
- 一种计算机可读存储介质,存储有多条程序代码,其中,所述程序代码适于由处理器加载并运行以执行权利要求1至8中任一项所述的软件操作系统调用Android动态库HAL接口的方法。A computer-readable storage medium storing a plurality of program codes, wherein the program codes are adapted to be loaded and run by a processor to execute the software operating system described in any one of claims 1 to 8 to call the Android dynamic library Methods of the HAL interface.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110373360.6A CN113190280A (en) | 2021-04-07 | 2021-04-07 | Method and device for calling Android HAL dynamic library by Linux system and storage medium |
CN202111672017.8A CN114077460B (en) | 2021-04-07 | 2021-12-31 | Method, equipment and medium for calling Android dynamic library HAL interface by software operating system |
CN202111672017.8 | 2021-12-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023124968A1 true WO2023124968A1 (en) | 2023-07-06 |
Family
ID=76974916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2022/138657 WO2023124968A1 (en) | 2021-04-07 | 2022-12-13 | Method for calling android dynamic library hal interface by software operating system, device and medium |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN113190280A (en) |
WO (1) | WO2023124968A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118445032A (en) * | 2024-07-05 | 2024-08-06 | 统信软件技术有限公司 | Service providing method, apparatus, electronic device, storage medium, and computer program product |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190294A (en) * | 2021-04-07 | 2021-07-30 | 北京鲸鲮信息系统技术有限公司 | Method and device for calling Android HIDL interface by Linux system and storage medium |
CN113190280A (en) * | 2021-04-07 | 2021-07-30 | 北京鲸鲮信息系统技术有限公司 | Method and device for calling Android HAL dynamic library by Linux system and storage medium |
CN114564247B (en) * | 2022-02-23 | 2024-10-22 | 北京字节跳动网络技术有限公司 | Multi-system compatible method and device, electronic equipment and storage medium |
CN115016856A (en) * | 2022-02-23 | 2022-09-06 | 北京字节跳动网络技术有限公司 | Multi-system compatible method and device, electronic equipment and storage medium |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6259958B1 (en) * | 1997-12-19 | 2001-07-10 | Honeywell International Inc. | Call mechanism for static and dynamic linked functions within an object-oriented controller using heterogeneous development tool sets |
WO2012138046A1 (en) * | 2011-04-04 | 2012-10-11 | 주식회사 인프라웨어테크놀러지 | Terminal device and method for executing an android application on a general-purpose operating system, and computer-readable recording medium for same |
CN113190280A (en) * | 2021-04-07 | 2021-07-30 | 北京鲸鲮信息系统技术有限公司 | Method and device for calling Android HAL dynamic library by Linux system and storage medium |
CN113190294A (en) * | 2021-04-07 | 2021-07-30 | 北京鲸鲮信息系统技术有限公司 | Method and device for calling Android HIDL interface by Linux system and storage medium |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7774762B2 (en) * | 2003-09-15 | 2010-08-10 | Trigence Corp. | System including run-time software to enable a software application to execute on an incompatible computer platform |
US8407662B2 (en) * | 2010-06-25 | 2013-03-26 | Wyse Technology Inc. | Apparatus and method for network driver injection into target image |
CN103970559B (en) * | 2013-02-05 | 2017-09-29 | 北京壹人壹本信息科技有限公司 | A kind of equipment loading method and device based on android system |
CN105808320B (en) * | 2016-03-11 | 2018-12-04 | 四川安嵌科技有限公司 | Equipment virtualization system and method based on L inux container |
US10282210B2 (en) * | 2016-06-13 | 2019-05-07 | Huawei Technologies Co., Ltd. | System and method for virtual hardware control |
CN109388473A (en) * | 2018-09-19 | 2019-02-26 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | Android compatible layer implementation method and system based on mobile operating system |
CN110532208B (en) * | 2019-07-12 | 2021-05-28 | 优刻得科技股份有限公司 | Data processing method, interface conversion structure and data processing equipment |
-
2021
- 2021-04-07 CN CN202110373360.6A patent/CN113190280A/en active Pending
- 2021-12-31 CN CN202111672017.8A patent/CN114077460B/en active Active
-
2022
- 2022-12-13 WO PCT/CN2022/138657 patent/WO2023124968A1/en unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6259958B1 (en) * | 1997-12-19 | 2001-07-10 | Honeywell International Inc. | Call mechanism for static and dynamic linked functions within an object-oriented controller using heterogeneous development tool sets |
WO2012138046A1 (en) * | 2011-04-04 | 2012-10-11 | 주식회사 인프라웨어테크놀러지 | Terminal device and method for executing an android application on a general-purpose operating system, and computer-readable recording medium for same |
CN113190280A (en) * | 2021-04-07 | 2021-07-30 | 北京鲸鲮信息系统技术有限公司 | Method and device for calling Android HAL dynamic library by Linux system and storage medium |
CN113190294A (en) * | 2021-04-07 | 2021-07-30 | 北京鲸鲮信息系统技术有限公司 | Method and device for calling Android HIDL interface by Linux system and storage medium |
CN114077462A (en) * | 2021-04-07 | 2022-02-22 | 北京鲸鲮信息系统技术有限公司 | Method, device, equipment and medium for calling Android HIDL interface by software operating system |
CN114077460A (en) * | 2021-04-07 | 2022-02-22 | 北京鲸鲮信息系统技术有限公司 | Method, equipment and medium for calling Android dynamic library HAL interface by software operating system |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118445032A (en) * | 2024-07-05 | 2024-08-06 | 统信软件技术有限公司 | Service providing method, apparatus, electronic device, storage medium, and computer program product |
Also Published As
Publication number | Publication date |
---|---|
CN113190280A (en) | 2021-07-30 |
CN114077460B (en) | 2024-03-26 |
CN114077460A (en) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2023124967A1 (en) | Method for calling android hidl interface by software operating system, and device and medium | |
WO2023124968A1 (en) | Method for calling android dynamic library hal interface by software operating system, device and medium | |
CA2768752C (en) | Terminal device of non-android platform for executing android applications, and computer readable recording medium for storing program of executing android applications on non-android platform | |
US11301562B2 (en) | Function execution based on data locality and securing integration flows | |
JP6074038B2 (en) | Transparent host-side caching of virtual disks on shared storage | |
US9928010B2 (en) | Methods and apparatus to re-direct detected access requests in a modularized virtualization topology using virtual hard disks | |
US10101915B2 (en) | Methods and apparatus to manage inter-virtual disk relations in a modularized virtualization topology using virtual hard disks | |
US20190141145A1 (en) | Cloud-scale heterogeneous datacenter management infrastructure | |
WO2018099292A1 (en) | Process management method and apparatus | |
EP4100829A1 (en) | Firmware update patch | |
CN110007980B (en) | Method and device for realizing multi-service server | |
JP6458959B2 (en) | Co-designed dynamic language accelerator for processors | |
US9804789B2 (en) | Methods and apparatus to apply a modularized virtualization topology using virtual hard disks | |
US20120240116A1 (en) | Performance In A Virtualization Architecture With A Processor Abstraction Layer | |
US20230266984A1 (en) | Container-based operating system translation | |
KR20140117594A (en) | Optimization of resource usage in a multi-environment computing system | |
US10552135B1 (en) | Reducing a size of an application package | |
US20160378360A1 (en) | Methods and apparatus to enforce life cycle rules in a modularized virtualization topology using virtual hard disks | |
JP7522775B2 (en) | Non-volatile storage partition identifier | |
US20110041134A1 (en) | Pluggable component interface | |
CN102063303B (en) | Method for supporting kdata page of WinCE/WM by Linux kernel | |
US11323331B2 (en) | Cloud server and operating method of the same | |
CN117555558A (en) | Method for running Android application on embedded Linux operating system | |
CN118245073A (en) | Unified Linux operating system mirror image design method and device for multi-RISC-V platform | |
CN114691181A (en) | Hot upgrading method, device, equipment, distributed system and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22914223 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |