CN111984263A - 在第一系统运行第二系统应用的方法、装置、设备及介质 - Google Patents
在第一系统运行第二系统应用的方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN111984263A CN111984263A CN202010702737.3A CN202010702737A CN111984263A CN 111984263 A CN111984263 A CN 111984263A CN 202010702737 A CN202010702737 A CN 202010702737A CN 111984263 A CN111984263 A CN 111984263A
- Authority
- CN
- China
- Prior art keywords
- application
- function
- target terminal
- running
- compiling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000004806 packaging method and process Methods 0.000 claims abstract description 38
- 230000006870 function Effects 0.000 claims description 368
- 238000012545 processing Methods 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 24
- 238000011161 development Methods 0.000 claims description 22
- 238000009434 installation Methods 0.000 claims description 11
- 238000010276 construction Methods 0.000 claims description 3
- ONIBWKKTOPOVIA-UHFFFAOYSA-N Proline Chemical compound OC(=O)C1CCCN1 ONIBWKKTOPOVIA-UHFFFAOYSA-N 0.000 description 40
- 230000008569 process Effects 0.000 description 9
- 239000008186 active pharmaceutical agent Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 239000003826 tablet Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012858 packaging process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请适用于信息技术领域,提供了一种在第一系统运行第二系统应用的方法、装置、设备及介质,所述方法包括:通过目标终端上的加载器,构建第二系统应用的运行环境,目标终端运行有第一系统;在加载器中,创建第二系统应用的应用功能组件;利用目标终端支持的编译环境,将第二系统应用的脚本文件编译为动态库文件,并将动态库文件封装为应用包;通过加载器安装应用包,并在运行环境中运行应用包中的动态库文件。上述方法,通过利用目标终端支持的编译环境对第二系统应用的脚本文件进行编译,使得编译得到的动态库文件在运行时所产生的系统指令能被目标终端直接响应,不需要目标终端对该指令进行解析转换,可以提升应用程序跨平台运行的效率。
Description
技术领域
本申请属于信息技术领域,尤其涉及一种在第一系统运行第二系统应用的方法、装置、设备及介质。
背景技术
现有技术中,为了实现应用程序的跨平台运行,通常是使用虚拟机在智能终端上为应用程序提供虚拟机运行环境。然而,在应用程序运行时,应用程序运行的虚拟环境和智能终端的实际环境交互非常复杂。即在运行过程中,需要在虚拟环境中逐条解析应用程序的操作指令,然后根据解析到的结果,去控制智能终端内部的硬件结构响应应用程序。然而,在应用程序对操作指令进行逐条解析时,将导致应用程序跨平台运行的效率受到严重影响。
发明内容
本申请实施例提供了一种在第一系统运行第二系统应用的方法、装置、设备及介质,可以提高应用程序跨平台运行的效率。
第一方面,本申请实施例提供了一种在第一系统运行第二系统应用的方法,包括:
通过目标终端上的加载器,构建所述第二系统应用的运行环境,所述目标终端运行有所述第一系统;
在所述加载器中,创建所述第二系统应用的应用功能组件;
利用所述目标终端支持的编译环境,将所述第二系统应用的脚本文件编译为动态库文件,并将所述动态库文件封装为应用包;
通过所述加载器安装所述应用包,并在所述运行环境中运行所述应用包中的动态库文件;其中,所述动态库文件运行时,通过所述应用功能组件调用所述目标终端中的相应功能,实现在所述第一系统中运行所述第二系统应用。
在一实施例中,所述在所述加载器中,创建所述第二系统应用的应用功能组件,包括:
获取所述目标终端的目标功能接口,以及确定所述第二系统应用待实现的各个应用功能;
根据所述目标功能接口,在所述加载器中编写实现所述各个应用功能的功能处理函数,通过所述功能处理函数生成所述各个应用功能对应的应用功能接口,多个应用功能接口构成所述第二系统应用的应用功能组件;
将所述应用功能组件存储至所述运行环境中。
在一实施例中,所述利用所述目标终端支持的编译环境,将所述第二系统应用的脚本文件编译为动态库文件,并将所述动态库文件封装为应用包,包括:
确定所述第二系统应用待实现的各个应用功能;
根据所述各个应用功能,创建用于被所述第二系统应用调用的虚拟应用功能组件;其中,所述虚拟应用功能组件满足所述第二系统应用的编程需求;
利用所述目标终端支持的编译环境,将包含所述虚拟应用功能组件的所述第二系统应用的脚本文件编译为动态库文件,并将所述动态库文件封装为应用包,所述应用包满足所述目标终端的安装要求。
在一实施例中,在第一系统运行第二系统应用的方法,还包括:
分别在所述应用功能组件包含的各个应用功能接口对应的脚本文件中,写入强属性函数;其中,所述强属性函数包含分别用于识别各个应用功能接口的第一标识;
分别在所述虚拟应用功能组件包含的各个虚拟应用功能接口对应的脚本文件中,写入弱属性函数;其中,所述弱属性函数包含分别用于识别各个虚拟应用功能接口的第二标识;
根据所述第一标识与所述第二标识,建立所述应用功能组件中各个应用功能接口,与所述虚拟应用功能组件中各个虚拟应用功能接口之间的对应关系;其中,所述强属性函数对应的应用功能接口用于被所述第二系统应用调用,以实现所述第二系统相应的应用功能。
在一实施例中,在通过所述加载器安装所述应用包,并在所述运行环境中运行所述应用包中的动态库文件之后,还包括:
若所述第二系统应用调用应用功能接口时,在目标终端内未实现相应应用功能,则确定所述相应应用功能对应的应用功能接口存在漏洞;
根据所述漏洞修复所述对应的应用功能接口。
在一实施例中,所述利用所述目标终端支持的编译环境,将包含所述虚拟应用功能组件的所述第二系统应用的脚本文件编译为动态库文件,并将所述动态库文件封装为应用包,包括:
确定所述目标终端支持的编译工具链,并将所述编译工具链添加至开发工具中;其中,所述编译工具链用于使所述开发工具直接将所述第二系统应用的脚本文件,编译成所述目标终端支持的动态库文件;
在校验所述虚拟应用功能组件合格后,将所述第二系统应用的脚本文件编译为动态库文件;
根据用户的操作指令,确定所述目标终端的目标打包策略,并根据所述目标打包策略对所述脚本文件进行打包,生成满足所述目标终端的安装要求的应用包。
在一实施例中,在通过所述加载器安装所述应用包,并在所述运行环境中运行所述应用包中的动态库文件之后,还包括:
在所述第二系统应用在所述运行环境中运行时,记录所述第二系统应用使用所述目标终端的系统资源;
当所述第二系统应用退出运行时,释放所述系统资源。
第二方面,本申请实施例提供了一种在第一系统运行第二系统应用的装置,包括:
构建模块,用于通过目标终端上的加载器,构建所述第二系统应用的运行环境,所述目标终端运行有所述第一系统;
创建模块,用于在所述加载器中,创建所述第二系统应用的应用功能组件;
编译模块,用于利用所述目标终端支持的编译环境,将所述第二系统应用的脚本文件编译为动态库文件,并将所述动态库文件封装为应用包;
运行模块,用于通过所述加载器安装所述应用包,并在所述运行环境中运行所述应用包中的动态库文件;其中,所述动态库文件运行时,通过所述应用功能组件调用所述目标终端中的相应功能,实现在所述第一系统中运行所述第二系统应用。
第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上述第一方面任一项所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面任一项所述的方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的方法。
本申请实施例与现有技术相比存在的有益效果是:通过使用与目标终端具有强相关性的加载器,创建第二系统应用的运行环境,以及应用功能组件,并利用目标终端支持的编译环境,编译第二系统应用脚本文件,生成应用包。通过利用目标终端支持的编译环境对第二系统应用的脚本文件进行编译,使得编译得到的动态库文件在运行时所产生的系统指令能被目标终端直接响应,不需要目标终端对该指令进行解析转换,可以提升应用程序跨平台运行的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的在第一系统运行第二系统应用的方法的一种流程示意图;
图2是本申请另一实施例提供的在第一系统运行第二系统应用的方法的一种流程示意图;
图3是本申请另一实施例提供的在第一系统运行第二系统应用的方法的一种流程示意图;
图4是本申请一实施例提供的在第一系统运行第二系统应用的软件架构示意图;
图5是本申请一实施例提供的在第一系统运行第二系统应用的装置的一种结构示意图;
图6是本申请一实施例提供的终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
本申请实施例提供的在第一系统运行第二系统应用的方法可以应用于手机、平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。
参照图1,图1示出了本申请实施例提供的在第一系统运行第二系统应用的实现流程图,所述方法详述如下:
S101、通过目标终端上的加载器,构建所述第二系统应用的运行环境,所述目标终端运行有所述第一系统。
在应用中,上述目标终端可以为销售终端(POS)、手机、平板电脑、笔记本电脑等终端设备,对此不作限定。上述加载器可用于读取可执行文件(系统应用的脚本文件),将可执行文件的内容写入存储器中,之并让可执行文件运行。上述第一系统包括但不限于Prolin系统、linux等其他系统,第二系统与第一系统不同,但第二系统也包括但不限于PaxMe系统、android系统等其他系统。为便于解释说明,本申请以第一系统为Prolin系统为例,第二系统以PaxMe系统为例进行解释说明。其中,Prolin系统为基于linux开发的一种多任务操作系统,PaxMe系统为一种单任务操作系统。
其中,PaxMe系统可用于实现销售终端(Point Of Sale,POS)的消费、转账等功能。PaxMe系统的软件层包括用户层、多应用管理层、设备驱动层、启动层。其中,用户层负责应用功能的实现;多应用管理层提供子应用的调度和管理功能,也可作为单应用的模式实现应用功能;设备驱动层负责各个驱动功能的实现、负责安全和权限控制;启动层负责硬件的启动和引导。PaxMe系统中的硬件层则包括:安全CPU,用于实现处理操作指令,且带有内部以及外部安全触发机制处理等功能;磁卡模块,用于通过串行外设接口与安全CPU进行通讯;屏幕接口,用于显示处理信息;物理按键,用于与外部进行交互;非接模块,具有与智能卡(Integrated Circuit Card,IC卡)进行交易与认证的标准规范;打印机,用于将安全CPU处理结果打印在相关介质上;IC卡读卡器,用于识别IC卡;无线通信模块,用于与外部进行通讯;存储器,用于存储系统程序和各种数据;调制解调器,用于将数字信号转换为模拟信号进行发送,通过解调再将接收到的模拟信号转换为数字信号;以太网模块,用于定义采用的信号处理方法。
在应用中,加载器是和目标终端具有强相关性的一个应用文件,目标终端为了支持PaxMe应用,需要先在当前目标终端上开发加载器,并将其作为目标终端自身的系统应用组件打包安装在目标终端上。当目标终端需要运行PaxMe应用时,目标终端会调用自身的加载器来加载运行PaxMe应用。
在应用中,上述运行环境为PaxMe应用程序进行运行的虚拟机层,对于PaxMe应用,为使得其能够在具有Prolin系统的目标终端上进行加载和运行,则目标终端上需要有对应的其相应的运行环境,可在加载器中进行构建。
S102、在所述加载器中,创建所述第二系统应用的应用功能组件。
在应用中,上述应用功能组件包括但不限于:PaxMe应用的入口组件、PaxMe应用的退出组件、PaxMe应用的运行组件(各个应用功能组件)等,对此不作限定。
在应用中,在构建上述PaxMe应用的运行环境时,其目的是为了是加载器能够加载该PaxMe应用。然而,加载PaxMe应用需要相应的加载功能组件(PaxMe应用的入口函数,即入口功能组件),跳转至PaxMe应用内部,使目标终端的系统平台开始运行PaxMe应用,完成对PaxMe应用的加载和启动。因此,需要在加载器中,加载创建PaxMe应用的应用功能组件。
S103、利用所述目标终端支持的编译环境,将所述第二系统应用的脚本文件编译为动态库文件,并将所述动态库文件封装为应用包。
在应用中,上述编译环境由开发工具进行提供,对脚本文件进行编译,该开发工具内部增加了Prolin系统支持的编译工具链,可直接将PaxMe应用的程序源代码(脚本文件)编译成目标终端支持的动态库文件。对于不同的系统平台的目标终端,所支持的编译环境也各不相同。区别于在对PaxMe应用进行编译时,使用PaxMe系统对应的客户终端支持的编译工具链,编译完成的动态库文件内部的二进制指令为PaxMe系统指令,在运行过程中需逐条解析客户终端指令,然后根据解析到的结果控制目标终端。本实施例在编译时,使用Prolin系统支持的编译工具链,生成目标终端支持的编译环境,使编译出来的动态库文件内部二进制指令,即为Prolin系统支持的指令,使得PaxMe应用在目标终端上运行时,不需要做指令转换,带来PaxMe应用运行效率的提升。且由于PaxMe应用在运行时,不需要做不同系统平台之间的指令转换(PaxMe系统指令到Prolin系统指令的转换),因此,在对PaxMe应用的开发过程中进行异常分析,带来极大的便利,开发人员可对发现的问题,实现快速精准定位。
在应用中,上述应用包为可被目标终端下载并安装的程序包。其中,不同系统之间要求的应用包格式会有不同。例如,Android系统支持apk格式应用包,Prolin系统支持的aip格式应用包等。
在应用中,上述对脚本文件进行编译的过程可以为:将应用程序源码(脚本文件)通过编译预处理、编译、汇编等步骤产生中间文件,然后对其进行链接,产生应用程序目标文件(动态库文件)。
S104、通过所述加载器安装所述应用包,并在所述运行环境中运行所述应用包中的动态库文件;其中,所述动态库文件运行时,通过所述应用功能组件调用所述目标终端中的相应功能,实现在所述第一系统中运行所述第二系统应用。
在应用中,在加载PaxMe应用时,加载器可解析PaxMe应用的脚本文件(动态库文件),将PaxMe应用加载到加载器中的内存空间中,做好PaxMe应用运行前的准备工作。在运行时,PaxMe应用通过应用功能组件调用目标终端内的硬件进行实现相应功能。
在本实施例中,通过使用与目标终端具有强相关性的加载器,创建第二系统应用的运行环境,以及应用功能组件,并利用目标终端支持的编译环境,编译第二系统应用脚本文件,生成应用包。通过利用目标终端支持的编译环境对第二系统应用的脚本文件进行编译,使得编译得到的动态库文件在运行时所产生的系统指令能被目标终端直接响应,不需要目标终端对该指令进行解析转换,可以提升应用程序跨平台运行的效率。
参照图2,在一实施例中,S102包括:
S201、获取所述目标终端的目标功能接口,以及确定所述第二系统应用待实现的各个应用功能。
在应用中,上述目标功能接口用于加载器在运行时,通过该目标功能接口可对目标终端的各个硬件进行控制。上述第二系统应用待实现的各个应用功能,为开发PaxMe应用时,开发的各个应用功能。
S202、根据所述目标功能接口,在所述加载器中编写实现所述各个应用功能的功能处理函数,通过所述功能处理函数生成所述各个应用功能对应的应用功能接口,多个应用功能接口构成所述第二系统应用的应用功能组件。
在应用中,根据所述目标功能接口,生成应用功能接口具体为:PaxMe应用的各个应用功能要实现时,均有对应的功能处理函数。将相应的功能处理函数编写入接口中,便可形成相应的应用功能接口。而在本实施例中,为了使PaxMe应用能够直接通过加载器调用目标终端的相应硬件实现相应功能,需要在加载器中,将PaxMe应用的各个应用功能的功能处理函数,编写入目标终端的各个目标功能接口内。上述应用功能组件即包含由多个功能接口形成的。
在应用中,在加载器中编写各个应用功能的功能处理函数具体为:通过在加载器中编写每个PaxMe接口的功能处理函数,然后将加载器作为目标终端上的一个系统组件安装到目标终端中,使宿主机有处理PaxMe API应用逻辑的功能。PaxMe应用程序运行时,在loader构建的应用程序运行环境中loader中的PaxMe API功能处理函数和PaxMe应用程序处于同一内存空间,使得PaxMe应用程序可以通过syscall调用到loader中PaxMe API的真实实现。
S203、将所述应用功能组件存储至所述运行环境中。
在应用中,上述应用功能组件还可存储至加载器中,加载器在加载PaxMe应用,PaxMe应用将在运行环境中进行运行,同时将应用功能组件加载至运行环境中,使其与PaxMe应用处于统一内存空间。因此,将应用功能组件存储在运行环境中,可使得PaxMe应用在运行时,随时调用相应应用功能组件,在目标终端内实现相应功能。
在本实施例中,通过将第二系统应用中待实现的各个应用功能的功能处理函数,写入目标终端的目标功能接口中,生成应用功能组件存储在运行环境中,使其可以随时在加载器中被PaxMe应用进行调用,且加载器又为与目标终端具有强相关性的系统组件,使得目标终端具有处理PaxMe接口(应用功能接口)应用逻辑的功能。
参照图3,在一实施例中,S103包括:
S301、确定所述第二系统应用待实现的各个应用功能。
上述S201已说明用待实现的各个应用功能,对此不在进行说明。
S302、根据所述各个应用功能,创建用于被所述第二系统应用调用的虚拟应用功能组件;其中,所述虚拟应用功能组件满足所述第二系统应用的编程需求。
在应用中,上述虚拟应用功能组件即可认为包含待实现的各个应用功能的虚拟功能接口,其用于满足第二系统应用的编程需求。具体的,虚拟应用功能组件为libPaxMe组件,LibPaxMe组件的核心功能为向PaxMe应用提供PaxMe API(PaxMe功能接口),满足PaxMe应用编程需要。在PaxMe应用中,其包含PaxMe syscall文件,其为一个调用系统调用的小型库函数,每个syscall函数用于调用libPaxMe组件中相应PaxMe API。然而,在libPaxMe组件设计中,在syscall函数声明时增加attribute__((weak))标识,为libPaxMe组件中的syscall函数增加weak(弱)属性,使libPaxMe中的syscall称为弱符号。以达到目标终端中编译环境对应用程序符号完整性的检查。
S303、利用所述目标终端支持的编译环境,将包含所述虚拟应用功能组件的所述第二系统应用的脚本文件编译为动态库文件,并将所述动态库文件封装为应用包,所述应用包满足所述目标终端的安装要求。
在应用中,目标终端在对其进行编译时,将会使虚拟应用功能组件也被一编译至应用包中,并被加载器进行安装。在运行PaxMe应用时,其对应的虚拟应用功能组件也将处于运行环境这一进程空间内。但如上述S202描述,具有实现各个应用功能的功能处理函数在加载器中的运行环境中实现并存储。即可认为PaxMe应用通过libPaxMe组件使用对应的syscall函数,将调用到加载器中的应用功能接口。而后加载器使用应用功能接口中的功能处理函数完成PaxMe应用的实际功能。即虚拟功能组件不参与PaxMe应用的业务逻辑实现。
在应用中,因libPaxMe组件(虚拟功能组件)只用于编译环境对应用程序符号完整性的检查。因此,只提供和目标终端实际运行环境无关的虚拟功能接口外壳(该虚拟功能接口内部均只有syscall调用,并没有实际的功能处理函数),该虚拟功能接口和具体系统(Prolin)平台无关。因此,系统平台无关的代码可采用任意编译工具链进行编译,也即在对PaxMe应用进行编译时,可采用目标终端支持的编译链对系统平台无关代码(libPaxMe组件)进行编译。编译链输出的二进制文件即为Prolin系统支持的二进制文件,输出的二级制指令也可被Prolin系统支持,使PaxMe应用能直接实现在目标终端上运行的效果。
在本实施例中,通过创建用于被第二系统应用调用的虚拟应用功能组件,使第二系统应用在编程时可以其编程需求,且不将功能处理函数写入虚拟应用功能组件中,使其不参与PaxMe应用的业务逻辑实现。因此,可以使用目标终端支持的编译链对系统平台无关代码进行编译,使PaxMe应用能直接实现在目标终端上运行的效果。
在一实施例中,上述在第一系统运行第二系统应用的方法还包括:
分别在所述应用功能组件包含的各个应用功能接口对应的脚本文件中,写入强属性函数;其中,所述强属性函数包含分别用于识别各个应用功能接口的第一标识。
在应用中,上述强属性函数具体可以为:非attribute__((weak))标识的函数,也可认为是对于各个应用功能接口对应的脚本文件中,并未增加上述论述的attribute__((weak))标识,对此不作限定。对应的,在PaxMe应用中,其包含PaxMe syscall文件,其为一个调用系统调用的小型库函数,每个syscall函数也可调用加载器中的非weak属性(强属性函数)的应用功能接口,用于被PaxMe应用在运行时调用。其中,每个应用功能接口对应的syscall函数均有相应的第一标识,用于进行区分。另外,第一标识可以为数字、字母或特殊符号的一种或多种,对此不作限定。
分别在所述虚拟应用功能组件包含的各个虚拟应用功能接口对应的脚本文件中,写入弱属性函数;其中,所述弱属性函数包含分别用于识别各个虚拟应用功能接口的第二标识。
在应用中,上述已说明虚拟应用功能组件为libPaxMe组件,在libPaxMe组件设计中,通过在syscall函数声明时增加attribute__((weak))标识,为libPaxMe中的syscall函数增加weak(弱)属性,使libPaxMe中的syscall称为弱符号。以达到目标终端中编译环境对应用程序符号完整性的检查。其中,每个虚拟应用功能接口对应的syscall函数均有相应的第一二标识,用于进行区分。另外,第二标识也可以为数字、字母或特殊符号的一种或多种,对此不作限定。且具有对应关系的应用功能接口与虚拟应用功能接口,其第一标识与第二标识可以为相同的标识符号。syscall为内核提供用户空间程序与内核空间进行交互的一套标准接口,这些接口让用户态程序能受限访问硬件设备。另外,早本实施例中,libPaxMe组件和加载器中均采用syscall函数搭建libPaxMe组件和加载器的交互通道,实现应用数据向加载器的参数传递和加载器向libPaxMe组件的调用结果传递。
根据所述第一标识与所述第二标识,建立所述应用功能组件中各个应用功能接口,与所述虚拟应用功能组件中各个虚拟应用功能接口之间的对应关系;其中,所述强属性函数对应的应用功能接口用于被所述第二系统应用调用,以实现所述第二系统相应的应用功能。
在应用中,上述具有对应的关系,上述PaxMe应用在被加载器加载时,是处于加载器中的运行环境中,对应的虚拟应用功能组件也将处于运行环境中。而且,上述应用功能组件是通过目标终端的目标功能接口,在加载器中写入功能处理函数。也即在PaxMe应用运行时,具有强属性函数的应用功能组件,与具有弱属性的虚拟应用功能组件处于同一进程空间。然而,应用功能组件中各个应用功能接口,与虚拟应用功能组件中各个虚拟应用功能接口之间具有对应关系。因此,具有同名的强属性函数的应用功能接口,和具有弱属性函数的虚拟应用功能接口同时处于同一进程空间。系统将调用强属性函数的应用功能接口,而忽略弱属性函数的虚拟应用功能接口的特性,实现PaxMe应用运行时,加载器中的强属性函数的应用功能接口被真正调用。参照图4,PaxMe APP即为PaxMe应用,PaxMe应用调用LibPaxMe组件中的虚拟功能接口,通过syscall函数调用到加载器中,使得在加载器中非weak属性函数的应用功能接口,劫持libmontor组件中weak属性函数的虚拟应用功能接口,使目标终端中的相应硬件实现功能。
在本实施例中,通过对开发的各个应用功能接口对应的脚本件中,写入强属性函数,以及在虚拟应用功能接口对应的脚本文件中写入弱属性函数,使得PaxMe应用运行时,系统将采用强属性函数的应用功能接口,而忽略弱属性函数的虚拟应用功能接口,实现加载器中的强属性函数的应用功能接口被真正调用,达到在第一系统中运行第二系统应用的目的。
在一实施例中,在S104之后,
若所述第二系统应用调用应用功能接口时,在目标终端内未实现相应应用功能,则确定所述相应应用功能对应的应用功能接口存在漏洞。
在应用中,上述漏洞是指在硬件、软件、协议的具体实现或系统安全策略上存在缺陷,从而可以使攻击者能够在未授权的情况下访问,导致未经授权访问系统的敏感数据。示例性的,上述漏洞可以为:没有检查已登录的用户是否有权对请求的对象执行请求的操作;其漏洞危害为:未经授权的访问可能导致未经授权方(PaxMe应用)的数据泄露、数据丢失或数据操纵。因此,若第二系统应用调用应用功能接口时,在目标终端内未实现相应应用功能,则可确定相应应用功能对应的应用功能接口存在漏洞。
根据所述漏洞修复所述对应的应用功能接口。
在应用中,上述已说明具有应用功能的功能处理函数处于加载器内部的应用功能接口中,PaxMe应用中的虚拟功能接口不包含实际的功能处理函数。因此,在需要对漏洞进行修复时,只需对应升级应用功能接口,而不必修改PaxMe应用,减少PaxMe应用修改和重新编译带来的不便,达到减少应用开发者工作量的效果。另外,上述功能处理函数处于加载器内部,可避免PaxMe应用中虚拟功能接口的开发过程中,核心代码泄露的风险。
在本实施例中,在第二系统应用调用应用功能接口存在漏洞时,只需根据漏洞修复对应的应用功能接口,而不必修改PaxMe应用,减少PaxMe应用修改和重新编译带来的不便,达到减少应用开发者工作量的效果。
在一实施例中,S103包括:
确定所述目标终端支持的编译工具链,并将所述编译工具链添加至开发工具中;其中,所述编译工具链用于使所述开发工具直接将所述第二系统应用的脚本文件,编译成所述目标终端支持的动态库文件。
在应用中,上述编译工具链为在使用开发工具对PaxMe应用进行编译时,使用目标终端支持的开发工具内部的编译链。其中,上述开发工具也可认为是目标终端支持的工具。具体的,开发工具可以指已有文档《Prolin PaxMe虚拟机编程指南》中描述的PaxPayPro2017工具。主要的,支持目标终端的开发工具和原始PaxMe应用所使用的开发工具其差异点在于:增加了目标终端系统(Prolin系统)支持的编译工具链;和增加了PaxMe系统的虚拟功能组件(libPaxMe组件)。因虚拟功能组件不具有实际的功能处理函数,因此,可实现使用目标终端系统支持的编译工具链对其进行编译。
在校验所述虚拟应用功能组件合格后,将所述第二系统应用的脚本文件编译为动态库文件。
在应用中,上述已说明虚拟功能组件只用于满足编程需要,且虚拟功能组件中增加的weak属性函数用于满足编译环境对应用程序符号完整性的检查。因此,可基于虚拟功能组件是否满足编程需要,以及是否虚拟功能组件是否具有weak属性函数进行校验。并在校验虚拟功能组件合格后,将第二系统应用的脚本文件编译为动态库文件。
根据用户的操作指令,确定所述目标终端的目标打包策略,并根据所述目标打包策略对所述脚本文件进行打包,生成满足所述目标终端的安装要求的应用包。
在应用中,上述目标打包策略即为满足目标终端安装要求的打包方式。具体的,动态库文件打包过程包括:确定目标终端的目标打包策略,根据既定的目标打包策略对动态库文件进行打包。其中,目标打包策略的确定由开发工具根据用户选定的目标终端决定。开发工具内部可预设一些目标终端的系统所支持打包方式。例如,如原生PaxMe系统支持的裸bin应用包、Prolin系统支持的aip应用包、Android系统支持的apk应用包。在用于指定目标终端所使用的的第一系统后,开发工具则可根据用户选定的系统确定目标打包策略。为了支持Prolin系统,开发工具可将动态库文件采用zip方式压缩,产生Prolin系统支持的aip应用包。之后按照目标终端的应用管理策略,将应用包中的文件逐个安装到Prolin系统设定的安装路径,即可完成PaxMe应用的安装。
在本实施例中,通过确定目标终端支持的编译工具链,将第二系统应用的脚本文件,编译成目标终端支持的动态库文件,使编译出来的动态库文件内部二进制指令,即为Prolin系统支持的指令,使得PaxMe应用在目标终端上运行时,不需要做指令转换,带来PaxMe应用运行效率的提升。之后确定目标终端的目标打包策略,根据目标打包策略对脚本文件进行打包,即可将生成的应用包安装在目标终端上进行运行。
在一实施例中,在S104之后,还包括:
在所述第二系统应用在所述运行环境中运行时,记录所述第二系统应用使用所述目标终端的系统资源。
当所述第二系统应用退出运行时,释放所述系统资源。
在应用中,上述第二系统应用在运行环境中运行时,需要使用目标终端的系统资源去实现相应功能。具体的,上述系统资源可以为在第二系统应用运行时需要消耗目标终端的内存资源,或者使用目标终端的句柄资源,以便可执行引用第一系统或数据库所管理的内存块或对象,对此不作限定。因第二系统应用在加载器中的运行环境中运行,因此,可通过加载器对第二系统应用使用目标终端的系统资源进行记录。
在本实施例中,PaxMe应用在运行时,需要使用目标终端的系统资源去实现相应功能,在PaxMe应用退出时,则需要释放其调用的系统功能。然而,在实际过程中,可能因PaxMe应用存在缺陷导致应用退出时会存在资源泄漏。因此,在PaxMe应用运行时,加载器可根据记录到的PaxMe应用使用的目标终端的所有系统资源,并在PaxMe应用退出运行时可进行统一释放,避免因PaxMe应用的应用程序设计缺陷,导致第一系统资源泄漏的问题,为第一系统长时间稳定可靠运行提供有力支撑。
在其他实施例中,移植上述加载器至其余选定的终端,作为目标终端。因在PaxMe应用的应用功能组件处于加载器内,PaxMe应用仅通过libPaxMe组件满足应用编译需要。因此,在切换使用的目标终端(将Prolin系统切换为其他系统)时,只需要在新的目标终端上移植加载器。而加载器已经具有二系统应用的运行环境,之后可使用上述S102、S103和S104步骤,即可快速实现在新的目标终端对应的第一系统,实现对PaxMe应用的运行,极大减少PaxMe应用在不同系统之间还需重复进行开发的工作。
如图5所示,本实施例还提供一种在第一系统运行第二系统应用的装置100,包括:
构建模块10,用于通过目标终端上的加载器,构建所述第二系统应用的运行环境,所述目标终端运行有所述第一系统。
创建模块20,用于在所述加载器中,创建所述第二系统应用的应用功能组件。
编译模块30,用于利用所述目标终端支持的编译环境,将所述第二系统应用的脚本文件编译为动态库文件,并将所述动态库文件封装为应用包。
运行模块40,用于通过所述加载器安装所述应用包,并在所述运行环境中运行所述应用包中的动态库文件;其中,所述动态库文件运行时,通过所述应用功能组件调用所述目标终端中的相应功能,实现在所述第一系统中运行所述第二系统应用。
在一实施例中,创建模块20还用于:
获取所述目标终端的目标功能接口,以及确定所述第二系统应用待实现的各个应用功能;
根据所述目标功能接口,在所述加载器中编写实现所述各个应用功能的功能处理函数,通过所述功能处理函数生成所述各个应用功能对应的应用功能接口,多个应用功能接口构成所述第二系统应用的应用功能组件;
将所述应用功能组件存储至所述运行环境中。
在一实施例中,编译模块30还用于:
确定所述第二系统应用待实现的各个应用功能;
根据所述各个应用功能,创建用于被所述第二系统应用调用的虚拟应用功能组件;其中,所述虚拟应用功能组件满足所述第二系统应用的编程需求;
利用所述目标终端支持的编译环境,将包含所述虚拟应用功能组件的所述第二系统应用的脚本文件编译为动态库文件,并将所述动态库文件封装为应用包,所述应用包满足所述目标终端的安装要求。
在一实施例中,在第一系统运行第二系统应用的装置100,还包括:
第一写入模块,用于分别在所述应用功能组件包含的各个应用功能接口对应的脚本文件中,写入强属性函数;其中,所述强属性函数包含分别用于识别各个应用功能接口的第一标识。
第二写入模块,用于分别在所述虚拟应用功能组件包含的各个虚拟应用功能接口对应的脚本文件中,写入弱属性函数;其中,所述弱属性函数包含分别用于识别各个虚拟应用功能接口的第二标识。
建立模块,用于根据所述第一标识与所述第二标识,建立所述应用功能组件中各个应用功能接口,与所述虚拟应用功能组件中各个虚拟应用功能接口之间的对应关系;其中,所述强属性函数对应的应用功能接口用于被所述第二系统应用调用,以实现所述第二系统相应的应用功能。
在一实施例中,在第一系统运行第二系统应用的装置100,还包括:
确定模块,用于若所述第二系统应用调用应用功能接口时,在目标终端内未实现相应应用功能,则确定所述相应应用功能对应的应用功能接口存在漏洞。
修复模块,用于根据所述漏洞修复所述对应的应用功能接口。
在一实施例中,编译模块30还用于:
确定所述目标终端支持的编译工具链,并将所述编译工具链添加至开发工具中;其中,所述编译工具链用于使所述开发工具直接将所述第二系统应用的脚本文件,编译成所述目标终端支持的动态库文件;
在校验所述虚拟应用功能组件合格后,将所述第二系统应用的脚本文件编译为动态库文件;
根据用户的操作指令,确定所述目标终端的目标打包策略,并根据所述目标打包策略对所述脚本文件进行打包,生成满足所述目标终端的安装要求的应用包。
在一实施例中,在第一系统运行第二系统应用的装置100,还包括:
记录模块,用于在所述第二系统应用在所述运行环境中运行时,记录所述第二系统应用使用所述目标终端的系统资源。
释放模块,用于当所述第二系统应用退出运行时,释放所述系统资源。
图6是本申请一实施例提供的终端设备60的示意图。如图6所示,该实施例的终端设备60包括:处理器603、存储器601以及存储在所述存储器601中并可在所述处理器603上运行的计算机程序602。所述处理器603执行所述计算机程序602时实现上述各个方法实施例中的步骤,例如图1所示的步骤S101至S103。或者,所述处理器603执行所述计算机程序602时实现上述各装置实施例中各模块/单元的功能。
示例性的,所述计算机程序602可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器601中,并由所述处理器603执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序602在所述终端设备60中的执行过程。例如,所述计算机程序602可以被分割成构建模块、创建模块、编译模块和运行模块,各模块具体功能如下:
构建模块,用于通过目标终端上的加载器,构建所述第二系统应用的运行环境,所述目标终端运行有所述第一系统。
创建模块,用于在所述加载器中,创建所述第二系统应用的应用功能组件。
编译模块,用于利用所述目标终端支持的编译环境,将所述第二系统应用的脚本文件编译为动态库文件,并将所述动态库文件封装为应用包。
运行模块,用于通过所述加载器安装所述应用包,并在所述运行环境中运行所述应用包中的动态库文件;其中,所述动态库文件运行时,通过所述应用功能组件调用所述目标终端中的相应功能,实现在所述第一系统中运行所述第二系统应用。
所述终端设备60可以是可穿戴设备,可安装设备。所述终端设备可包括,但不仅限于,处理器603、存储器601。本领域技术人员可以理解,图6仅仅是终端设备60的示例,并不构成对终端设备60的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器603可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器601可以是所述终端设备60的内部存储单元,例如终端设备60的硬盘或内存。所述存储器601也可以是所述终端设备60的外部存储设备,例如所述终端设备60上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。在一个实施例中,所述存储器601还可以既包括所述终端设备60的内部存储单元也包括外部存储设备。所述存储器601用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器601还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时可实现上述各个方法实施例中的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种在第一系统运行第二系统应用的方法,其特征在于,所述方法包括:
通过目标终端上的加载器,构建所述第二系统应用的运行环境,所述目标终端运行有所述第一系统;
在所述加载器中,创建所述第二系统应用的应用功能组件;
利用所述目标终端支持的编译环境,将所述第二系统应用的脚本文件编译为动态库文件,并将所述动态库文件封装为应用包;
通过所述加载器安装所述应用包,并在所述运行环境中运行所述应用包中的动态库文件;其中,所述动态库文件运行时,通过所述应用功能组件调用所述目标终端中的相应功能,实现在所述第一系统中运行所述第二系统应用。
2.如权利要求1所述的在第一系统运行第二系统应用的方法,其特征在于,所述在所述加载器中,创建所述第二系统应用的应用功能组件,包括:
获取所述目标终端的目标功能接口,以及确定所述第二系统应用待实现的各个应用功能;
根据所述目标功能接口,在所述加载器中编写实现所述各个应用功能的功能处理函数,通过所述功能处理函数生成所述各个应用功能对应的应用功能接口,多个应用功能接口构成所述第二系统应用的应用功能组件;
将所述应用功能组件存储至所述运行环境中。
3.如权利要求1所述的在第一系统运行第二系统应用的方法,其特征在于,所述利用所述目标终端支持的编译环境,将所述第二系统应用的脚本文件编译为动态库文件,并将所述动态库文件封装为应用包,包括:
确定所述第二系统应用待实现的各个应用功能;
根据所述各个应用功能,创建用于被所述第二系统应用调用的虚拟应用功能组件;其中,所述虚拟应用功能组件满足所述第二系统应用的编程需求;
利用所述目标终端支持的编译环境,将包含所述虚拟应用功能组件的所述第二系统应用的脚本文件编译为动态库文件,并将所述动态库文件封装为应用包,所述应用包满足所述目标终端的安装要求。
4.如权利要求3所述的在第一系统运行第二系统应用的方法,其特征在于,还包括:
分别在所述应用功能组件包含的各个应用功能接口对应的脚本文件中,写入强属性函数;其中,所述强属性函数包含分别用于识别各个应用功能接口的第一标识;
分别在所述虚拟应用功能组件包含的各个虚拟应用功能接口对应的脚本文件中,写入弱属性函数;其中,所述弱属性函数包含分别用于识别各个虚拟应用功能接口的第二标识;
根据所述第一标识与所述第二标识,建立所述应用功能组件中各个应用功能接口,与所述虚拟应用功能组件中各个虚拟应用功能接口之间的对应关系;其中,所述强属性函数对应的应用功能接口用于被所述第二系统应用调用,以实现所述第二系统相应的应用功能。
5.如权利要求4所述的在第一系统运行第二系统应用的方法,其特征在于,在通过所述加载器安装所述应用包,并在所述运行环境中运行所述应用包中的动态库文件之后,还包括:
若所述第二系统应用调用应用功能接口时,在目标终端内未实现相应应用功能,则确定所述相应应用功能对应的应用功能接口存在漏洞;
根据所述漏洞修复所述对应的应用功能接口。
6.如权利要求3-5任一所述的在第一系统运行第二系统应用的方法,其特征在于,所述利用所述目标终端支持的编译环境,将包含所述虚拟应用功能组件的所述第二系统应用的脚本文件编译为动态库文件,并将所述动态库文件封装为应用包,包括:
确定所述目标终端支持的编译工具链,并将所述编译工具链添加至开发工具中;其中,所述编译工具链用于使所述开发工具直接将所述第二系统应用的脚本文件,编译成所述目标终端支持的动态库文件;
在校验所述虚拟应用功能组件合格后,将所述第二系统应用的脚本文件编译为动态库文件;
根据用户的操作指令,确定所述目标终端的目标打包策略,并根据所述目标打包策略对所述脚本文件进行打包,生成满足所述目标终端的安装要求的应用包。
7.如权利要求1所述的在第一系统运行第二系统应用的方法,其特征在于,在通过所述加载器安装所述应用包,并在所述运行环境中运行所述应用包中的动态库文件之后,还包括:
在所述第二系统应用在所述运行环境中运行时,记录所述第二系统应用使用所述目标终端的系统资源;
当所述第二系统应用退出运行时,释放所述系统资源。
8.一种在第一系统运行第二系统应用的装置,其特征在于,包括:
构建模块,用于通过目标终端上的加载器,构建所述第二系统应用的运行环境,所述目标终端运行有所述第一系统;
创建模块,用于在所述加载器中,创建所述第二系统应用的应用功能组件;
编译模块,用于利用所述目标终端支持的编译环境,将所述第二系统应用的脚本文件编译为动态库文件,并将所述动态库文件封装为应用包;
运行模块,用于通过所述加载器安装所述应用包,并在所述运行环境中运行所述应用包中的动态库文件;其中,所述动态库文件运行时,通过所述应用功能组件调用所述目标终端中的相应功能,实现在所述第一系统中运行所述第二系统应用。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010702737.3A CN111984263B (zh) | 2020-07-21 | 2020-07-21 | 在第一系统运行第二系统应用的方法、装置、设备及介质 |
US18/017,111 US20230297348A1 (en) | 2020-07-21 | 2021-07-14 | Method for operating second system application on first system, terminal device and storage medium |
PCT/CN2021/106336 WO2022017242A1 (zh) | 2020-07-21 | 2021-07-14 | 在第一系统运行第二系统应用的方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010702737.3A CN111984263B (zh) | 2020-07-21 | 2020-07-21 | 在第一系统运行第二系统应用的方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111984263A true CN111984263A (zh) | 2020-11-24 |
CN111984263B CN111984263B (zh) | 2024-03-19 |
Family
ID=73439282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010702737.3A Active CN111984263B (zh) | 2020-07-21 | 2020-07-21 | 在第一系统运行第二系统应用的方法、装置、设备及介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230297348A1 (zh) |
CN (1) | CN111984263B (zh) |
WO (1) | WO2022017242A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022017242A1 (zh) * | 2020-07-21 | 2022-01-27 | 百富计算机技术(深圳)有限公司 | 在第一系统运行第二系统应用的方法、装置、设备及介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230036739A1 (en) * | 2021-07-28 | 2023-02-02 | Red Hat, Inc. | Secure container image builds |
CN115080509A (zh) * | 2022-06-10 | 2022-09-20 | 北京达佳互联信息技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101859244A (zh) * | 2009-04-10 | 2010-10-13 | 中兴通讯股份有限公司 | 多工具链工程构建方法及系统 |
US20130326474A1 (en) * | 2009-05-13 | 2013-12-05 | Adobe Systems Incorporated | Location-Based Application Development for Runtime Environments |
CN103853589A (zh) * | 2014-02-26 | 2014-06-11 | 上海爱数软件有限公司 | 一种跨平台的系统编译构建方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111984263B (zh) * | 2020-07-21 | 2024-03-19 | 百富计算机技术(深圳)有限公司 | 在第一系统运行第二系统应用的方法、装置、设备及介质 |
-
2020
- 2020-07-21 CN CN202010702737.3A patent/CN111984263B/zh active Active
-
2021
- 2021-07-14 WO PCT/CN2021/106336 patent/WO2022017242A1/zh active Application Filing
- 2021-07-14 US US18/017,111 patent/US20230297348A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101859244A (zh) * | 2009-04-10 | 2010-10-13 | 中兴通讯股份有限公司 | 多工具链工程构建方法及系统 |
US20130326474A1 (en) * | 2009-05-13 | 2013-12-05 | Adobe Systems Incorporated | Location-Based Application Development for Runtime Environments |
CN103853589A (zh) * | 2014-02-26 | 2014-06-11 | 上海爱数软件有限公司 | 一种跨平台的系统编译构建方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022017242A1 (zh) * | 2020-07-21 | 2022-01-27 | 百富计算机技术(深圳)有限公司 | 在第一系统运行第二系统应用的方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
US20230297348A1 (en) | 2023-09-21 |
CN111984263B (zh) | 2024-03-19 |
WO2022017242A1 (zh) | 2022-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102059705B1 (ko) | 적응식 이식가능 라이브러리 | |
US9483242B2 (en) | Wholesale replacement of specialized classes in a runtime environments | |
CN111984263B (zh) | 在第一系统运行第二系统应用的方法、装置、设备及介质 | |
KR101246967B1 (ko) | 어플리케이션 호스트 환경에서 유닛 테스트를 실행하기 위한 방법 및 장치 | |
US7120572B1 (en) | Memory efficient program pre-execution verifier and method | |
CN107526625B (zh) | 一种基于字节码检查的Java智能合约安全检测方法 | |
US8887141B2 (en) | Automatically modifying a native code module accessed from virtual machine bytecode to determine execution information | |
US8756616B2 (en) | System and method for reducing the static footprint of mixed-language JAVA classes | |
CN100492387C (zh) | 基于Keil C51的软件保护开发的方法和系统 | |
US6834391B2 (en) | Method and apparatus for automated native code isolation | |
CN104471557A (zh) | 动态语言的优化执行 | |
CN109271789B (zh) | 恶意进程检测方法、装置、电子设备及存储介质 | |
CN114089975B (zh) | 计算软件的扩展方法、装置、非易失性存储介质及处理器 | |
US20150067653A1 (en) | Automatic generation of analysis-equivalent application constructs | |
CN111427782B (zh) | 安卓动态链接库的运行方法、装置、设备及存储介质 | |
Chakravarthy et al. | Edicts: implementing features with flexible binding times | |
CA3118057A1 (en) | Selective substitution of legacy load module programs with classes for execution in a java virtual machine | |
CN115629795A (zh) | 一种可执行文件的配置方法、装置及电子设备 | |
CN115220873A (zh) | 一种在Android系统中运行Open Harmony应用的方法 | |
CN113778451B (zh) | 文件加载方法、装置、计算机系统和计算机可读存储介质 | |
CN110852139A (zh) | 生物特征识别方法、装置、设备以及存储介质 | |
CN109426546A (zh) | 应用启动方法及装置、计算机存储介质及设备 | |
US20060101436A1 (en) | Hosting environment abstraction model for content | |
CN111984329A (zh) | 一种boot引导软件标准化生成、执行方法及系统 | |
Binder | Secure and reliable java-based middleware-challenges and solutions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |