【技术实现步骤摘要】
接口调用方法、装置及存储介质
[0001]本申请涉及计算机
,尤其涉及一种接口调用方法、装置及存储介质。
技术介绍
[0002]面向对象的编程技术支持多继承及多实现。例如,在Java编程中,一个接口类可以继承多个接口类(即多继承),一个接口类也可以被多个类实现(即多实现)。当源代码中存在对多继承或多实现的接口类中的接口函数的调用时,在编译阶段,编译器通常无法确定调用该接口函数的对象的真实类型,也就无法确定调用的接口函数的地址,只有在程序运行阶段,才可通过动态查找的方式确定调用的接口函数的地址。然而,在运行时动态查找接口函数的地址,耗时较大,影响程序的执行效率。
技术实现思路
[0003]有鉴于此,提出了一种接口调用方法、装置及存储介质。
[0004]第一方面,本申请的实施例提供了一种接口调用方法,包括:响应于应用程序中接口函数的调用,根据调用所述接口函数的目标对象所属的类型及第一缓存信息,确定所述接口函数的存储地址;从所述存储地址读取所述接口函数,并执行所述接口函数,其中,所述第一缓存信息是在所 ...
【技术保护点】
【技术特征摘要】
1.一种接口调用方法,其特征在于,包括:响应于应用程序中接口函数的调用,根据调用所述接口函数的目标对象所属的类型及第一缓存信息,确定所述接口函数的存储地址;从所述存储地址读取所述接口函数,并执行所述接口函数,其中,所述第一缓存信息是在所述应用程序被加载到内存时,根据所述应用程序在内存中的存储地址及预设的第二缓存信息确定的,所述第二缓存信息包括多个第二缓存条目,每个第二缓存条目均对应一个接口函数的调用位置,所述第二缓存条目包括调用接口函数的对象所属的类型的标识及接口函数在所述类型的函数表中的标识。2.根据权利要求1所述的方法,其特征在于,所述第一缓存信息包括多个第一缓存条目,所述第一缓存条目与所述第二缓存条目相对应,所述第一缓存条目包括调用接口函数的对象所属的类型的存储地址及所述接口函数的存储地址。3.根据权利要求1所述的方法,其特征在于,还包括:确定所述应用程序中各个接口函数的调用信息,所述调用信息包括所述接口函数的调用位置标识、调用所述接口函数的对象所属的类型的标识及所述接口函数在所述类型的函数表中的标识;根据各个接口函数的调用信息,确定第二缓存信息。4.根据权利要求3所述的方法,其特征在于,所述确定所述应用程序中各个接口函数的调用信息,包括:对所述应用程序的源代码进行采样编译,生成采样目标码,所述采样编译用于在编译过程中在所述源代码中的各个接口函数的调用位置的后面插入预设的采样代码;执行所述采样目标码,得到各个接口函数的调用信息。5.根据权利要求4所述的方法,其特征在于,所述根据各个接口函数的调用信息,确定第二缓存信息,包括:在编译所述源代码生成所述应用程序的可执行文件的过程中,根据各个接口函数的调用信息,分别创建与各个接口函数的调用位置对应的第二缓存条目,得到第二缓存信息,其中,所述第二缓存信息位于所述可执行文件中。6.根据权利要求1所述的方法,其特征在于,所述根据调用所述接口函数的目标对象所属的类型及第一缓存信息,确定所述接口函数的存储地址,包括:从第一缓存信息中,确定出与所述接口函数的调用位置对应的第一缓存条目;在调用所述接口函数的目标对象所属的类型与所述第一缓存条目中的类型相同的情况下,获取所述第一缓存条目中接口函数的存储地址。7.根据权利要求1所述的方法,其特征在于,每个接口函数的调用位置对应至少一个第二缓存条目。8.根据权利要求1所述的方法,其特征在于,通过存储地址回填的方式,将第二缓存信息更新为第一缓存信息。9.根据权利要求1-8中任意一项所述的方法,所述应用程序的可执行文件通过方舟编译器编译生成,所述应用程序包括情感化操作系统EMUI的组件以及运行在情感化操作系统EMUI上的程序。
10.一种接口调用装置,其特征在于,包括:地址获取模块,响应于应用程序中接口函数的调用,根据调用所述接口函数的目标对象所属的类型及第一缓存信息,确定所述接口函数的存储地址;执行模块,从所述存储地址读取所述接口...
【专利技术属性】
技术研发人员:郑家欢,李忆明,周正兴,印闯,叶祥润,张必红,吴永崇,黄海涛,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。