CN115994004B - 一种应用程序接口调用方法及装置 - Google Patents
一种应用程序接口调用方法及装置 Download PDFInfo
- Publication number
- CN115994004B CN115994004B CN202310284953.4A CN202310284953A CN115994004B CN 115994004 B CN115994004 B CN 115994004B CN 202310284953 A CN202310284953 A CN 202310284953A CN 115994004 B CN115994004 B CN 115994004B
- Authority
- CN
- China
- Prior art keywords
- interface
- application program
- application
- authorization
- called
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
本申请公开了一种应用程序接口调用方法及装置,该方法包括:获取应用程序的安装指令;基于安装指令,调用应用程序的安装接口,以便于应用程序运行安装接口的代码;在应用程序运行安装接口的代码的过程中,将应用程序的可访问接口表、允许调用可访问接口表中的接口的应用程序的唯一标识以及该应用程序进行绑定关联,得到接口授权表,以便于其他应用程序根据接口授权表,调用该应用程序的接口。由于预先在应用程序的安装过程中,生成应用程序的接口授权表,其他应用程序通过此接口授权表,实现接口的调用,接口授权表为应用程序接口调用提供了条件,从而实现有条件的调用应用程序的接口,保证应用程序的数据信息的安全,从而满足实际业务的需求。
Description
技术领域
本申请涉及虚拟机字节码的解释执行技术领域,特别是涉及一种应用程序接口调用方法及装置。
背景技术
应用程序通常是指编译后可执行的静态代码指令集合的抽象,而实际运行中,应用程序被加载到内存中,成为程序体或进程体,其中不仅仅包括静态的代码指令,还包括了动态的数据信息。随着科学技术的发展,在应用程序的运行过程中,应用程序调用另一个应用程序的方法或接口是一个比较普遍的需求。为了应用程序的数据信息的安全,不能让所有可被调用的方法或接口无条件的被调用。
当前技术中,在采用面向对象编程的应用程序中,将可以读写属于应用程序自己的数据的接口定义成共享接口类型(Shareable Interface类型),将共享接口类型的接口实例化成接口对象,其他应用程序需要获取该实例化的接口对象后,才可以通过接口对象从而调用接口对象的接口。但是对于面向过程编程的应用程序中,无法有条件的将可以读写属于应用程序自己的数据的接口或方法共享给其他应用程序,面向过程编程的应用程序中的接口,要么是无法调用,要么是无条件允许调用。
由此可知,当前技术中,尤其对于面向过程编程的应用程序,其他应用程序无法有条件的调用面向过程编程的应用程序中的接口,存在访问接口对应的应用程序的数据信息的安全风险,无法满足实际业务的需求。
发明内容
基于上述问题,本申请提供了一种应用程序接口调用方法,应用于虚拟机字节码的解释执行技术领域,可以实现有条件的调用应用程序的接口,保证应用程序的数据信息的安全,从而满足实际业务的需求。
本申请实施例公开了如下技术方案:
第一方面,本申请提供了一种应用程序接口调用方法,其特征在于,所述方法包括:
获取应用程序的安装指令;
基于所述安装指令,调用所述应用程序的安装接口,以便于所述应用程序运行所述安装接口的代码,创建所述应用程序的数据;
在所述应用程序运行所述安装接口的代码的过程中,将所述应用程序的可访问接口表、允许调用所述可访问接口表中的接口的应用程序的唯一标识、以及所述应用程序进行绑定关联,得到所述应用程序的接口授权表,以便于申请接口调用的应用程序根据所述接口授权表,调用所述应用程序的接口;所述可访问接口表包括所述应用程序中允许其他应用程序调用的接口。
可选的,所述申请接口调用的应用程序根据所述接口授权表,调用所述应用程序的接口,包括:
接收所述申请接口调用的应用程序针对所述应用程序的待调用接口的接口授权申请;
根据所述接口授权表,处理所述接口授权申请,得到授权结果;
将授权结果返回给所述申请接口调用的应用程序,以便于所述申请接口调用的应用程序根据所述授权结果,调用所述待调用接口。
可选的,所述根据所述接口授权表,处理所述接口授权申请,得到授权结果,包括:
根据所述应用程序的可访问接口表,判断所述可访问接口表中是否包括所述待调用接口;
若所述可访问接口表中包括所述待调用接口,则根据所述接口授权表,判断允许调用所述待调用接口的应用程序的唯一标识与所述申请接口调用的应用程序的唯一标识是否对应;
若所述允许调用所述待调用接口的应用程序的唯一标识与所述申请接口调用的应用程序的唯一标识对应,则授权通过。
可选的,所述方法还包括:
若所述可访问接口表中不包括所述待调用接口,则授权未通过。
可选的,所述方法还包括:
若所述允许调用所述待调用接口的应用程序的唯一标识与所述申请接口调用的应用程序的唯一标识不对应,则授权未通过。
可选的,接口授权申请包括:需要申请的接口授权状态;
所述接口授权状态包括:临时授权状态、会话授权状态、永久授权状态。
可选的,在接收所述申请接口调用的应用程序针对所述应用程序的待调用接口的接口授权申请之前,所述方法还包括:
判断所述申请接口调用的应用程序和所述应用程序是否为相同程序包实例化的应用程序;
若否,则接收所述申请接口调用的应用程序针对所述应用程序的待调用接口的接口授权申请。
第二方面,本申请提供了一种应用程序接口调用装置,其特征在于,所述装置包括:
获取模块,用于获取应用程序的安装指令;
调用模块,用于基于所述安装指令,调用所述应用程序的安装接口,以便于所述应用程序运行所述安装接口的代码,创建所述应用程序的数据;
绑定模块,用于在所述应用程序运行所述安装接口的代码过程中,将所述应用程序的可访问接口表、允许调用所述可访问接口表中的接口的应用程序的唯一标识、以及所述应用程序进行绑定关联,得到所述应用程序的接口授权表,以便于申请接口调用的应用程序根据所述接口授权表,调用所述应用程序的接口。
可选的,所述装置还包括:
接收模块,用于接收所述申请接口调用的应用程序针对所述应用程序的待调用接口的接口授权申请;
处理模块,用于根据所述接口授权表,处理所述接口授权申请,得到授权结果;
返回模块,用于将授权结果返回给所述申请接口调用的应用程序,以便于所述申请接口调用的应用程序根据所述授权结果,调用所述待调用接口。
可选的,所述处理模块具体包括:
接口判断模块,用于根据所述应用程序的可访问接口表,判断所述可访问接口表中是否包括所述待调用接口;
应用判断模块,用于当所述接口判断模块确定所述可访问接口表中包括所述待调用接口时,则根据所述接口授权表,判断允许调用所述待调用接口的应用程序的唯一标识与所述申请接口调用的应用程序的唯一标识是否对应;
若所述应用判断模块确定所述允许调用所述待调用接口的应用程序的唯一标识与所述申请接口调用的应用程序的唯一标识对应,则授权通过。
可选的,处理模块还包括:
返回模块,用于返回授权结果给申请接口调用的应用程序。
相较于现有技术,本申请具有以下有益效果:在应用程序的安装过程中,将应用程序与应用程序的可访问接口表、允许调用可访问接口表中的接口的应用程序的唯一标识进行绑定关联,得到应用程序的接口授权表,根据接口授权表,实现其他应用程序调用该应用程序的接口,接口授权表为应用程序接口调用提供了条件,即授权通过则可调用应用程序的接口,授权未通过则不可调用应用程序的接口,从而实现有条件的调用应用程序的接口,保证应用程序的数据信息的安全,从而满足实际业务的需求。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种应用程序安装过程的流程示意图;
图2为本申请实施例提供的一种应用程序运行过程的流程示意图;
图3为本申请实施例提供的一种应用程序接口调用方法的流程示意图;
图4为本申请实施例提供的一种根据接口授权表调用应用程序接口的流程示意图;
图5为本申请实施例提供的一种应用程序接口调用装置的结构示意图。
具体实施方式
为了下述各实施例的描述清楚简洁,首先给出相关技术的简要介绍:
在应用程序的开发过程中,通常采用一种或者多种编程语音来编写应用程序,各个编程语言的编程思维和方法都不尽相同,大致可以分为两种编程方法:面向过程编程和面向对象编程。
面向过程(Procedure Oriented)编程,是一种以事件为中心的编程思想,将实现功能的过程或者解决问题的过程分解为一个一个的步骤,通过完成一个一个的步骤来完成一个实现功能或者解决问题的应用程序。当前常用的面向过程编程的语言包括:C语言等。
面向对象(Object Oriented)编程,是一种以对象为中心的编程思想,建立对象的目的是为了描述某个对象在整个实现功能的过程或者解决问题的过程中的数据和行为。当前常用的面向对象编程的语言包括:java、Python、C++等。
下面结合当前已有的应用程序接口调用方法,对比说明一下本申请提供的一种应用程序接口调用方法的优势。
当前技术中,采用面向对象编程的方法编写的应用程序通常创建数据对象、接口对象等,其中对象包括对象的数据和对象的方法,根据面向对象编程的语言不同,接口(Interface)是面向对象编程语言中接口操作的关键字。为了满足访问数据的安全要求,通常使用public、private等关键字来修饰接口。其中,采用public static两个关键字修饰的接口,其他应用程序可通过类名和接口名称直接调用,而只有public关键字修饰的接口,其他应用程序需要获取到该接口的实例化接口对象,然后通过该实例化的接口对象调用对应的接口。
具体的,在采用面向对象编程的应用程序中,将可以读写属于应用程序自己的数据的接口定义成共享接口类型(Shareable Interface类型),将共享接口类型的接口实例化成接口对象,也可以称为共享接口对象(Shareable Interface Object, SIO),其他应用程序需要获取该实例化的共享接口对象后,才可以通过该共享接口对象从而调用该共享接口对象对应的接口。由此可知,针对于面向对象编程的应用程序中,可以通过实例化的接口对象,实现有条件的调用接口对象对应的接口,从而实现安全访问接口的数据或方法,例如:应用程序A需要调用应用程序B中的共享接口b,若应用程序A能够获得应用程序B中的共享接口b的实例化共享接口对象的话,则可以通过共享接口对象调用应用程序B的共享接口b,若应用程序A无法获得应用程序B中的共享接口b的实例化共享接口对象的话,则无法调用应用程序B的共享接口b。
对于面向过程编程的应用程序来说,通常情况下不存在对象,所以调用面向对象编程的应用程序中的接口的方式无法适用于面向过程编程的应用程序中。若使用static关键字修饰接口,那么该被static关键字修饰的接口只能被自身应用程序代码所使用的,不能被其他应用程序所调用。当应用程序中的接口不做任何指示时,该接口可以被其他应用程序在代码编译的过程中静态链接调用。所以对于面向过程编程的应用程序的接口,要么是无法调用,要么是无条件调用,无法有条件的将可以读写属于应用程序自己的数据的接口或方法共享给其他应用程序,存在访问接口对应的应用程序的数据信息的安全风险,无法满足实际业务的需求。
进一步,针对面向过程编程的应用程序的接口来说,还可以使用编译环境提供的导出(export)条件对应用程序中可以被读写的接口进行申明,从而得到动态链接库,使得该接口被其他应用程序在代码编译的过程中动态链接调用。该方法虽然可以保护接口对应的应用程序的数据信息的安全性,但是必须在应用程序的代码编译过程中,结合导出的动态链接库一起编译,那么应用程序的代码和动态链接库之间的耦合度过高,每次动态链接库更新到新的版本,就必须下载新的动态链接库,重新编译应用程序的代码才能应用新版本的动态链接库的接口。
本申请提供了一种应用程序接口调用方法,包括:获取应用程序的安装指令;基于安装指令,调用应用程序的安装接口,以便于应用程序运行安装接口的代码;在应用程序运行安装接口的代码的过程中,将应用程序的可访问接口表、允许调用可访问接口表中的接口的应用程序的唯一标识以及该应用程序进行绑定关联,得到接口授权表,以便于其他应用程序根据接口授权表,调用该应用程序的接口。由于预先在应用程序的安装过程中,绑定应用程序、应用程序的可访问接口表以及允许访问可访问接口表中的接口的应用程序的唯一标识,生成应用程序对应的接口授权表,后续其他应用通过接口授权表,实现应用程序的接口的调用,例如:授权通过则允许调用该应用程序的接口,授权未通过则不允许调用该应用程序的接口。接口授权表为应用程序接口调用提供了条件,从而实现有条件的调用应用程序的接口,保证应用程序的数据信息的安全,从而满足实际业务的需求。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一:
下面结合图1、图2,详细介绍一下本申请实施例提供的一种应用程序接口调用方法。本申请实施例提供的一种应用程序接口调用方法应用场景,包括外部实体装置10和操作系统20。
其中,外部实体装置10是应用程序的开发人员在开发该应用程序时使用的终端,例如:笔记本电脑、平板电脑或者台式电脑等,本申请不做具体限定。
其中,操作系统(Operating System)20是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。操作系统20为了运行应用程序,提供了所有代码的运行环境,根据代码的类型可以将运行环境分为:系统代码(例如:创建应用程序的注册表的代码)的运行环境、应用代码(例如:应用程序的安装代码)的运行环境,其中系统代码的运行环境可以称为系统运行环境21、应用代码的运行环境可以称为应用运行环境。在本申请实施例中,安装并运行的应用程序以应用程序22和应用程序23为例进行说明,具体的,应用运行环境以应用程序22的运行环境以及应用程序23的运行环境为例进行说明。
其中,运行环境(包括:系统运行环境和应用运行环境等)主要包括系统的硬件环境和由其他的系统软件组成的软件环境,以及操作系统和使用用户之间的关系。其中包括了应用程序访问操作系统资源的接口以及其他便于应用程序开发和功能模块实现的基础API接口。
需要说明的是,本申请实施例中的运行环境还可以是系统API、第三方API等,本申请不做具体限定。
首先结合图1,详细介绍一下本申请实施例提供的应用程序的安装过程,具体如下:
S101、外部实体装置10向系统运行环境21发送应用程序22的安装指令。
其中,安装指令是用于发起应用程序的安装操作的指令。
S102、系统运行环境21创建应用程序22的注册表(R22)。
其中,注册表(R22)用来记录与对应的应用程序相关的数据,例如:应用程序的唯一标识、应用程序的存储空间等等。
需要说明的是,步骤102为可选步骤。
S103、系统运行环境21向应用程序22发送应用程序22的安装接口的调用请求。
其中,安装接口的调用请求是为了调用应用程序22的安装接口,从而实现安装应用程序22的目的。
S104、应用程序22接收到安装接口的调用请求后,应用程序22的运行环境运行安装接口中的代码。
具体的,系统运行环境21调用应用程序22的安装接口,应用程序22在接收到系统运行环境21发送的安装接口的调用请求后,应用程序22的运行环境运行安装接口中的代码,创建应用程序22自己的数据(例如:文件、工作日志、安装目录等),以便于后续在应用程序22安装完成后,能够正常实现应用程序22的运行。
S105、在应用程序22的运行环境运行应用程序22的安装接口的代码过程中,应用程序22向系统运行环境21发送注册接口授权表的接口调用请求。
其中,注册接口授权表的接口调用请求是为了调用系统运行环境21提供的注册接口授权表接口,从而实现系统运行环境21为应用程序22生成接口授权表。
S106、系统运行环境21运行注册接口授权表接口,创建应用程序22的接口授权表。
具体的,系统运行环境21运行注册接口授权表接口,获取应用程序22的可访问接口表(SI22)以及允许调用可访问接口表(SI22)中的接口的应用程序的唯一标识,例如:AID、应用名称等,将应用程序22的可访问接口表(SI22)、允许调用可访问接口表(SI22)中的接口的应用程序的唯一标识以及应用程序22进行绑定关联,得到应用程序22的接口授权表。
其中,应用标识(application identifier ,AID)是由注册的应用提供商标识(RID)以及专用应用标识符扩展(PIX)组成。具体的,AID唯一标识一个应用程序,AID=RID(5字节)+PIX(11字节)。
具体的,将应用程序22的可访问接口表(SI22)、允许调用可访问接口表(SI22)中的接口的应用程序的唯一标识以及应用程序22的唯一标识进行绑定关联,得到应用程序22的接口授权表。
进一步,接口授权表是系统运行环境21根据应用程序22的可访问接口表(SI22)、允许调用可访问接口表(SI22)中的接口的应用程序的唯一标识以及应用程序22的注册表(R22)进行绑定关联,得到应用程序22的接口授权表。
为了方便理解,下面结合表1-表3详细介绍一下绑定关联得到的接口授权表的格式示意图。
情况1:应用程序22的可访问接口表(SI22)中包括:接口A、接口B和接口C,可可访问接口表(SI22)中的所有接口都允许被应用程序A、应用程序B所调用时,应用程序22的接口授权表如表1所示。
表1
需要说明的是,允许调用接口的应用程序的唯一标识以应用程序的AID为例进行说明,本申请不做具体限定。
情况2:应用程序22的可访问接口表(SI22)中包括:接口A、接口B和接口C,其中接口A和接口B允许被应用程序A所调用,而接口C允许被应用程序C所调用时,应用程序22的接口授权表如表2所示。
表2
情况3:应用程序22的可访问接口表(SI22)中包括:接口A、接口B和接口C,其中接口A和接口C允许被应用程序B所调用,接口B允许被应用程序C所调用时,应用程序22的接口授权表如表3所示。
表3
需要说明的是,在本申请实施例中接口授权表的形式为表1、表2以及表3所体现的表格格式,除此之外还可以是树状图格式等,本申请不做具体限定。
S107、系统运行环境21创建应用程序22对应的接口授权表之后,向应用程序22发送注册结果。
S108、当应用程序22安装成功后,返回安装结果给系统运行环境21。
具体的,应用程序22在安装过程中,接收到系统运行环境21发送的创建完成结果后,继续执行应用程序22的安装接口中的代码,当应用程序22的安装接口中的代码执行完成后,则表示应用程序22已经安装成功,将安装成功结果返回给系统运行环境21,以便于系统运行环境21将安装结果发送给外部实体装置10。
S109、系统运行环境21将接收到的应用程序22的安装结果发送给外部实体装置10。
上述步骤101-109完成了应用程序22的接口授权表的生成,方便后续其他应用程序运行时有条件地调用应用程序22的接口;并且上述步骤101-109完成了应用程序22的安装,以便于后续应用程序22的运行。
为了方便后续描述应用程序的接口调用,本申请实施例中根据步骤101-109所描述的过程,完成应用程序23的接口授权表的生成和应用程序23的安装,具体如下:
S201、外部实体装置10向系统运行环境21发送应用程序23的安装指令。
S202、系统运行环境21创建应用程序23的注册表(R23)。
S203、系统运行环境21向应用程序23发送应用程序23的安装接口的调用请求。
S204、应用程序23接收到安装接口的调用请求后,应用程序23的运行环境运行安装接口中的代码。
S205、在应用程序23的运行环境运行自身的安装接口的代码过程中,应用程序23向系统运行环境21发送注册接口授权表接口的调用请求。
S206、系统运行环境21运行注册接口授权表接口,创建应用程序23对应的接口授权表。
S207、系统运行环境21创建应用程序23对应的接口授权表之后,向应用程序23发送创建完成结果。
S208、当应用程序23安装成功后,返回安装结果给系统运行环境21。
S209、系统运行环境21将接收到的应用程序23的安装结果发送给外部实体装置10。
下面结合图2详细介绍一下本申请实施例提供的应用程序的接口调用过程。下面过程以应用程序22运行过程中调用应用程序23的接口A为例进行说明,其中应用程序22与应用程序23需要都处于安装成功状态。
S301、外部实体装置10向系统运行环境21发送针对应用程序22的运行指令。
其中,运行指令是一种操作系统指令,用于发起应用程序的运行。
S302、系统运行环境21接收到针对应用程序22的运行指令时,向应用程序22发送对应的业务指令。
具体的,系统运行环境21接收到针对应用程序22的运行指令时,首先将应用程序22设置为当前运行应用,即当前应用运行环境为应用程序22的运行环境,然后向应用程序22发送对应的业务指令,运行应用程序22对应的业务模块。
具体的,向应用程序22的业务模块发送对应的业务指令,以便于业务模块运行与业务指令对应的业务功能。
S303、应用程序22根据接收到的业务指令,运行对应的业务模块。
具体的,应用程序22根据接收到的业务指令,应用程序22的运行环境执行与业务指令对应的业务模块的代码,以运行对应的业务模块,从而实现业务模块(业务指令)对应的业务功能。
S304、在应用程序22运行对应的业务模块过程中,需要调用应用程序23的接口A,向系统运行环境21发送针对应用程序23的接口A的接口授权申请。
具体的,在应用程序22运行对应的业务模块过程中,需要调用应用程序23的接口A,首先判断应用程序22和应用程序23是否为相同程序包实例化出的应用程序。
具体的,若应用程序22和应用程序23是相同程序包实例化出的应用程序,则应用程序22与应用程序23之间可以公用接口A互相访问各自的公开数据,应用程序之间的运行不需要做任何切换变更。
其中,相同程序包实例化出的应用程序,其实就是由相同的程序包实例化出的不同唯一标识(例如:AID或名称)的应用程序,则为相同程序包实例化出的应用。
具体的,若应用程序22和应用程序23不是相同程序包实例化出的应用程序,则应用程序22需要向系统运行环境21发送针对应用程序23的接口A(待调用接口)的接口授权申请。
具体的,应用程序22向系统运行环境21发送调用申请应用程序23访问授权的接口,以便系统运行环境21后续完成接口授权。
进一步,应用程序22向系统运行环境21发送针对应用程序23的接口A的接口授权申请,接口授权申请包括:需要申请的接口授权状态。
具体的,接口授权状态包括:临时授权状态、会话授权状态以及永久授权状态。
其中,临时授权状态为:一个或者多个接口被授权调用后,当一个或者多个接口调用结束后,授权状态立即取消。当再次调用上述一个或者多个接口时,需要重新进行接口授权申请。
其中,会话授权状态为:一个或者多个接口被授权调用后,该一个或者多个接口的授权状态保持,直到操作系统失电或者应用程序为当前运行应用状态被选择取消,则授权状态失效,操作系统重新上电或应用程序重新被选择为当前运行的应用后,之前的接口授权状态失效。
其中,永久授权状态为:一个或者多个接口被授权调用后,该一个或者多个接口的授权状态不会失效,直到该应用程序被删除后重新再创建,则该一个或多个接口的授权状态失效。
S305、系统运行环境21接收到接口授权申请后,在应用程序23的可访问接口表(SI23)中是否存在接口A。
具体的,若应用程序23的可访问接口表中存在接口A,则进行S306;
具体的,若应用程序23的可访问接口表中不存在接口A,说明应用程序23的接口A不允许被调用,所以授权未通过,则直接进行S311。
S306、系统运行环境21根据应用程序23的授权接口表,检查与接口A对应的允许调用的应用程序的唯一标识与应用程序22的唯一标识是否对应。
具体的,若接口A对应的允许调用的应用程序的唯一标识与应用程序22的唯一标识对应,说明应用程序23的可访问接口表中的接口A允许应用程序22调用,则授权通过,进行S307。
具体的,若接口A对应的允许调用的应用程序的唯一标识与应用程序22的唯一标识不对应,说明应用程序23的语序访问接口表中的接口A不允许应用程序22调用,则授权未通过,进行S311。
本申请实施例根据应用程序安装过程中生成的接口授权表,实现应用程序接口调用的授权,接口授权通过才可以调用应用程序的接口,从而实现有条件的调用应用程序的接口,保证应用程序的数据信息的安全,从而满足实际业务的需求。
进一步,接口授权申请的过程在应用程序的运行过程中实现,不需要在应用程序的编译阶段,结合导出的动态链接库、静态链接库等一起编译,减少了应用程序的代码和动态链接库、静态链接库之间的耦合度。不需要根据动态链接库、静态链接库的更新,重新编译应用程序的代码,减少了应用程序的编译工作,并且减少了应用程序更新的复杂程度。
S307、系统运行环境21向应用程序22返回接口授权通过结果。
进一步,接口授权通过还包括接口授权状态,例如:临时授权调用、会话授权调用、永久授权调用等。
S308、当应用程序22接收到的授权结果为授权通过时,应用程序22调用应用程序23的接口A。
具体的,当应用程序22调用应用程序23的接口A时,将当前应用环境从应用程序22的运行环境切换到应用程序23的运行环境,即在应用程序23的运行环境中运行接口A的代码。
S309、应用程序23的运行环境运行接口A的代码,得到应用程序23的接口A对应的数据。
具体的,无论应用程序23是否正在运行中,当前运行应用从应用程序22切换到运行应用程序23,即应用程序23的运行环境运行接口A(待调用接口)的代码,得到应用程序23的接口A对应的数据。
S310、应用程序23运行接口A的代码执行完成后,向应用程序返回调用结果,继续执行应用程序22的业务程序。
具体的,应用程序23运行接口A的代码执行完成后,当前运行应用从应用程序23切换到应用程序22,即将当前应用环境从应用程序23的运行环境切换到应用程序22的运行环境,继续运行应用程序22的业务模块。
S311、系统运行环境21向应用程序22返回授权未通过的授权结果。
具体的,授权结果包括:授权通过、授权未通过。
S312、当应用程序22的业务指令执行完成后,退出当前应用运行环境,将执行结果返回给系统运行环境21。
S313、系统运行环境21将执行结果返回给外部实体数据。
本申请实施例提供了一种应用程序接口调用方法,首先进行应用程序的安装过程,外部实体装置发送安装指令,操作系统的应用程序运行环境根据安装指令创建注册表并且向待安装应用程序发送安装接口调用请求,在应用程序运行安装接口的代码的过程中,通过注册请求接口向运行环境申请创建应用程序的接口授权表,并返回注册结果。然后进行应用程序的运行过程,应用程序的运行过程所涉及的应用程序处于安装成功状态,运行环境接收应用程序所需的待调用接口的接口授权申请,根据应用程序的接口授权表,对接口授权申请进行处理,得到授权结果,从而实现应用程序接口的调用。本申请实施例提供的一种应用程序接口调用方法,在应用程序安装阶段生成对应的接口授权表,在其他应用程序运行阶段,根据接口授权表,实现应用程序接口的调用授权,接口授权通过才可以调用应用程序的接口,从而实现有条件的调用应用程序的接口,保证应用程序的数据信息的安全,从而满足实际业务的需求。
进一步,应用程序不需要在编译阶段,结合导出的动态链接库、静态链接库等一起编译,减少了应用程序的代码和动态链接库、静态链接库之间的耦合度。
实施例二:
下面结合图3、图4,详细介绍一下本申请实施例提供的一种应用程序接口调用方法,该方法应用于本申请提供的一种应用程序接口调用装置。
S401、接口调用装置获取应用程序的安装指令。
具体的,应用程序的安装指令是由外部实体装置向接口调用装置发送的。
S402、接口调用装置基于应用程序的安装指令,调用对应的安装接口。
具体的,接口调用装置向应用程序发送安装接口的调用请求,调用应用程序对应的安装接口,运行应用程序中的安装接口的代码,实现应用程序的安装。
S403、在应用程序运行安装接口的代码过程中,调用装置将应用程序的可访问接口表、允许调用可访问接口表中的接口的应用程序的唯一标识、以及应用程序进行绑定关联,得到应用程序的接口授权表。
具体的,调用装置建立应用程序、应用程序的可访问接口表、允许调用可访问接口表中的接口的应用程序的唯一标识这三者绑定关联,得到该应用程序的接口授权表。其他应用程序根据该应用程序的接口授权表,调用该应用程序的接口。
具体的,当其他应用程序想要调用该应用程序的接口时,调用装置根据接口授权表,调用该应用程序的接口。
进一步,调用装置根据接口授权表,为其他应用程序发送的调用接口的接口授权申请进行处理,授权通过其他应用程序才可以调用对应的接口,授权未通过则不能够调用对应的接口,从而实现有条件的调用应用程序的接口,保证应用程序的数据信息的安全,从而满足实际业务的需求。
为了方便理解,下面结合图4详细介绍一下调用装置根据接口授权表,调用该应用程序的接口。
S501、调用装置接收申请接口调用的应用程序针对该应用程序的待调用接口的接口授权申请。
其中,申请接口调用的应用程序是在应用程序运行过程中,需要调用此应用程序接口的应用程序。
其中,待调用接口是其他应用程序在运行过程中,需要调用的接口。
具体的,待调用接口的接口授权申请是其他应用程序在运行过程中,向调用装置发送的。
进一步,在接收接口授权申请之前,判断发送接口授权申请的申请接口调用应用程序和该应用程序是否是相同程序包实例化的应用程序,若否,则申请接口调用应用程序向调用装置发送针对该应用程序的待调用接口的接口授权申请。
S502、调用接口根据该应用程序的可访问接口表,判断该可访问接口表中是否包括该待调用接口。
若是,则进行S503;
若否,则授权未通过,直接得到授权结果。
S503、调用装置根据接口授权表,判断允许调用该待调用接口的应用程序的唯一标识与该申请接口调用的应用程序的唯一标识是否对应,得到授权结果。
具体的,授权结果包括:授权通过、授权未通过等。
若是,则授权通过。
若否,则授权未通过。
S504、调用装置将授权结果返回给申请接口调用应用程序。
具体的,申请接口调用应用程序根据授权结果,实现有条件的调用应用程序的接口,保证应用程序的数据信息的安全,从而满足实际业务的需求。
本申请实施例提供了一种应用程序接口调用方法,包括:获取应用程序的安装指令;基于安装指令,调用应用程序的安装接口,以便于应用程序运行安装接口的代码,创建应用程序的数据;在应用程序运行安装接口的代码过程中,运行环境将应用程序的可访问接口表、允许调用所述可访问接口表中的接口的应用程序的唯一标识、以及应用程序进行绑定关联,得到所述应用程序的接口授权表,以便于其他应用程序根据接口授权表,调用所述应用程序的接口。由于根据应用程序、可访问接口表以及允许调用这些接口的应用程序的唯一标识这三者绑定关联得到接口授权表,当其他应用程序想调用对应接口时,根据接口授权表,对调用接口进行授权,从而实现有条件的调用应用程序的接口,保证应用程序的数据信息的安全,从而满足实际业务的需求。
进一步,在应用程序的安装过程中创建接口授权表,不需要在应用程序编译阶段,结合导出的动态链接库、静态链接库等一起编译,减少了应用程序的代码和动态链接库、静态链接库之间的耦合度。不需要根据动态链接库、静态链接库的更新,重新编译应用程序的代码,减少了应用程序的编译工作,并且减少了应用程序更新的复杂程度。
实施例三:
下面结合图5,详细介绍一下本申请实施例提供的一种应用程序接口调用装置的结构。
具体的,应用程序接口调用装置包括:
获取模块601,用于获取应用程序的安装指令;
调用模块602,用于基于安装指令,调用对应应用程序的安装接口,以便于应用程序运行安装接口的代码;
绑定模块603,用于在应用程序运行安装接口的代码过程中,将应用程序的可访问接口表、允许调用可访问接口表中的接口的应用程序的唯一标识、以及应用程序进行绑定关联,得到应用程序的接口授权表。以便于其他应用程序根据接口授权表,调用应用程序的接口。
进一步,调用装置还包括:
接收模块,用于接收申请接口调用应用程序针对应用程序的待调用接口的接口授权申请;
处理模块,用于根据应用程序的接口授权表,处理该接口授权申请,得到授权结果;
返回模块,用于将授权结果返回给申请接口调用应用程序。以便于申请接口调用应用程序根据授权结果,调用该待调用接口。
进一步,处理模块具体包括:
接口判断模块,用于根据应用程序的可访问接口表,判断可访问接口表中是否包括该待调用接口;
若是,则应用判断模块,用于根据接口授权表,判断允许调用待调用接口的应用程序的唯一标识与申请接口调用的应用程序的唯一标识是否对应;
若是,则返回模块,用于返回授权通过给申请接口调用应用程序。
进一步,处理模块还包括:
若接口判断模块,判断得到可访问接口表中不包括该待调用接口,则返回模块,用于直接返回授权未通过给申请接口调用应用程序。
进一步,处理模块还包括:
若应用判断模块,判断得到允许调用待调用接口的应用程序的唯一标识与申请接口调用的应用程序的唯一标识不对应,则返回模块,用于返回授权未通过给申请接口调用应用程序。
本申请实施例提供了一种应用程序接口调用装置,包括:获取模块601,用于获取应用程序的安装指令;调用模块602,用于基于安装指令,调用对应应用程序的安装接口,以便于应用程序运行安装接口的代码;绑定模块603,用于在应用程序运行安装接口的代码过程中,将应用程序的可访问接口表、允许调用可访问接口表中的接口的应用程序的唯一标识、以及应用程序进行绑定关联,得到应用程序的接口授权表。以便于其他应用程序根据接口授权表,调用应用程序的接口。由于调用装置在应用程序安装过程中根据应用程序、可访问接口表以及允许调用这些接口的应用程序的唯一标识这三者绑定关联得到接口授权表,当其他应用程序想调用对应接口时,根据接口授权表,对调用接口进行授权,从而实现有条件的调用应用程序的接口,保证应用程序的数据信息的安全,从而满足实际业务的需求。
进一步,在应用程序的安装过程中创建接口授权表,不需要在应用程序编译阶段,结合导出的动态链接库、静态链接库等一起编译,减少了应用程序的代码和动态链接库、静态链接库之间的耦合度。不需要根据动态链接库、静态链接库的更新,重新编译应用程序的代码,减少了应用程序的编译工作,并且减少了应用程序更新的复杂程度。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元提示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (8)
1.一种应用程序接口调用方法,其特征在于,所述方法包括:
获取应用程序的安装指令;
基于所述安装指令,调用所述应用程序的安装接口,以便于所述应用程序运行所述安装接口的代码,创建所述应用程序的数据;
在所述应用程序运行所述安装接口的代码的过程中,将所述应用程序的可访问接口表、允许调用所述可访问接口表中的接口的应用程序的唯一标识、以及所述应用程序进行绑定关联,得到所述应用程序的接口授权表,以便于申请接口调用的应用程序根据所述接口授权表,调用所述应用程序的接口;所述可访问接口表包括所述应用程序中允许其他应用程序调用的接口;
所述申请接口调用的应用程序根据所述接口授权表,调用所述应用程序的接口,包括:
接收所述申请接口调用的应用程序针对所述应用程序的待调用接口的接口授权申请;
根据所述接口授权表,处理所述接口授权申请,得到授权结果;
将授权结果返回给所述申请接口调用的应用程序,以便于所述申请接口调用的应用程序根据所述授权结果,调用所述待调用接口。
2.根据权利要求1所述的方法,其特征在于,所述根据所述接口授权表,处理所述接口授权申请,得到授权结果,包括:
根据所述应用程序的可访问接口表,判断所述可访问接口表中是否包括所述待调用接口;
若所述可访问接口表中包括所述待调用接口,则根据所述接口授权表,判断允许调用所述待调用接口的应用程序的唯一标识与所述申请接口调用的应用程序的唯一标识是否对应;
若所述允许调用所述待调用接口的应用程序的唯一标识与所述申请接口调用的应用程序的唯一标识对应,则授权通过。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述可访问接口表中不包括所述待调用接口,则授权未通过。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述允许调用所述待调用接口的应用程序的唯一标识与所述申请接口调用的应用程序的唯一标识不对应,则授权未通过。
5.根据权利要求1所述的方法,其特征在于,接口授权申请包括:需要申请的接口授权状态;
所述接口授权状态包括:临时授权状态、会话授权状态、永久授权状态。
6.根据权利要求1所述的方法,其特征在于,在所述接收所述申请接口调用的应用程序针对所述应用程序的待调用接口的接口授权申请之前,所述方法还包括:
判断所述申请接口调用的应用程序和所述应用程序是否为相同程序包实例化的应用程序;
若否,则接收所述申请接口调用的应用程序针对所述应用程序的待调用接口的接口授权申请。
7.一种应用程序接口调用装置,其特征在于,所述装置包括:
获取模块,用于获取应用程序的安装指令;
调用模块,用于基于所述安装指令,调用所述应用程序的安装接口,以便于所述应用程序运行所述安装接口的代码,创建所述应用程序的数据;
绑定模块,用于在所述应用程序运行所述安装接口的代码过程中,将所述应用程序的可访问接口表、允许调用所述可访问接口表中的接口的应用程序的唯一标识、以及所述应用程序进行绑定关联,得到所述应用程序的接口授权表,以便于申请接口调用的应用程序根据所述接口授权表,调用所述应用程序的接口;
接收模块,用于接收所述申请接口调用的应用程序针对所述应用程序的待调用接口的接口授权申请;
处理模块,用于根据所述接口授权表,处理所述接口授权申请,得到授权结果;
返回模块,用于将授权结果返回给所述申请接口调用的应用程序,以便于所述申请接口调用的应用程序根据所述授权结果,调用所述待调用接口。
8.根据权利要求7所述的装置,其特征在于,所述处理模块具体包括:
接口判断模块,用于根据所述应用程序的可访问接口表,判断所述可访问接口表中是否包括所述待调用接口;
应用判断模块,用于当所述接口判断模块确定所述可访问接口表中包括所述待调用接口时,则根据所述接口授权表,判断允许调用所述待调用接口的应用程序的唯一标识与所述申请接口调用的应用程序的唯一标识是否对应;
若所述应用判断模块确定所述允许调用所述待调用接口的应用程序的唯一标识与所述申请接口调用的应用程序的唯一标识对应,则授权通过。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310284953.4A CN115994004B (zh) | 2023-03-22 | 2023-03-22 | 一种应用程序接口调用方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310284953.4A CN115994004B (zh) | 2023-03-22 | 2023-03-22 | 一种应用程序接口调用方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115994004A CN115994004A (zh) | 2023-04-21 |
CN115994004B true CN115994004B (zh) | 2023-08-29 |
Family
ID=85993798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310284953.4A Active CN115994004B (zh) | 2023-03-22 | 2023-03-22 | 一种应用程序接口调用方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115994004B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117235708B (zh) * | 2023-11-13 | 2024-03-26 | 紫光同芯微电子有限公司 | 应用程序运行时的接口授权调用方法、装置、系统和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103220259A (zh) * | 2012-01-20 | 2013-07-24 | 华为技术有限公司 | Oauth API的使用、调用方法、设备及系统 |
CN105072255A (zh) * | 2015-07-10 | 2015-11-18 | 北京奇虎科技有限公司 | 移动设备隐私权限控制方法、装置及相应的手机设备 |
CN108009165A (zh) * | 2016-10-31 | 2018-05-08 | 北京乐知行软件有限公司 | 一种网页访问控制方法及装置 |
WO2021073214A1 (zh) * | 2019-10-14 | 2021-04-22 | 支付宝(杭州)信息技术有限公司 | 用于运行应用程序的方法、装置及gpu节点 |
WO2022100155A1 (zh) * | 2020-11-12 | 2022-05-19 | 深圳壹账通智能科技有限公司 | 接口授权监控方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9195775B2 (en) * | 2009-06-26 | 2015-11-24 | Iii Holdings 2, Llc | System and method for managing and/or rendering internet multimedia content in a network |
-
2023
- 2023-03-22 CN CN202310284953.4A patent/CN115994004B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103220259A (zh) * | 2012-01-20 | 2013-07-24 | 华为技术有限公司 | Oauth API的使用、调用方法、设备及系统 |
CN105072255A (zh) * | 2015-07-10 | 2015-11-18 | 北京奇虎科技有限公司 | 移动设备隐私权限控制方法、装置及相应的手机设备 |
CN108009165A (zh) * | 2016-10-31 | 2018-05-08 | 北京乐知行软件有限公司 | 一种网页访问控制方法及装置 |
WO2021073214A1 (zh) * | 2019-10-14 | 2021-04-22 | 支付宝(杭州)信息技术有限公司 | 用于运行应用程序的方法、装置及gpu节点 |
WO2022100155A1 (zh) * | 2020-11-12 | 2022-05-19 | 深圳壹账通智能科技有限公司 | 接口授权监控方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115994004A (zh) | 2023-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8607224B2 (en) | System for packaging native program extensions together with virtual machine applications | |
EP0638860A2 (en) | Method and apparatus for validating travelling object-oriented programs with digital signatures | |
US8418169B2 (en) | Management method for managing software module and information processor | |
EP0930567A2 (en) | Method and apparatus for extending security model to native code | |
US20160232017A1 (en) | System and Method for Reloading Constructors | |
US10019598B2 (en) | Dynamic service discovery | |
CN115994004B (zh) | 一种应用程序接口调用方法及装置 | |
US7444624B2 (en) | Method for the secure interpretation of programs in electronic devices | |
US20080163266A1 (en) | Mechanism for transparently interfacing with a third party version control system | |
JP2004152022A (ja) | 通信装置、プログラムおよび記録媒体 | |
CN110865824A (zh) | 一种基于无障碍服务实现缄默安装的安卓渗透方法和装置 | |
JP4724660B2 (ja) | 組み込みシステムの中に統合されるソフトウェアコンポーネントを管理する方法 | |
CN108958785B (zh) | 一种应用程序升级方法及装置 | |
CN110221840B (zh) | 应用程序的功能实现方法及装置、设备及存储介质 | |
JP2007527562A5 (zh) | ||
US10394610B2 (en) | Managing split packages in a module system | |
US20080126781A1 (en) | Enforcing proper resolution for classes of shared objects in a virtual machine | |
US20040015876A1 (en) | Method and structure of implementing a safe pointer | |
US7254817B2 (en) | Apparatus and methods for integrating APIs for program execution management | |
Park et al. | A multi-agent architecture supporting services access | |
CN115114610B (zh) | 一种基于安卓系统通过Root调用服务的模块及方法 | |
JP4638505B2 (ja) | 電子デバイス内の安全なプログラム解釈方法 | |
CN116991380B (zh) | 一种应用程序的构建方法、装置、电子设备及存储介质 | |
US20010007146A1 (en) | Method for providing a set of software components | |
CA2492123A1 (en) | Evolving entries within persistent stores in a scalable infrastructure environment |
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 |