中间件文件生成和中间件的调用方法、装置及电子设备与流程

    专利查询2024-01-07  104



    1.本技术涉及计算机技术领域,尤其涉及一种中间件文件生成和中间件的调用方法、装置及电子设备。


    背景技术:

    2.第三方应用中通常集成有多个中间件,由于不同中间件的代码编写规则可能不同,这就不可避免的出现不同中间件的接口名称重复的现象,进而导致第三方应用使用相同的接口名称而得到不同的中间件,使得第三方应用在调用中间件时出现逻辑混乱。


    技术实现要素:

    3.本技术实施例提供一种中间件文件生成和中间件的调用方法、装置及电子设备,以至少解决现有技术中存在的无法对具有相同接口名称的中间件进行区分的问题。
    4.为了解决上述技术问题,本技术实施例采用下述技术方案:
    5.第一方面,本技术实施例提供一种中间件文件生成方法,包括:
    6.获取中间件的源代码,所述源代码包括用于对所述中间件的接口进行调用的接口函数;
    7.将预先定义的、与所述接口匹配的命名空间信息添加到所述接口函数中;
    8.对添加所述命名空间信息后的源代码进行编译,以生成中间件文件。
    9.可选地,对添加所述命名空间信息后的源代码进行编译,以生成中间件文件,包括:
    10.将添加所述命名空间信息后的源代码编译成动态链接库文件;
    11.将所述动态链接库文件作为中间件文件。
    12.可选地,与所述接口匹配的命名空间信息是通过对所述接口的特征信息进行分析而确定的。
    13.可选地,在对添加所述命名空间信息后的源代码进行编译,以生成中间件文件之后,所述方法还包括:
    14.将所述中间件文件上传至服务器。
    15.第二方面,本技术实施例提供一种中间件的调用方法,包括:
    16.确定待调用的中间件的接口对应的命名空间信息;
    17.基于所述命名空间信息,获取并加载所述中间件对应的中间件文件,其中,所述中间件文件中包括用于对所述中间件的接口进行调用的接口函数,所述接口函数中添加有与所述接口匹配的命名空间信息;
    18.从所述中间件文件中读取并运行所述接口的接口函数,以调用所述中间件。
    19.可选地,所述中间件文件为动态链接库文件;
    20.确定待调用的中间件的接口对应的命名空间信息,包括:
    21.基于电子设备中待运行应用的相关信息,确定待调用的中间件的接口对应的命名
    空间信息;
    22.所述加载所述中间件对应的中间件文件,包括:
    23.在所述待运行应用的运行过程中,将所述中间件文件存储于所述电子设备的内存中。
    24.第三方面,本技术实施例提供一种中间件文件生成装置,包括:
    25.第一获取模块,用于获取中间件的源代码,所述源代码包括所述中间件的接口对应的接口函数,所述接口函数用于对所对应的接口进行调用;
    26.添加模块,用于将预先定义的、与所述接口匹配的命名空间信息添加到所述接口函数中;
    27.生成模块,用于对添加所述命名空间信息后的源代码进行编译,以生成中间件文件。
    28.可选地,所述生成模块具体用于:
    29.将添加所述命名空间信息后的源代码编译成动态链接库文件;
    30.将所述动态链接库文件作为中间件文件。
    31.可选地,与所述接口匹配的命名空间信息是通过对所述接口的特征信息进行分析而确定的。
    32.可选地,所述装置还包括上传模块;
    33.所述上传模块用于在所述生成模块对添加所述命名空间信息后的源代码进行编译,以生成中间件文件之后,将所述中间件文件上传至服务器。
    34.第四方面,本技术实施例提供一种中间件的调用装置,包括:
    35.确定模块,用于确定待调用的中间件的接口对应的命名空间信息;
    36.第二获取模块,用于基于所述命名空间信息,获取并加载所述中间件对应的中间件文件,其中,所述中间件文件中包括用于对所述中间件的接口进行调用的接口函数,所述接口函数中添加有与所述接口匹配的命名空间信息;
    37.调用模块,用于从所述中间件文件中读取并运行所述接口的接口函数,以调用所述中间件。
    38.可选地,所述中间件文件为动态链接库文件;
    39.所述确定模块,具体用于基于电子设备中待运行应用的相关信息,确定待调用的中间件的接口对应的命名空间信息;
    40.所述第二获取模块,具体用于在所述待运行应用的运行过程中,将所述中间件文件存储于所述电子设备的内存中。
    41.第五方面,本技术实施例提供一种电子设备,包括:
    42.处理器;
    43.用于存储所述处理器可执行指令的存储器;
    44.其中,所述处理器被配置为执行所述指令,以实现如第一方面所述的方法。
    45.第六方面,本技术实施例提供一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面所述的方法。
    46.第七方面,本技术实施例提供一种电子设备,包括:
    47.处理器;
    48.用于存储所述处理器可执行指令的存储器;
    49.其中,所述处理器被配置为执行所述指令,以实现如第二方面所述的方法。
    50.第八方面,本技术实施例提供一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如第二方面所述的方法。
    51.本技术实施例采用的上述至少一个技术方案能够达到以下有益效果:
    52.通过将预先定义的、与中间件的接口匹配的命名空间信息添加到该接口的接口函数中,并对添加命名空间信息后的源代码进行编译以生成中间件文件,这样,能够在获取中间件文件后通过该中间件文件中包含的命名空间信息对该中间件文件进行识别,以确定中间件是否为所需的中间件,从而可以区分具有相同接口名称的中间件。
    附图说明
    53.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
    54.图1a为本技术实施例涉及的一种实施环境的示意图;
    55.图1b为本技术实施例涉及的另一种实施环境的示意图;
    56.图2为本技术实施例提供的一种中间件文件生成方法的流程图;
    57.图3为本技术实施例提供的一种中间件的调用方法的流程图;
    58.图4为本技术的一个实施例电子设备的结构示意图;
    59.图5为本技术实施例提供的一种中间件文件生成装置的结构示意图;
    60.图6为本技术的另一个实施例电子设备的结构示意图;
    61.图7为本技术实施例提供的一种中间件的调用装置的结构示意图。
    具体实施方式
    62.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
    63.在对本技术实施例提供的技术方案进行说明之前,首先对本技术实施例涉及的实施环境进行说明。本技术一个或多个实施例提供可应用于如图1a和图1b所示的场景中。如图1a所示,本技术实施例涉及的实施环境包括服务器20以及多个电子设备11,12,13及14,其中,服务器20通过网络30与多个电子设备11,12,13及14相连。需要说明的是,图1a仅示出了四个电子设备,但是,本领域技术人员能理解,在本技术实施例中,可根据实际需求包括更多或更少的电子设备。
    64.网络30可以包括有线网络和/或无线网络。更具体地,网络30可以包括但不限于局域网(local area network,lan)、广域网(wide area network,wan)、内部网、互联网、移动电话网络、虚拟专用网(virtualprivatenetwork,vpn)、蜂窝式或其他移动通信网络、蓝牙、近场通信(near field communication,nfc)或其他任何组合。
    65.电子设备11,12,13和14可以提供用于开发中间件的工具,也可以运行第三方应用。电子设备11,12,13及14可以将由开发人员编写的中间件的源代码上传至服务器20中存
    储,由服务器20进行统一管理。电子设备11,12,13及14也可以对中间件的源代码进行编译以生成中间件文件,并将中间件文件存储在本地或者上传至服务器20。电子设备11,12,13及14还可以从服务器下载所需的中间件文件,将中间件文件加载至内存中,以供内置的第三方应用在运行时从内存中读取中间件文件中的相应数据(如中间件接口的接口函数),以实现对中间件的调用,完成第三方应用的运行。
    66.举例而言,电子设备11,12及13为开发人员使用的终端,开发人员可通过电子设备11,12及13提供的中间件开发工具编写中间件的源代码,其中,该源代码中包括用于对中间件的接口进行调用的接口函数。电子设备11,12及13各自上传至服务器20的中间件文件分别对应不同的中间件,具体而言,电子设备11的是中间件a的中间件文件,电子设备12上传的是中间件b的中间件文件,电子设备13上传的是中间件c的中间件文件。
    67.电子设备14中安装有第三方应用。电子设备14可从服务器20下载第三方应用这三个中间件对应的中间件文件并加载至相应的位置(如内存中),由此,使得第三方应用在运行过程中可在上述相应的位置中查找所需的中间件的中间件文件,从该中间件文件中读取并运行所述所需的中间件的接口的接口函数,以调用该中间件,完成第三方应用的运行。
    68.然而,由于不同的中间件通常由不同的开发人员进行开发,所以开发所使用的代码编写规则可能不同,这就不可避免的出现不同的中间件的接口名称重复的现象,如图1b所示,中间件a、中间b以及中间件c各自的接口的名称均为init,进而导致第三方应用使用相同的接口名称而得到不同的中间件,从而使得第三方应用在调用中间件时出现逻辑混乱。
    69.有鉴于此,本技术实施例提供一种中间件文件生成和中间件的调用方法、装置及电子设备,以至少解决如上所述的无法对具有相同接口名称的中间件进行区分的问题。
    70.以下结合附图,详细说明本技术各实施例提供的技术方案。
    71.基于图1a和图1b所示的实施环境,本技术实施例提供一种中间件文件生成方法,该方法应用于电子设备,该电子设备可以是软件开发人员所使用的终端,例如图1a所示的电子设备11,12及13。如图2所示,该方法包括以下步骤:
    72.s202,获取中间件的源代码。
    73.其中,中间件的源代码由开发人员在开发过程中按照相应的编写规则、使用相应的机器语言编写,其包括用于对中间件的接口进行调用的接口函数。接口函数中定义了接口的名称等信息。在接口函数被执行时,可实现对中间件的接口的调用。
    74.s204,将预先定义的、与中间件的接口匹配的命名空间信息添加到源代码包含的接口函数中。
    75.具体来说,命名空间信息可以包括命名空间(namespace)的名称等,通过命名空间信息可以唯一标识相匹配的中间件接口。更具体地,电子设备可通过对中间件的接口的特征信息进行分析来确定命名空间信息。其中,特征信息可以包括所属项目的项目名称、位置信息等,本技术实施例对此不做具体限定。
    76.例如,中间件的地理位置为广东省广州市高唐路南方基地,则可确定命名空间的名称为cmic_rcs_5gmessage。
    77.具体实现时,可以由开发人员通过编写代码的方式实现上述命名空间信息的添加。更为具体地,首先可以在接口函数中加入上述用于定义命名空间的代码;接着,还可以
    为该命名空间定义唯一的名称。例如,可在接口函数cli_init中添加如下所示的代码添加命名空间信息:
    78.#include“init.h”79.using namespace sdkforas;
    80.zvoid cli_init(){
    81.…
    82.}
    83.s206,对添加命名空间信息后的源代码进行编译,以生成中间件文件。
    84.其中,编译是指将软件从开发人员编写的源代码变成可被机器识别和执行的可执行程序的过程。
    85.具体来说,可通过适当的编译工具对添加命名空间信息后的源代码进行编译,得到能够被机器识别和执行的中间件文件。
    86.在一种可选的方案中,可将添加命名空间信息后的源代码编译成静态链接库文件,并得到的静态链接库文件作为中间件对应的中间件文件。在此情况下,中间件文件在编译阶段即被链接到第三方应用,这样,使得第三方应用在运行时可直接使用中间件文件以实现对中间件的调用,而无需再基于所需的中间件的接口的名称查找所需的中间件。
    87.在另一种可选的方案中,也可将添加命名空间信息后的源代码编译成动态链接库文件,并将得到的动态链接库文件作为中间件对应的中间件文件。在此情况下,第三方应用可在运行过程中根据实际需要确定所需的中间件,并根据所需的中间件的接口对应的命名空间信息,查找并加载所需中间件的中间件文件,由此实现对中间件的调用。可以理解,该方案中,通过将添加命名空间信息后的源代码编译成动态链接库,以供第三方应用根据命名空间信息来查找并加载所需的中间件的中间件文件,可以进一步提升调用中间件接口的准确性。
    88.本技术实施例提供的中间件文件生成方法,通过将预先定义的、与中间件的接口匹配的命名空间信息添加到该接口的接口函数中,并对添加命名空间信息后的源代码进行编译以生成中间件文件,这样,能够在获取中间件文件后通过该中间件文件中包含的命名空间信息对该中间件文件进行识别,以确定中间件是否为所需的中间件,从而可以区分具有相同接口名称的中间件。
    89.进一步地,本技术实施例提供的中间件文件生成方法中,在生成中间件文件后,还可将中间件文件上传至服务器,这样,使得其他电子设备可从服务器下载该中间件文件到本地,进而在运行相应的第三方应用的过程中,可基于该中间件文件实现对中间件的接口的调用。由此,使得不同的电子设备可以共享同一中间件的中间件文件,避免不同的电子设备重复创建中间件文件的现象。
    90.本技术上述实施例说明了中间件文件的生成过程,而生成的中间件文件是为了供第三方应用使用,以实现对中间件的调用。下面结合附图说明中间件文件的使用过程。
    91.请参考图3,本技术实施例还提供一种中间件的调用方法,该方法可应用于电子设备中,该电子设备可以是运行有第三方应用的终端,例如图1a所示的电子设备14。如图3所示,该方法包括以下步骤:
    92.s302,确定待调用的中间件的接口对应的命名空间信息。
    93.其中,待调用的中间件是指第三方应用在运行时所需的中间件。
    94.具体来说,可以在本地存储不同的中间件和命名空间信息之间的映射关系,由此可基于该映射关系确定待调用的中间件的接口对应的命名空间信息。
    95.s304,基于命名空间信息,获取并加载中间件对应的中间件文件。
    96.其中,中间件文件包括用于对中间件的接口进行调用的接口函数,接口函数中添加有与接口匹配的命名空间信息。
    97.由于不同的中间件的接口对应的命名空间信息不同,所以在通过上述步骤s302确定出待调用的中间件的接口对应的命名空间信息后,可根据该命名空间信息从服务器或者存储有待调用的中间件的其他电子设备获取并加载该中间件的中间件文件。
    98.本技术实施例中,中间件文件可以为动态链接库文件,在此情况下,电子设备可以对中间件文件进行动态加载。具体地,在上述步骤s302中,电子设备可根据待运行应用(即上文所述的第三方应用)的相关信息,确定待调用的中间件,由此根据上述映射关系确定与待调用的中间件的接口对应的命名空间信息。在上述步骤s304中,电子设备可以在待运行应用的运行过程中,将中间件文件存储于该电子设备自身的内存中,由此,使得待运行应用可以从中间件文件中调用相应的资源(如接口函数),实现相应的业务功能。
    99.其中,待运行应用的相关信息可以包括待运行应用的名称、类型、所需实现的业务功能等,本技术实施例对此不做限定。
    100.s306,从中间件文件中读取并运行接口的接口函数,以调用中间件。
    101.具体来说,由于中间件的接口的接口函数中添加有与接口匹配的命名空间信息,所以可根据上述确定出的命名空间信息从中间件文件中读取中间件的接口的接口函数,通过运行接口函数来实现对中间件的调用,以供第三方应用实现相应的业务功能。
    102.本技术实施例提供的中间件的调用方法中,电子设备可根据待调用的中间件的接口对应的命名空间信息,获取并加载该中间件对应的中间件文件。由于不同的中间件的接口对应的命名空间信息不同,根据命名空间信息获取中间件文件,可以保证获取到的中间件文件正是待调用的中间件的中间件文件,这样,在不同中间件的接口名称重复的情况下,在从中间件文件中读取并运行相应的接口函数时,可以确保所调用的接口正是待调用的中间件,从而提高中间件调用的准确性,避免在调用中间件时出现逻辑混乱。
    103.需要说明的是,实施本技术实施例提供的中间件文件生成方法的电子设备和实施本技术实施例提供的中间件的调用方法的电子设备可以相同,也可以不同,本技术实施例对此不做限定。
    104.另外,上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
    105.图4是本技术的一个实施例电子设备的结构示意图。请参考图4,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-access memory,ram),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他
    业务所需要的硬件。
    106.处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
    107.存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
    108.处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成中间件文件生成装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
    109.获取中间件的源代码,所述源代码包括用于对所述中间件的接口进行调用的接口函数;
    110.将预先定义的、与所述接口匹配的命名空间信息添加到所述接口函数中;
    111.对添加所述命名空间信息后的源代码进行编译,以生成中间件文件。
    112.上述如本技术图2所示实施例揭示的中间件文件生成装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
    113.该电子设备还可执行图2的方法,并实现中间件文件生成装置在图2所示实施例的功能,本技术实施例在此不再赘述。
    114.当然,除了软件实现方式之外,本技术的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
    115.本技术实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图2所示实施例的方法,并具体用于执行以下操作:
    116.获取中间件的源代码,所述源代码包括用于对所述中间件的接口进行调用的接口函数;
    117.将预先定义的、与所述接口匹配的命名空间信息添加到所述接口函数中;
    118.对添加所述命名空间信息后的源代码进行编译,以生成中间件文件。
    119.图5是本技术的一个实施例中间件文件生成装置的结构示意图。请参考图5,在一种软件实施方式中,该装置500可包括第一获取模块510、添加模块520以及生成模块530。
    120.所述第一获取模块510用于获取中间件的源代码,所述源代码包括所述中间件的接口对应的接口函数,所述接口函数用于对所对应的接口进行调用。
    121.所述添加模块520用于将预先定义的、与所述接口匹配的命名空间信息添加到所述接口函数中。
    122.所述生成模块530用于对添加所述命名空间信息后的源代码进行编译,以生成中间件文件。
    123.可选地,所述生成模块530具体用于:
    124.将添加所述命名空间信息后的源代码编译成动态链接库文件;
    125.将所述动态链接库文件作为中间件文件。
    126.可选地,与所述接口匹配的命名空间信息是通过对所述接口的特征信息进行分析而确定的。
    127.可选地,所述装置还包括上传模块;
    128.所述上传模块用于在所述生成模块530对添加所述命名空间信息后的源代码进行编译,以生成中间件文件之后,将所述中间件文件上传至服务器。
    129.本技术实施例提供的中间件文件生成装置中,通过将预先定义的、与中间件的接口匹配的命名空间信息添加到该接口的接口函数中,并对添加命名空间信息后的源代码进行编译以生成中间件文件,这样,能够在获取中间件文件后通过该中间件文件中包含的命名空间信息对该中间件文件进行识别,以确定中间件是否为所需的中间件,从而可以区分具有相同接口名称的中间件。
    130.图6是本技术的一个实施例电子设备的结构示意图。请参考图6,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-access memory,ram),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
    131.处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
    132.存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
    133.处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层
    面上形成中间件的调用装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
    134.确定待调用的中间件的接口对应的命名空间信息;
    135.基于所述命名空间信息,获取并加载所述中间件对应的中间件文件,其中,所述中间件文件中包括用于对所述中间件的接口进行调用的接口函数,所述接口函数中添加有与所述接口匹配的命名空间信息;
    136.从所述中间件文件中读取并运行所述接口的接口函数,以调用所述中间件。
    137.上述如本技术图3所示实施例揭示的中间件的调用装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
    138.该电子设备还可执行图3的方法,并实现中间件的调用装置在图3所示实施例的功能,本技术实施例在此不再赘述。
    139.当然,除了软件实现方式之外,本技术的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
    140.本技术实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图3所示实施例的方法,并具体用于执行以下操作:
    141.确定待调用的中间件的接口对应的命名空间信息;
    142.基于所述命名空间信息,获取并加载所述中间件对应的中间件文件,其中,所述中间件文件中包括用于对所述中间件的接口进行调用的接口函数,所述接口函数中添加有与所述接口匹配的命名空间信息;
    143.从所述中间件文件中读取并运行所述接口的接口函数,以调用所述中间件。
    144.图7是本技术的一个实施例中间件的调用装置的结构示意图。请参考图7,在一种软件实施方式中,该装置700可包括:确定模块710、第二获取模块720以及调用模块730。
    145.确定模块710,用于确定待调用的中间件的接口对应的命名空间信息。
    146.第二获取模块720,用于基于所述命名空间信息,获取并加载所述中间件对应的中
    间件文件,其中,所述中间件文件中包括用于对所述中间件的接口进行调用的接口函数,所述接口函数中添加有与所述接口匹配的命名空间信息。
    147.调用模块730,用于从所述中间件文件中读取并运行所述接口的接口函数,以调用所述中间件。
    148.可选地,所述中间件文件为动态链接库文件;
    149.所述确定模块710,具体用于基于电子设备中待运行应用的相关信息,确定待调用的中间件的接口对应的命名空间信息;
    150.所述第二获取模块720,具体用于在所述待运行应用的运行过程中,将所述中间件文件存储于所述电子设备的内存中。
    151.本技术实施例提供的中间件的调用装置中,根据待调用的中间件的接口对应的命名空间信息,获取并加载该中间件对应的中间件文件。由于不同的中间件的接口对应的命名空间信息不同,根据命名空间信息获取中间件文件,可以保证获取到的中间件文件正是待调用的中间件的中间件文件,这样,在不同中间件的接口名称重复的情况下,在从中间件文件中读取并运行相应的接口函数时,可以确保所调用的接口正是待调用的中间件,从而提高中间件调用的准确性,避免在调用中间件时出现逻辑混乱。
    152.总之,以上所述仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
    153.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
    154.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
    155.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
    ……”
    限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
    156.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例
    的部分说明即可。

    技术特征:
    1.一种中间件文件生成方法,其特征在于,包括:获取中间件的源代码,所述源代码包括用于对所述中间件的接口进行调用的接口函数;将预先定义的、与所述接口匹配的命名空间信息添加到所述接口函数中;对添加所述命名空间信息后的源代码进行编译,以生成中间件文件。2.根据权利要求1所述的方法,其特征在于,对添加所述命名空间信息后的源代码进行编译,以生成中间件文件,包括:将添加所述命名空间信息后的源代码编译成动态链接库文件;将所述动态链接库文件作为中间件文件。3.根据权利要求1所述的方法,其特征在于,与所述接口匹配的命名空间信息是通过对所述接口的特征信息进行分析而确定的。4.根据权利要求1所述的方法,其特征在于,在对添加所述命名空间信息后的源代码进行编译,以生成中间件文件之后,所述方法还包括:将所述中间件文件上传至服务器。5.一种中间件的调用方法,其特征在于,包括:确定待调用的中间件的接口对应的命名空间信息;基于所述命名空间信息,获取并加载所述中间件对应的中间件文件,其中,所述中间件文件中包括用于对所述中间件的接口进行调用的接口函数,所述接口函数中添加有与所述接口匹配的命名空间信息;从所述中间件文件中读取并运行所述接口的接口函数,以调用所述中间件。6.根据权利要求5所述的方法,其特征在于,所述中间件文件为动态链接库文件;确定待调用的中间件的接口对应的命名空间信息,包括:基于电子设备中待运行应用的相关信息,确定待调用的中间件的接口对应的命名空间信息;所述加载所述中间件对应的中间件文件,包括:在所述待运行应用的运行过程中,将所述中间件文件存储于所述电子设备的内存中。7.一种中间件文件生成装置,其特征在于,包括:第一获取模块,用于获取中间件的源代码,所述源代码包括所述中间件的接口对应的接口函数,所述接口函数用于对所对应的接口进行调用;添加模块,用于将预先定义的、与所述接口匹配的命名空间信息添加到所述接口函数中;生成模块,用于对添加所述命名空间信息后的源代码进行编译,以生成中间件文件。8.一种中间件的调用装置,其特征在于,包括:确定模块,用于确定待调用的中间件的接口对应的命名空间信息;第二获取模块,用于基于所述命名空间信息,获取并加载所述中间件对应的中间件文件,其中,所述中间件文件中包括用于对所述中间件的接口进行调用的接口函数,所述接口函数中添加有与所述接口匹配的命名空间信息;调用模块,用于从所述中间件文件中读取并运行所述接口的接口函数,以调用所述中间件。
    9.一种电子设备,其特征在于,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如权利要求1至4中任一项所述的方法。10.一种电子设备,其特征在于,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如权利要求5或6所述的方法。

    技术总结
    本申请公开了一种中间件文件生成和中间件的调用方法、装置及电子设备,以至少解决现有技术中存在的无法对具有相同接口名称的中间件进行区分的问题。所述中间件文件生成方法包括:获取中间件的源代码,所述源代码包括用于对所述中间件的接口进行调用的接口函数;将预先定义的、与所述接口匹配的命名空间信息添加到所述接口函数中;对添加所述命名空间信息后的源代码进行编译,以生成中间件文件。以生成中间件文件。以生成中间件文件。


    技术研发人员:杨正铃 李盛阁 谭明武 陈炫锦 郑敏 胡文辉
    受保护的技术使用者:中国移动通信集团有限公司
    技术研发日:2020.11.23
    技术公布日:2022/5/25
    转载请注明原文地址:https://tc.8miu.com/read-20652.html

    最新回复(0)