CN112583794B - 接口调用方法、装置、计算机设备和存储介质 - Google Patents
接口调用方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112583794B CN112583794B CN202011319666.5A CN202011319666A CN112583794B CN 112583794 B CN112583794 B CN 112583794B CN 202011319666 A CN202011319666 A CN 202011319666A CN 112583794 B CN112583794 B CN 112583794B
- Authority
- CN
- China
- Prior art keywords
- system interface
- application
- application program
- preset
- data
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种接口调用方法、装置、计算机设备和存储介质。所述方法包括:判断应用程序的应用分区中是否存在目标应用数据;当判定存在所述目标应用数据时,执行将系统接口对应的系统接口地址按照预设的内存映射存储至固定分区的预设位置;接收应用程序加载指令,根据所述加载指令加载所述应用程序,所述应用程序加载指令用于指示所述应用程序根据预设的所述内存映射在所述固定分区的所述预设位置处读取对应的所述系统接口地址,并根据所述系统接口地址调用所述系统接口。通过本方法提高了软件开发的效率。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种接口调用方法、装置、计算机设备和存储介质。
背景技术
在物联网架构中,客户端的应用程序与系统端的应用系统之间的通信变得越来越频繁以及越来越重要。
现有技术中是通过应用程序中的控制模块实现应用程序与应用系统的通信。但是这种结构需要增加额外的控制模块,并且还需要在应用程序中增加额外的存储模块,使得在应用程序开发过程中不仅需要开发和维护应用程序还需要维护控制模块以及存储模块,使得软件开发的效率低下。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高软件开发效率的接口调用方法、装置、计算机设备和存储介质。
一种接口调用方法,所述方法包括:
判断应用程序的应用分区中是否存在目标应用数据;
当判定存在所述目标应用数据时,将系统接口对应的系统接口地址按照预设的内存映射存储至固定分区的预设位置;
接收应用程序加载指令,根据所述加载指令加载所述应用程序,所述应用程序加载指令用于指示所述应用程序根据预设的所述内存映射在所述固定分区的所述预设位置处读取对应的所述系统接口地址,并根据所述系统接口地址调用所述系统接口。
在一个实施例中,所述将系统接口对应的系统接口地址按照预设的内存映射存储至固定分区的预设位置,包括:
通过分散加载文件确定固定分区;
确定预设的内存映射,根据所述内存映射将所述系统接口地址存储所述至固定分区的预设位置。
在一个实施例中,所述确定预设的内存映射,根据所述内存映射将所述系统接口地址存储所述至固定分区的预设位置,包括:
读取应用程序对应的目标应用数据,并所述目标应用数据存储至固定分区的应用缓存;
确定变量,所述变量用于存储所述系统接口的系统接口地址;
确定预设的内存映射,并根据所述内存映射将所述系统接口地址存储至所述应用缓存的预设位置。
在一个实施例中,所述接收应用程序加载指令,根据所述加载指令加载所述应用程序,所述应用程序加载指令用于指示所述应用程序根据预设的所述内存映射在所述预设位置处读取对应的所述系统接口地址,并根据所述系统接口地址调用所述系统接口,包括:
接收应用程序加载指令,根据所述加载指令加载所述应用程序,所述应用程序加载指令用于指示所述应用程序根据预设的所述内存映射确定初始地址信息,并根据所述初始地址信息进行地址偏移得到所述系统接口地址,以根据所述系统接口地址调用对应的所述系统接口。
在一个实施例中,所述判断应用程序的应用分区中是否存在目标应用数据,包括:
从所述应用程序的应用分区中读取目标应用数据;
判断所述目标应用数据在预设位置处的数据有效性;
当所述预设位置处的数据为无效数据时,判定所述应用程序的应用分区中不存在所述目标应用数据;
当所述预设位置处的数据为有效数据时,判定所述应用程序的应用分区中存在所述目标应用数据。
一种接口调用装置,所述装置包括:
判断模块,用于判断应用程序的应用分区中是否存在目标应用数据;
存储模块,用于当判定存在所述目标应用数据时,将系统接口对应的系统接口地址按照预设的内存映射存储至固定分区的预设位置;
调用模块,用于接收应用程序加载指令,根据所述加载指令加载所述应用程序,所述应用程序加载指令用于指示所述应用程序根据预设的所述内存映射在所述固定分区的所述预设位置处读取对应的所述系统接口地址,并根据所述系统接口地址调用所述系统接口。
在一个实施例中,存储模块还用于通过分散加载文件确定固定分区;确定预设的内存映射,根据所述内存映射将所述系统接口地址存储所述至固定分区的预设位置。
在一个实施例中,存储模块还用于读取应用程序对应的目标应用数据,并所述目标应用数据存储至固定分区的应用缓存;确定变量,所述变量用于存储所述系统接口的系统接口地址;确定预设的内存映射,并根据所述内存映射将所述系统接口地址存储至所述应用缓存的预设位置。
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述任意实施例所述的方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任意实施例所述的方法的步骤。
上述接口调用方法、装置、计算机设备和存储介质,首先判断应用程序的应用分区中是否存在目标应用数据;当判定存在所述目标应用数据时,说明应用程序的相关数据已经被写入对应位置处,执行将系统接口对应的系统接口地址按照预设的内存映射存储至固定分区的预设位置;接收应用程序加载指令,根据所述加载指令加载所述应用程序,所述应用程序加载指令用于指示所述应用程序根据预设的所述内存映射在所述固定分区的所述预设位置处读取对应的所述系统接口地址,并根据所述系统接口地址调用所述系统接口。通过在应用系统中的预设位置处写入系统接口地址,进而可以使得应用程序端获取到所需的系统接口地址,并调用对应的系统接口,实现根据系统接口实现应用程序与应用系统之间的通信,使得应用程序与应用系统两者可以并行进行软件开发,减少了两者的耦合性,进而提高了软件开发的效率。
附图说明
图1为一个实施例中接口调用方法的应用环境图;
图2为一个实施例中接口调用方法的流程示意图;
图3为一个实施例中提供的一种在应用系统中加载应用程序的流程示意图;
图4为一个实施例中提供的一种独立加载的OPENCPU架构示意图;
图5为一个实施例中提供的一种用户应用程序与应用系统之间的信息交互拓扑结构图;
图6为一个实施例中提供的一种虚拟AT流程的实现流程示意图;
图7为一个实施例中接口调用装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的接口调用方法,可以应用于如图1所示的应用环境中。其中,用户终端的应用程序102通过网络与应用系统104进行通信。应用系统判断应用程序的应用分区中是否存在目标应用数据;当判定存在所述目标应用数据时,将应用系统的系统接口对应的系统接口地址按照预设的内存映射存储至固定分区的预设位置;接收应用程序加载指令,根据所述加载指令加载所述应用程序,所述应用程序加载指令用于指示所述应用程序根据预设的所述内存映射在所述固定分区的所述预设位置处读取对应的所述系统接口地址,并根据所述系统接口地址调用所述系统接口。其中,用户终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,应用系统具体可以是服务器,并且服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种接口调用方法,以该方法应用于图1中的应用系统104为例进行说明,包括以下步骤:
步骤202,判断应用程序的应用分区中是否存在目标应用数据。
具体地,应用程序与应用系统之间进行通信以实现一定的业务功能。在一个实施例中,应用系统判断应用程序的应用分区中是否存在目标应用数据。
其中,应用程序是用户为实现一定的功能而进行软件开发得到的,如应用程序可以理解为APP。用户实现其对应的功能需求,可以通过调用OpenCpu提供的接口来实现。应用系统可以理解为系统底层通信模块,系统底层通信模块可以提供两类机制实现与用户APP层之间的信息交互,分别是API接口(Application Programming Interface,应用程序接口)和虚拟AT通道。其中,API接口是一些预先定义的函数,或指软件系统不同组成部分衔接的约定,用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。
其中,应用分区是在应用程序中预先确定的一个存储区域,该应用分区用于存储应用程序对应的目标应用数据,如应用分区具体可以是flash分区。目标应用数据具体可以是用户应用程序对应的APPimage数据。具体地,当应用分区中存储有目标应用数据时,说明用户将应用程序(APP)刷入版本中,反之说明用户未将应用程序刷入版本中。
在一个实施例中,所述判断应用程序的应用分区中是否存在目标应用数据,包括:从所述应用程序的应用分区中读取目标应用数据;判断所述目标应用数据在预设位置处的数据有效性;当所述预设位置处的数据为无效数据时,判定所述应用程序的应用分区中不存在所述目标应用数据;当所述预设位置处的数据为有效数据时,判定所述应用程序的应用分区中存在所述目标应用数据。
具体地,应用系统读取flash,判断获取到的flash的第一字节的值是否为0x0或者0xffffffff,如果判定第一字节的值是0x0或者0xffffffff等代表的无效数据,则判定该flash中并没有写入用户应用系统(APP)的image文件,并判定该应用程序的版本是标准版本,如果判定第一字节的值不是0x0或者0xffffffff等表示的无效数据时,则判定flash中写入了用户应用系统的image文件。并且,当应用系统判定flash中写入了用户应用系统的image文件时,还可以执行运行用户终端的应用程序(APP)的步骤。
这样就可以便于在进行应用程序的版本测试时,就可以不用区分标准版本和用于非标准版本,区分标准和非标准版本在于用户是否将APP刷入版本中,减少了测试人员在测试时的工作内容。可以再测试完标准版本后,在刷入用户APP,进行非标准版本测试,实现了将标准版本和非标准版本的底版本合二为一。
步骤204,当判定存在所述目标应用数据时,将系统接口对应的系统接口地址按照预设的内存映射存储至固定分区的预设位置。
具体地,当应用系统判定应用分区中存在目标应用数据时,说明用户将应用程序(APP)刷入版本中。应用系统确定与应用程序之间可以进行信息交互的系统接口,并确定系统接口对应的系统接口地址,并且应用系统按照预设的内存映射规则将系统接口地址写入至预设位置处。
其中,系统接口地址是用于定位系统接口并调用系统接口的地址。内存映射规则是将系统接口地址如何存储至固定分区中的规则,具体是指将系统接口地址存储至固定分区中的哪个位置的规则。固定分区是确定的一个固定的存储区域,用于存储系统接口地址的分区。预设位置是域行确定的用于在固定分区中存储系统接口地址的位置。
具体地,应用系统作为通信模块层为用户的应用程序端提供对应的API接口,并且在应用系统中可以根据用户需求配置实现需求对应功能的系统接口。以及,应用系统提供的API是编译在底层版本中,因此需要将这些API的头文件(或者list文件)提供给用户端。
步骤206,接收应用程序加载指令,根据所述加载指令加载所述应用程序,所述应用程序加载指令用于指示所述应用程序根据预设的所述内存映射在所述固定分区的所述预设位置处读取对应的所述系统接口地址,并根据所述系统接口地址调用所述系统接口。
具体地,在应用系统中的固定分区中写入系统接口对应的系统接口地址后,还包括在用户端根据内存映射从应用系统中找到存储系统接口地址的位置,并在对应位置处读取系统接口地址,以根据系统接口地址实现调用系统接口,进而根据调用的系统接口实现对应的业务功能。
在一个实施例中,参考图3,图3为一个实施例中提供的一种在应用系统中加载应用程序的流程示意图。在图3中,应用系统判断用户APP的应用分区中是否写入了用户APP程序。当应用系统判定应用分区中未写入用户APP程序时,就判断该应用程序为标准版本,否则判定该应用程序为非标准版本。并且,当判定应用程序为非标准版本时,应用系统执行将系统API接口的系统接口地址写入固定分区中的预设位置处,如可以写入指定的RAM的最后四个字节中。并调用用户应用程序(APP),通过应用程序的入口函数偏移至应用程序执行的RAM的最后四个字节位置处,并定义对应的函数指针执行对应的API地址,实现对API接口的调用。
在一个实施例中,底层通信模块提供相应的API接口,供用户端的应用程序直接调用。具体地是底层通信模块将API接口进行封装,编译成相应的库文件,对于用户终端来说其不用管API是如何实现的,只管调用对应功能的API接口就可以直接实现对应的接口功能。具体是,底层通信模块将API头文件(或者list文件)提供给用户终端,以供用户终端的应用程序进行系统接口的调用。
在另一个实施例中,底层通信模块还可以通过提供虚拟AT通道来实现用户应用程序与应用系统之间的交互。其中,虚拟AT通道是通过虚拟的端口,将AT命令发送给底层通信模块,这样可以释放物理的串口通道,将物理通道用于传输数据等其他用途。
参考图4,图4为一个实施例中提供的一种独立加载的OPENCPU架构示意图。在图4中的独立加载OPENCPU系统中,包括用户APP模块、中间通信模块以及底层通信模块,其中用户APP模块中可包括一个或者多个的任务,如任务1、任务2以及任务3。并且,用户应用程序端可以通过中间通信模块中提供的API接口、虚拟AT通道等方式分别与底层通信模块进行信息交互。
参考图5,图5为一个实施例中提供的一种用户应用程序与应用系统之间的信息交互拓扑结构图。在图5中,用户应用程序通过MCU与应用系统进行通信。
参考图6,图6为一个实施例中提供的一种虚拟AT流程的实现流程示意图。进一步地,虚拟AT根据具体的业务需求可以分为同步命令和异步命令,进而通信模块侧可以向用户端提供两种类型的系统接口。其中一个类型的系统接口用于发送同步AT命令,其中另一个系统接口是用于注册异步主动的AT命令。同步命令是指用户调用发送AT接口后,就可以获取该AT命令的执行结果。而异步命令是指发送后直接返回,但是此时不会将AT命令的执行结果返回给上层用户,其执行结果是通过回调函数进行返回给上层用户,所以在初始化阶段用户应用程序(APP)侧需要对其用到的异步AT命令进行注册,当回调触发时,就调用其注册的处理函数进行处理。
需要说明的是,除了虚拟AT通道会用到回调函数机制,API接口也会用到回调机制(例如串口接收处理、拨号状态上报等),其处理和AT的回调函数类似,都是在初始化阶段进行注册执行函数,其触发都是由底层(信模块侧)触发。
在一个实施例中,所述将系统接口对应的系统接口地址按照预设的内存映射存储至固定分区的预设位置,包括:通过分散加载文件确定固定分区;确定预设的内存映射,根据所述内存映射将所述系统接口地址存储所述至固定分区的预设位置。
其中,分散加载机制是RM的连接器提供的,指在连接时可以根据分散加载文件(scf文件)中指定的存储器分配方案,将可执行镜像文件分成指定的分区并定位于指定的存储器物理地址。这样,当嵌入式系统在复位或重新上电时,在对CPU相应寄存器进行初始化后,首先执行ROM存储器的Bootloader代码,根据连接时的存储器分配方案,将相应代码和数据由加载地址拷贝到运行地址,这样,定位在RAM存储器的代码和数据就在RAM存储器中运行,而不再从ROM存储器中取数据或取指令,从而大大提高了CPU的运行速率和效率。
在本申请中的分散加载文件用于将应用程序的运行域定位到应用系统端的预留内存以将应用程序加载到应用系统端的上述预留内存中。
具体地,在底层通信模块提供相应的flash分区存放用户APP的image文件。通过分散加载文件固定相应的RAM用于存储提供给客户使用的API的函数入口地址。
在一个实施例中,所述确定预设的内存映射,根据所述内存映射将所述系统接口地址存储所述至固定分区的预设位置,包括:读取应用程序对应的目标应用数据,并所述目标应用数据存储至固定分区的应用缓存;确定变量,所述变量用于存储所述系统接口的系统接口地址;确定预设的内存映射,并根据所述内存映射将所述系统接口地址存储至所述应用缓存的预设位置。
在一个具体的实施例中,提供了一种加载文件的内存映射,其中APP_RAM_RW为执行区,该执行区为起始地址0x1800大小为0x4000的RAM,固定用于存放nwy_openload.o的appram段。
在nwy_openload.c中定义appram段,定义方式如下:
#pragma arm section zidata="appram"
static unsigned char app_buf[BUF_SIZE];
#pragma arm section zidata
具体地,从底层通信模块存储用户APP image的分区中读取flash,并将其存储在app_buf中。在nwy_openload.c中定义一个全局变量,该变量用于存储提供给客户APP使用的API接口的函数地址,将该全局变量的初始地址存放在app_buf的最后四个字节中,这样可以防止被覆盖。
此外需要说明的是,通信模块还可以为用户应用程序提供Flash,用于加载用户的APP应用。具体地用于提供一个flash分区,用于存储APP,当启动APP时就可以自动加载flash,并加载到APP。在底层通信模块提供相应的flash分区存放用户APP的image文件。并通过分散加载文件固定相应的RAM用于存储提供给用户使用的API的函数入口地址。
在一个实施例中,所述接收应用程序加载指令,根据所述加载指令加载所述应用程序,所述应用程序加载指令用于指示所述应用程序根据预设的所述内存映射在所述预设位置处读取对应的所述系统接口地址,并根据所述系统接口地址调用所述系统接口,包括:接收应用程序加载指令,根据所述加载指令加载所述应用程序,所述应用程序加载指令用于指示所述应用程序根据预设的所述内存映射确定初始地址信息,并根据所述初始地址信息进行地址偏移得到所述系统接口地址,以根据所述系统接口地址调用对应的所述系统接口。
在一个实施例中,在应用程序APP侧同时定义一个加载文件,并设置其起始地址和大小与APP_RAM_RW相同,定义其第一执行区中的文件中,其函数入口为其初始地址0x1800,并将该地址向后偏移(0x4000-4)后,就可以得到存储提供给APP的API函数表的起始地址。并定义同名函数指针,该指针指向对应ID的函数列表地址(对应关系与通信模块侧定义的一样),这样用户就可以与正常调用系统接口一样。
应该理解的是,虽然图2以及图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2以及图3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种接口调用装置,包括:
判断模块702,用于判断应用程序的应用分区中是否存在目标应用数据。
存储模块704,用于当判定存在所述目标应用数据时,将系统接口对应的系统接口地址按照预设的内存映射存储至固定分区的预设位置。
调用模块706,用于接收应用程序加载指令,根据所述加载指令加载所述应用程序,所述应用程序加载指令用于指示所述应用程序根据预设的所述内存映射在所述固定分区的所述预设位置处读取对应的所述系统接口地址,并根据所述系统接口地址调用所述系统接口。
在一个实施例中,存储模块704还用于通过分散加载文件确定固定分区;确定预设的内存映射,根据所述内存映射将所述系统接口地址存储所述至固定分区的预设位置。
在一个实施例中,存储模块704还用于读取应用程序对应的目标应用数据,并所述目标应用数据存储至固定分区的应用缓存;确定变量,所述变量用于存储所述系统接口的系统接口地址;确定预设的内存映射,并根据所述内存映射将所述系统接口地址存储至所述应用缓存的预设位置。
在一个实施例中,调用模块706还用于接收应用程序加载指令,根据所述加载指令加载所述应用程序,所述应用程序加载指令用于指示所述应用程序根据预设的所述内存映射确定初始地址信息,并根据所述初始地址信息进行地址偏移得到所述系统接口地址,以根据所述系统接口地址调用对应的所述系统接口。
在一个实施例中,判断模块702还用于从所述应用程序的应用分区中读取目标应用数据;判断所述目标应用数据在预设位置处的数据有效性;当所述预设位置处的数据为无效数据时,判定所述应用程序的应用分区中不存在所述目标应用数据;当所述预设位置处的数据为有效数据时,判定所述应用程序的应用分区中存在所述目标应用数据。
关于接口调用装置的具体限定可以参见上文中对于接口调用方法的限定,在此不再赘述。上述接口调用装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储应用系统以及应用程序相关数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种接口调用方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:判断应用程序的应用分区中是否存在目标应用数据;当判定存在所述目标应用数据时,将系统接口对应的系统接口地址按照预设的内存映射存储至固定分区的预设位置;接收应用程序加载指令,根据所述加载指令加载所述应用程序,所述应用程序加载指令用于指示所述应用程序根据预设的所述内存映射在所述固定分区的所述预设位置处读取对应的所述系统接口地址,并根据所述系统接口地址调用所述系统接口。
在一个实施例中,处理器执行计算机程序时实现以下步骤:通过分散加载文件确定固定分区;确定预设的内存映射,根据所述内存映射将所述系统接口地址存储所述至固定分区的预设位置。
在一个实施例中,处理器执行计算机程序时实现以下步骤:读取应用程序对应的目标应用数据,并所述目标应用数据存储至固定分区的应用缓存;确定变量,所述变量用于存储所述系统接口的系统接口地址;确定预设的内存映射,并根据所述内存映射将所述系统接口地址存储至所述应用缓存的预设位置。
在一个实施例中,处理器执行计算机程序时实现以下步骤:接收应用程序加载指令,根据所述加载指令加载所述应用程序,所述应用程序加载指令用于指示所述应用程序根据预设的所述内存映射确定初始地址信息,并根据所述初始地址信息进行地址偏移得到所述系统接口地址,以根据所述系统接口地址调用对应的所述系统接口。
在一个实施例中,处理器执行计算机程序时实现以下步骤:从所述应用程序的应用分区中读取目标应用数据;判断所述目标应用数据在预设位置处的数据有效性;当所述预设位置处的数据为无效数据时,判定所述应用程序的应用分区中不存在所述目标应用数据;当所述预设位置处的数据为有效数据时,判定所述应用程序的应用分区中存在所述目标应用数据。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:判断应用程序的应用分区中是否存在目标应用数据;当判定存在所述目标应用数据时,将系统接口对应的系统接口地址按照预设的内存映射存储至固定分区的预设位置;接收应用程序加载指令,根据所述加载指令加载所述应用程序,所述应用程序加载指令用于指示所述应用程序根据预设的所述内存映射在所述固定分区的所述预设位置处读取对应的所述系统接口地址,并根据所述系统接口地址调用所述系统接口。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过分散加载文件确定固定分区;确定预设的内存映射,根据所述内存映射将所述系统接口地址存储所述至固定分区的预设位置。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:读取应用程序对应的目标应用数据,并所述目标应用数据存储至固定分区的应用缓存;确定变量,所述变量用于存储所述系统接口的系统接口地址;确定预设的内存映射,并根据所述内存映射将所述系统接口地址存储至所述应用缓存的预设位置。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收应用程序加载指令,根据所述加载指令加载所述应用程序,所述应用程序加载指令用于指示所述应用程序根据预设的所述内存映射确定初始地址信息,并根据所述初始地址信息进行地址偏移得到所述系统接口地址,以根据所述系统接口地址调用对应的所述系统接口。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:从所述应用程序的应用分区中读取目标应用数据;判断所述目标应用数据在预设位置处的数据有效性;当所述预设位置处的数据为无效数据时,判定所述应用程序的应用分区中不存在所述目标应用数据;当所述预设位置处的数据为有效数据时,判定所述应用程序的应用分区中存在所述目标应用数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种接口调用方法,其特征在于,所述方法包括:
判断应用程序的应用分区中是否存在目标应用数据;
当判定存在所述目标应用数据时,将系统接口对应的系统接口地址按照预设的内存映射存储至固定分区的预设位置,所述固定分区是应用系统中的存储区域;
接收应用程序加载指令,根据所述加载指令加载所述应用程序,所述应用程序加载指令用于指示所述应用程序根据预设的所述内存映射在所述固定分区的所述预设位置处读取对应的所述系统接口地址,并根据所述系统接口地址调用所述系统接口。
2.根据权利要求1所述的方法,其特征在于,所述将系统接口对应的系统接口地址按照预设的内存映射存储至固定分区的预设位置,包括:
通过分散加载文件确定固定分区;
确定预设的内存映射,根据所述内存映射将所述系统接口地址存储至所述固定分区的预设位置。
3.根据权利要求2所述的方法,其特征在于,所述确定预设的内存映射,根据所述内存映射将所述系统接口地址存储至 所述固定分区的预设位置,包括:
读取应用程序对应的目标应用数据,并将所述目标应用数据存储至固定分区的应用缓存;
确定变量,所述变量用于存储所述系统接口的系统接口地址;
确定预设的内存映射,并根据所述内存映射将所述系统接口地址存储至所述应用缓存的预设位置。
4.根据权利要求1所述的方法,其特征在于,所述接收应用程序加载指令,根据所述加载指令加载所述应用程序,所述应用程序加载指令用于指示所述应用程序根据预设的所述内存映射在所述预设位置处读取对应的所述系统接口地址,并根据所述系统接口地址调用所述系统接口,包括:
接收应用程序加载指令,根据所述加载指令加载所述应用程序,所述应用程序加载指令用于指示所述应用程序根据预设的所述内存映射确定初始地址信息,并根据所述初始地址信息进行地址偏移得到所述系统接口地址,以根据所述系统接口地址调用对应的所述系统接口。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,所述判断应用程序的应用分区中是否存在目标应用数据,包括:
从所述应用程序的应用分区中读取目标应用数据;
判断所述目标应用数据在预设位置处的数据有效性;
当所述预设位置处的数据为无效数据时,判定所述应用程序的应用分区中不存在所述目标应用数据;
当所述预设位置处的数据为有效数据时,判定所述应用程序的应用分区中存在所述目标应用数据。
6.一种接口调用装置,其特征在于,所述装置包括:
判断模块,用于判断应用程序的应用分区中是否存在目标应用数据;
存储模块,用于当判定存在所述目标应用数据时,将系统接口对应的系统接口地址按照预设的内存映射存储至固定分区的预设位置,所述固定分区是应用系统中的存储区域;
调用模块,用于接收应用程序加载指令,根据所述加载指令加载所述应用程序,所述应用程序加载指令用于指示所述应用程序根据预设的所述内存映射在所述固定分区的所述预设位置处读取对应的所述系统接口地址,并根据所述系统接口地址调用所述系统接口。
7.根据权利要求6所述的装置,其特征在于,所述存储模块还用于通过分散加载文件确定固定分区;确定预设的内存映射,根据所述内存映射将所述系统接口地址存储至所述固定分区的预设位置。
8.根据权利要求7所述的装置,其特征在于,所述存储模块还用于读取应用程序对应的目标应用数据,并将所述目标应用数据存储至固定分区的应用缓存;确定变量,所述变量用于存储所述系统接口的系统接口地址;确定预设的内存映射,根据所述内存映射将所述系统接口地址存储至所述应用缓存的预设位置。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011319666.5A CN112583794B (zh) | 2020-11-23 | 2020-11-23 | 接口调用方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011319666.5A CN112583794B (zh) | 2020-11-23 | 2020-11-23 | 接口调用方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112583794A CN112583794A (zh) | 2021-03-30 |
CN112583794B true CN112583794B (zh) | 2022-12-09 |
Family
ID=75123288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011319666.5A Active CN112583794B (zh) | 2020-11-23 | 2020-11-23 | 接口调用方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112583794B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116680013B (zh) * | 2023-06-16 | 2024-02-20 | 上海移芯通信科技股份有限公司 | 一种系统底包与应用程序分离的编译开发方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101236491B (zh) * | 2007-01-29 | 2010-05-19 | 联芯科技有限公司 | 构造动态组件的方法和系统 |
CN103544095B (zh) * | 2012-07-12 | 2015-09-16 | 腾讯科技(深圳)有限公司 | 服务器程序的监控方法及其系统 |
CN108804937B (zh) * | 2018-06-12 | 2021-03-02 | 广州华多网络科技有限公司 | 系统函数调用方法及相关装置 |
CN108874468B (zh) * | 2018-06-20 | 2021-03-26 | 深圳市腾讯网络信息技术有限公司 | 应用程序的加载方法、装置、计算机设备及存储介质 |
-
2020
- 2020-11-23 CN CN202011319666.5A patent/CN112583794B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112583794A (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8074231B2 (en) | Configuration of isolated extensions and device drivers | |
US8434064B2 (en) | Detecting memory errors using write integrity testing | |
US7644402B1 (en) | Method for sharing runtime representation of software components across component loaders | |
US7882198B2 (en) | Shared JAVA JAR files | |
US20030126590A1 (en) | System and method for dynamic data-type checking | |
US7743228B2 (en) | Information processing apparatus and method for obtaining software processing log | |
US7412710B2 (en) | System, method, and medium for efficiently obtaining the addresses of thread-local variables | |
US8073673B2 (en) | Emulated memory management | |
JP5422652B2 (ja) | フラッシュメモリ記憶装置における動的メモリ割当てに起因する自己エビクションの回避 | |
CN114327777B (zh) | 确定全局页目录的方法、装置、电子设备及存储介质 | |
US7406687B1 (en) | Sharing runtime representation of software component methods across component loaders | |
US20240111669A1 (en) | Allocation of memory within a data type-specific memory heap | |
JP2020087470A (ja) | データアクセス方法、データアクセス装置、機器及び記憶媒体 | |
CN106055481B (zh) | 计算机程序的测试方法及装置 | |
CN112583794B (zh) | 接口调用方法、装置、计算机设备和存储介质 | |
KR20110099214A (ko) | 동결된 개체들을 위한 형식 설명자 관리 | |
US20240126567A1 (en) | Data processing system, method, and apparatus | |
US20020099902A1 (en) | Methods and systems for applications to interact with hardware | |
US20210216404A1 (en) | Virtual memory management | |
CN111666102A (zh) | 文件格式转换方法、芯片验证方法、相关装置及网络芯片 | |
US20100268921A1 (en) | Data collection prefetch device and methods thereof | |
US9208112B1 (en) | Permanent allocation of a large host memory | |
CN116401020B (zh) | Kvm虚拟机i/o过滤框架实现方法、系统及存储介质 | |
US6950916B2 (en) | Dynamically setting the optimal base addresses of process components | |
CN116382785B (zh) | 用于数据处理的方法及装置、计算设备及存储介质 |
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 |