本发明涉及软件领域,具体涉及一种应用中功能模块调用方法及装置。
背景技术:
随着用户需求的增加,应用供应商提供了越来越多的应用。应用一般由应用供应商开发应用主程序,通过业务平台发布应用安装包。终端设备从业务平台可以下载应用安装包进行安装即可启动对应的应用。应用安装包包括了应用主程序和适应于业务平台的业务平台模块,将应用主程序和业务平台模块打包做成应用安装包。业务平台模块一般以插件方式实现。通过业务平台模块,实现应用服务器、业务平台以及安装该应用的终端设备之间进行数据交互。
由于应用主程序和业务平台模块采用的架构、技术等不同,一般两者各自实现的功能也不相同。在应用运行过程中,由应用主程序启动应用,通过调用对应的功能代码实现相应的运行。当其中有些功能代码需要更新时,整个应用主程序进行整体更新会使得更新过程较慢。若不进行更新,又使得应用主程序无法调用到更新的功能代码,可能会发生运行故障等问题。
因此,需要一种可以解决以上问题的应用中功能模块调用的方法及装置。
技术实现要素:
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的应用中功能模块调用方法及装置。
根据本发明的一个方面,提供了一种应用中功能模块调用方法,其包括:获取并安装应用安装包;应用安装包中包括应用主程序、至少一个业务平台模块和功能模块,功能模块插件化集成在应用主程序和至少一个业务平台模块中;接收应用启动请求,通过应用主程序启动应用;在应用运行过程中,需调用功能模块时,选择预设规则调用应用主程序或至少一个业务平台模块中的功能模块。
根据本发明的另一方面,提供了一种应用中功能模块调用装置,其包括:安装单元,适于获取并安装应用安装包;应用安装包中包括应用主程序、至少一个业务平台模块和功能模块,功能模块插件化集成在应用主程序和至少一个业务平台模块中;启动单元,适于接收应用启动请求,通过应用主程序启动应用;调用单元,适于在应用运行过程中,需调用功能模块时,选择预设规则调用应用主程序或至少一个业务平台模块中的功能模块。
根据本发明的又一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述应用中功能模块调用方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述应用中功能模块调用方法对应的操作。
根据本发明提供的应用中功能模块调用方法及装置、电子设备,通过将功能模块插件化集成在应用主程序和至少一个业务平台模块中,可以使得在调用功能模块时,选择预设规则可以调用到应用主程序或至少一个业务平台模块中的功能模块。由于将功能模块同时集成在应用主程序和至少一个业务平台模块中,且业务平台模块本身可以直接热更新,使得在功能模块本身更新后,通过业务平台模块实时的热更新得到最新版本的功能模块,进而可以调用到最新版本的功能模块。同时,将功能模块插件化集成在应用主程序和至少一个业务平台模块中,减少了代码的开发量,节省了开发成本。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明实施例一的应用中功能模块调用方法的流程图;
图2示出了根据本发明实施例二的应用中功能模块调用方法的流程图;
图3示出了具体功能模块调用时的流程图;
图4示出了根据本发明实施例三的应用中功能模块调用装置的功能框图;
图5示出了根据本发明实施例四的应用中功能模块调用装置的功能框图;
图6示出了根据本发明实施例六的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
图1示出了根据本发明实施例一的应用中功能模块调用方法的流程图。如图1所示,应用中功能模块调用方法具体包括如下步骤:
步骤s101,获取并安装应用安装包。
每个应用都有其对应的应用安装包,应用安装包中包括了应用主程序、至少一个业务平台模块。其中,应用主程序为应用的主体,实现了应用的主要功能。业务平台模块主要适用于发布应用安装包的业务平台,其实现的功能包括如业务平台的浮窗功能、与业务平台数据交互功能等。业务平台模块可以根据实现具体的业务不同,将其插件化做成多个业务平台模块,每个业务平台模块实现不同的业务功能。应用安装包根据实际应用的需要可以包括一个或多个的业务平台模块。
由于应用主程序和业务平台模块的提供商、采用的架构、技术等可能不同,因此在将其做成应用安装包时,业务平台模块不能直接集成在应用主程序中,两者各自独立,两者之间在功能上、结构上都不关联。而对于有些功能模块,其可能被应用主程序调用,也可能被业务平台模块调用。现有技术在实现时,需要将功能模块分别在应用主程序和业务平台模块中进行实现,即在应用主程序和业务平台模块中分别编写适用于各自的功能模块代码,来实现相应的功能模块。这就需要分别编写不同的至少两份代码实现,开发量大,后期进行维护更新的成本高、更新周期慢。在本实施例中,对于功能模块采用插件化方式,将功能模块插件化集成在应用主程序和至少一个业务平台模块中。由于业务平台模块为多个,多个业务平台模块中的部分或全部业务平台模块都可以集成有功能模块。通过将功能模块插件化集成,如将功能模块插件化为library、功能库等方式,使得可以仅开发一份代码后将其插件化处理,分别集成在应用主程序和至少一个业务平台模块中,实现应用主程序和业务平台模块均可对其进行调用,从而大大减少了开发量及后期维护成本。
获取本实施例的应用安装包,安装该应用安装包。
步骤s102,接收应用启动请求,通过应用主程序启动应用。
接收对该应用的启动请求,如双击该应用图标等,通过安装后的应用主程序去启动该应用。
步骤s103,在应用运行过程中,需调用功能模块时,选择预设规则调用应用主程序或至少一个业务平台模块中的功能模块。
在应用运行过程中,若需要调用到功能模块时,由于功能模块插件化集成在应用主程序和至少一个业务平台模块中,因此,需要选择调用应用主程序还是业务平台模块中集成的功能模块。在选择时,可以根据预设规则进行选择。如在调用功能模块时,若涉及需要执行某一业务时,先确定调用功能模块的业务对应的业务平台模块。然后判断该业务平台模块中是否集成有功能模块,若集成有功能模块,则调用该业务平台模块中集成的功能模块。否则,调用应用主程序中集成的功能模块,实现该业务对功能模块的调用。
进一步,当功能模块进行版本更新时,由于业务平台模块本身已经进行了插件化处理,使得可以直接对业务平台模块进行热更新。即可以实时的对业务平台模块进行更新,将其集成的功能模块进行版本更新。在调用业务平台模块中集成的功能模块时,可以调用到最新版本的功能模块,提升功能模块版本更新的速度。
根据本发明提供的应用中功能模块调用方法,通过将功能模块插件化集成在应用主程序和至少一个业务平台模块中,可以使得在调用功能模块时,选择预设规则可以调用到应用主程序或至少一个业务平台模块中的功能模块。由于将功能模块同时集成在应用主程序和至少一个业务平台模块中,且业务平台模块本身可以直接热更新,使得在功能模块本身更新后,通过业务平台模块实时的热更新得到最新版本的功能模块,进而可以调用到最新版本的功能模块。同时,将功能模块插件化集成在应用主程序和至少一个业务平台模块中,减少了代码的开发量,节省了开发成本。
实施例二
图2示出了根据本发明实施例二的应用中功能模块调用方法的流程图。如图2所示,应用中功能模块调用方法具体包括如下步骤:
步骤s201,获取并安装应用安装包。
步骤s202,接收应用启动请求,通过应用主程序启动应用。
以上步骤可参考实施例一中的步骤s101-s102,在此不再赘述。
步骤s203,判断至少一个业务平台模块的版本是否需要更新。
步骤s204,若是,则将至少一个业务平台模块进行热更新。
在启动应用后,去判断业务平台模块的版本是否需要更新。具体的,将客户端已安装的业务平台模块的版本信息反馈给服务器,与服务器提供的业务平台模块的版本信息进行比较,若版本不一致,判断业务平台模块需要进行热更新,则执行步骤s204,将需要热更新的业务平台模块进行热更新。热更新业务平台模块时,先接收服务器提供的业务平台模块的更新信息,如需要热更新的业务平台模块、热更新的业务平台模块的版本信息、更新版本的业务平台模块的更新url地址等。根据业务平台模块的更新信息对相应的业务平台模块进行热更新。
进一步,在判断业务平台模块的版本是否需要更新时,还判断了业务平台模块中集成的功能模块是否需要更新。将客户端已安装的业务平台模块中集成的功能模块的版本信息反馈给服务器,与服务器提供的功能模块的版本信息进行比较,若版本不一致,则将业务平台模块中集成的功能模块进行热更新。由于功能模块已进行了插件化处理,功能模块热更新时可以只更新功能模块即可。
步骤s205,当应用主程序的版本更新时,下载版本更新后的应用主程序并进行安装。
在启动应用后,对应用主程序的版本进行了比较。若客户端已安装的应用主程序的版本与服务器提供的应用主程序的版本不一致,下载版本更新后的应用主程序,并进行安装。应用主程序的更新过程由于需要多个步骤的操作,如应用主程序代码的更新、接入、上线等,造成应用主程序更新的过程较慢,一般需要较长时间才做一次版本的更新。而功能模块的版本更新速度快,可能在应用主程序一次版本更新的过程中,已经更新了多个版本。因此,集成在版本更新后的应用主程序中的功能模块的版本为最新版本。如客户端已安装的应用主程序的版本为1.0,其集成的功能模块的版本为1.0。一段时间内,服务器提供的应用主程序的版本没有更新,但服务器提供的集成的功能模块的版本进行了多次更新,服务器提供的功能模块的版本更新为1.5。由于服务器提供的应用主程序的版本一直没有更新,客户端已安装的应用主程序中集成的功能模块的版本依然为1.0。当服务器提供应用主程序的版本更新为1.1后,下载版本更新后的应用主程序进行安装。此时,客户端新安装的应用主程序的版本为1.1,其集成的功能模块的版本直接更新为1.5,而不需要一个版本一个版本的一一更新。即当应用主程序的版本更新时,直接将最新版本的功能模块集成在版本更新后的应用主程序中。
由于应用主程序本身无法实时热更新,因此本实施例采用在应用主程序进行更新时,直接将最新版本的功能模块集成在应用主程序中,实现对应用主程序和最新版本的功能模块的同时更新。这种情况可能导致在调用应用主程序中的功能模块时,应用主程序中集成的功能模块版本与服务器提供的功能模块的版本不一致。因此,在调用应用主程序中的功能模块时,对功能模块所实现的功能还可以进行兼容性检查。检查客户端已安装的应用主程序中集成的低版本的功能模块是否可以实现对应的操作。如,功能模块为消息推送服务模块。检查客户端已安装的应用主程序中集成的低版本的消息推送服务模块对所接收的推送消息的格式是否可以进行处理,若不能对其进行处理,即兼容性检查失败,可以将该条推送消息直接丢弃,不做处理。若可以对其进行处理,使用低版本的消息推送服务模块对所接收的推送消息进行处理。
步骤s206,在应用运行过程中,需调用功能模块时,选择预设规则调用应用主程序或至少一个业务平台模块中的功能模块。
在应用运行过程中,若需要调用到功能模块时,由于功能模块插件化集成在应用主程序和至少一个业务平台模块中,因此,需要选择调用应用主程序还是业务平台模块中集成的功能模块。在选择时,可以根据预设规则进行选择。如在调用功能模块时,若涉及需要执行某一业务时,先确定调用功能模块的业务对应的业务平台模块。然后判断该业务平台模块中是否集成有功能模块,若集成有功能模块,则调用该业务平台模块中集成的功能模块。否则,调用应用主程序中集成的功能模块,实现该业务对功能模块的调用。
需要注意的是,由于业务平台模块可以实时的进行热更新处理,即业务平台模块中集成的功能模块的版本一般会高于或等于应用主程序中集成的功能模块的版本。因此,当调用功能模块时,若涉及需要执行某一业务时,且业务对应的业务平台模块中集成有功能模块,优先的调用该业务平台模块中集成的功能模块。当业务平台模块中没有集成功能模块时,才调用应用主程序中集成的功能模块。
以下以功能模块为消息推送服务模块为例,具体说明功能模块被调用的过程:
步骤s301,启动消息推送服务模块对应的消息推送服务,向其它应用发送广播消息。
在消息推送服务模块被调用后,相应的启动消息推送服务模块对应的消息推送服务,并向其它应用发送广播消息。由于每个应用的消息推送服务模块被调用是随机性的,没有固定的时间或顺序,每个应用无法了解在本应用调用消息推送服务模块启动消息推送服务前,是否已经有其它应用调用消息推送服务模块启动了其对应的消息推送服务。因此,通过向其它应用发送广播消息来确认是否有其它应用已经调用消息推送服务模块启动了其对应的消息推送服务。
此处,被调用的消息推送服务模块可以为应用主程序中集成的消息推送服务模块,也可以为业务平台模块中集成的消息推送服务模块,根据实施情况,选择调用应用主程序或业务平台模块中的消息推送服务模块。
步骤s302,判断在预设时间内是否接收到其它应用的消息推送服务模块反馈的响应消息,若是,执行步骤s304;否则,执行步骤s303。
在向其它应用发送广播消息后,若其它应用中某一应用的消息推送服务已经启动,会接收到该应用的消息推送服务模块反馈的响应消息,若其它各应用的消息推送服务均未启动,则不会接收到任何其它应用的消息推送服务模块反馈的响应消息。
由于其它应用的消息推送服务模块在接收到广播消息后并反馈响应消息,会有一定时间的间隔。在判断时,判断预设时间内如15秒内接收到其它应用的消息推送服务模块反馈的响应消息。若接收到,执行步骤s304,否则,执行步骤s303。
步骤s303,若在预设时间内未接收到响应消息,则维持所调用的消息推送服务模块运行。
由于在预设时间内没有接收到其它应用的消息推送服务模块反馈的响应消息,可以认为当前时间只有本应用的消息推送服务启动,维持所调用的消息推送服务模块运行。
步骤s304,若在预设时间内接收到响应消息,根据响应消息确定应保留的消息推送服务模块,维持所保留的消息推送服务模块运行。
当接收到其它应用的消息推送服务模块反馈的响应消息后,即当前时间已经有其它应用调用消息推送服务模块启动了消息推送服务。根据响应消息中携带的如调用消息推送服务模块时间、启动消息推送服务时间等信息来确定应保留的消息推送服务模块,维持所保留的消息推送服务模块运行。具体的可以将反馈的响应信息中携带各个时间信息与本应用的调用消息推送服务模块时间、启动消息推送服务时间等信息进行比较,根据时间前后顺序,保留时间在前的消息推送服务模块,维持所保留的消息推送服务模块运行。
通过以上步骤,仅维持一个消息推送服务模块的运行,实现仅利用一个消息推送服务模块的运行完成消息推送服务的多路复用,以节省终端设备维持多个应用的消息推送服务模块运行所消耗的电量。
根据本发明提供的应用中功能模块调用方法,通过将功能模块插件化集成在应用主程序和至少一个业务平台模块中,可以使得在调用功能模块时,选择预设规则可以调用到应用主程序或至少一个业务平台模块中的功能模块。由于将功能模块同时集成在应用主程序和至少一个业务平台模块中,且业务平台模块本身可以直接热更新,使得在功能模块本身更新后,通过业务平台模块实时的热更新得到最新版本的功能模块,进而可以调用到最新版本的功能模块。对于应用主程序可以在其进行版本更新时,一次性的将最新版本的功能模块更新在版本更新后的应用主程序中,减少了功能模块需多次更新的繁琐步骤。进一步,当调用应用主程序中低版本的功能模块时,进行兼容性检查,以避免调用低版本功能模块时造成版本不兼容等问题。同时,将功能模块插件化集成在应用主程序和至少一个业务平台模块中,减少了代码的开发量,节省了开发成本。
实施例三
图4示出了根据本发明实施例三的应用中功能模块调用装置的功能框图。如图4所示,应用中功能模块调用装置包括如下模块:
安装单元410,适于获取并安装应用安装包。
每个应用都有其对应的应用安装包,应用安装包中包括了应用主程序、至少一个业务平台模块。其中,应用主程序为应用的主体,实现了应用的主要功能。业务平台模块主要适用于发布应用安装包的业务平台,其实现的功能包括如业务平台的浮窗功能、与业务平台数据交互功能等。业务平台模块可以根据实现具体的业务不同,将其插件化做成多个业务平台模块,每个业务平台模块实现不同的业务功能。应用安装包根据实际应用的需要可以包括一个或多个的业务平台模块。
由于应用主程序和业务平台模块的提供商、采用的架构、技术等可能不同,因此在将其做成应用安装包时,业务平台模块不能直接集成在应用主程序中,两者各自独立,两者之间在功能上、结构上都不关联。而对于有些功能模块,其可能被应用主程序调用,也可能被业务平台模块调用。现有技术在实现时,需要将功能模块分别在应用主程序和业务平台模块中进行实现,即在应用主程序和业务平台模块中分别编写适用于各自的功能模块代码,来实现相应的功能模块。这就需要分别编写不同的至少两份代码实现,开发量大,后期进行维护更新的成本高、更新周期慢。在本实施例中,对于功能模块采用插件化方式,将功能模块插件化集成在应用主程序和至少一个业务平台模块中。由于业务平台模块为多个,多个业务平台模块中的部分或全部业务平台模块都可以集成有功能模块。通过将功能模块插件化集成,如将功能模块插件化为library、功能库等方式,使得可以仅开发一份代码后将其插件化处理,分别集成在应用主程序和至少一个业务平台模块中,实现应用主程序和业务平台模块均可对其进行调用,从而大大减少了开发量及后期维护成本。
安装单元410获取本实施例的应用安装包,安装该应用安装包。
启动单元420,适于接收应用启动请求,通过应用主程序启动应用。
启动单元420接收对该应用的启动请求,如双击该应用图标等,通过安装后的应用主程序去启动该应用。
调用单元430,适于在应用运行过程中,需调用功能模块时,选择预设规则调用应用主程序或至少一个业务平台模块中的功能模块。
在应用运行过程中,若需要调用到功能模块时,由于功能模块插件化集成在应用主程序和至少一个业务平台模块中,因此,调用单元430需要选择调用应用主程序还是业务平台模块中集成的功能模块。调用单元430在选择时,可以根据预设规则进行选择。如调用单元430在调用功能模块时,若涉及需要执行某一业务时,先确定调用功能模块的业务对应的业务平台模块。然后调用单元430判断该业务平台模块中是否集成有功能模块,若集成有功能模块,则调用单元430调用该业务平台模块中集成的功能模块。否则,调用单元430调用应用主程序中集成的功能模块,实现该业务对功能模块的调用。
进一步,当功能模块的版本更新时,由于业务平台模块本身已经进行了插件化处理,使得可以直接对业务平台模块进行热更新。即可以实时的对业务平台模块进行更新,将其集成的功能模块进行版本更新。在调用单元430调用业务平台模块中集成的功能模块时,可以调用到最新版本的功能模块,提升功能模块版本更新的速度。
根据本发明提供的应用中功能模块调用装置,通过将功能模块插件化集成在应用主程序和至少一个业务平台模块中,可以使得在调用功能模块时,选择预设规则可以调用到应用主程序或至少一个业务平台模块中的功能模块。由于将功能模块同时集成在应用主程序和至少一个业务平台模块中,且业务平台模块本身可以直接热更新,使得在功能模块本身更新后,通过业务平台模块实时的热更新得到最新版本的功能模块,进而可以调用到最新版本的功能模块。同时,将功能模块插件化集成在应用主程序和至少一个业务平台模块中,减少了代码的开发量,节省了开发成本。
实施例四
图5示出了根据本发明实施例四的应用中功能模块调用装置的流程图。如图5所示,与图4相比,应用中功能模块调用装置还包括如下模块:
热更新单元440,适于判断至少一个业务平台模块的版本是否需要更新;若是,则将至少一个业务平台模块进行热更新。
在启动单元420启动应用后,热更新单元440判断业务平台模块的版本是否需要更新。具体的,热更新单元440将客户端已安装的业务平台模块的版本信息反馈给服务器,与服务器提供的业务平台模块的版本信息进行比较,若版本不一致,热更新单元440判断业务平台模块需要进行热更新,热更新单元440将需要热更新的业务平台模块进行热更新。热更新单元440在热更新业务平台模块时,先接收服务器提供的业务平台模块的更新信息,如需要热更新的业务平台模块、热更新的业务平台模块的版本信息、更新版本的业务平台模块的更新url地址等。根据业务平台模块的更新信息热更新单元440对相应的业务平台模块进行热更新。
进一步,在热更新单元440判断业务平台模块的版本是否需要更新时,还判断了业务平台模块中集成的功能模块是否需要更新。热更新单元440将客户端已安装的业务平台模块中集成的功能模块的版本信息反馈给服务器,与服务器提供的功能模块的版本信息进行比较,若版本不一致,则热更新单元440将业务平台模块中集成的功能模块进行热更新。由于功能模块已进行了插件化处理,热更新单元440在将功能模块热更新时可以只更新功能模块即可。
主更新单元450,适于当应用主程序的版本更新时,下载版本更新后的应用主程序并进行安装,其中集成在版本更新后的应用主程序中的功能模块的版本为最新版本。
在启动单元420启动应用后,主更新单元450对应用主程序的版本进行了比较。若客户端已安装的应用主程序的版本与服务器提供的应用主程序的版本不一致,主更新单元450下载版本更新后的应用主程序,并进行安装。应用主程序的更新过程由于需要多个步骤的操作,如应用主程序代码的更新、接入、上线等,造成应用主程序更新的过程较慢,一般需要较长时间才做一次版本的更新。而功能模块的版本更新速度快,可能在应用主程序一次版本更新的过程中,已经更新了多个版本。因此,集成在版本更新后的应用主程序中的功能模块的版本为最新版本。如客户端已安装的应用主程序的版本为1.0,其集成的功能模块的版本为1.0。一段时间内,服务器提供的应用主程序的版本没有更新,但服务器提供的集成的功能模块的版本进行了多次更新,服务器提供的功能模块的版本更新为1.5。由于服务器提供的应用主程序的版本一直没有更新,客户端已安装的应用主程序中集成的功能模块的版本依然为1.0。当主更新单元450将服务器提供应用主程序的版本更新为1.1后,下载版本更新后的应用主程序进行安装。此时,客户端新安装的应用主程序的版本为1.1,其集成的功能模块的版本直接更新为1.5,而不需要一个版本一个版本的一一更新。即当主更新单元450将应用主程序的版本更新时,直接将最新版本的功能模块集成在版本更新后的应用主程序中。
由于应用主程序本身无法实时热更新,因此本实施例采用在主更新单元450对应用主程序进行更新时,直接将最新版本的功能模块集成在应用主程序中,实现对应用主程序和最新版本的功能模块的同时更新。这种情况可能导致在调用应用主程序中的功能模块时,应用主程序中集成的功能模块版本与服务器提供的功能模块的版本不一致。因此,在调用单元430调用应用主程序中的功能模块时,对功能模块所实现的功能还可以进行兼容性检查。调用单元430检查客户端已安装的应用主程序中集成的低版本的功能模块是否可以实现对应的操作。如,功能模块为消息推送服务模块。调用单元430检查客户端已安装的应用主程序中集成的低版本的消息推送服务模块对所接收的推送消息的格式是否可以进行处理,若不能对其进行处理,即兼容性检查失败,调用单元430可以将该条推送消息直接丢弃,不做处理。若调用单元430可以对其进行处理,调用单元430使用低版本的消息推送服务模块对所接收的推送消息进行处理等。
以下以功能模块为消息推送服务模块为例,如本实施例还包括了:
广播单元460,适于启动消息推送服务模块对应的消息推送服务,向其它应用发送广播消息。
运行单元470,适于判断在预设时间内是否接收到其它应用的消息推送服务模块反馈的响应消息;若在预设时间内未接收到响应消息,则维持所调用的消息推送服务模块运行;若在预设时间内接收到响应消息,根据响应消息确定应保留的消息推送服务模块,维持所保留的消息推送服务模块运行。
在调用单元430调用消息推送服务模块后,相应的广播单元460启动消息推送服务模块对应的消息推送服务,并向其它应用发送广播消息。由于每个应用的消息推送服务模块被调用是随机性的,没有固定的时间或顺序,每个应用无法了解在本应用调用消息推送服务模块启动消息推送服务前,是否已经有其它应用调用消息推送服务模块启动了其对应的消息推送服务。因此,广播单元460通过向其它应用发送广播消息来确认是否有其它应用已经调用消息推送服务模块启动了其对应的消息推送服务。
在广播单元460向其它应用发送广播消息后,若其它应用中某一应用的消息推送服务已经启动,运行单元470会接收到该应用的消息推送服务模块反馈的响应消息,若其它各应用的消息推送服务均未启动,则运行单元470不会接收到任何其它应用的消息推送服务模块反馈的响应消息。
由于其它应用的消息推送服务模块在接收到广播消息后并反馈响应消息,会有一定时间的间隔。运行单元470在判断时,判断预设时间内如15秒内接收到其它应用的消息推送服务模块反馈的响应消息。若在预设时间内未接收到响应消息,可以认为当前时间只有本应用的消息推送服务启动,运行单元470维持所调用的消息推送服务模块运行。若在预设时间内接收到响应消息,即当前时间已经有其它应用调用消息推送服务模块启动了消息推送服务。运行单元470根据响应消息中携带的如调用消息推送服务模块时间、启动消息推送服务时间等信息来确定应保留的消息推送服务模块,维持所保留的消息推送服务模块运行。具体的运行单元470可以将反馈的响应信息中携带各个时间信息与本应用的调用消息推送服务模块时间、启动消息推送服务时间等信息进行比较,根据时间前后顺序,运行单元470保留时间在前的消息推送服务模块,维持所保留的消息推送服务模块运行。
运行单元470仅维持一个消息推送服务模块的运行,实现仅利用一个消息推送服务模块的运行完成消息推送服务的多路复用,以节省终端设备维持多个应用的消息推送服务模块运行所消耗的电量。
根据本发明提供的应用中功能模块调用装置,通过将功能模块插件化集成在应用主程序和至少一个业务平台模块中,可以使得在调用功能模块时,选择预设规则可以调用到应用主程序或至少一个业务平台模块中的功能模块。由于将功能模块同时集成在应用主程序和至少一个业务平台模块中,且业务平台模块本身可以直接热更新,使得在功能模块本身更新后,通过业务平台模块实时的热更新得到最新版本的功能模块,进而可以调用到最新版本的功能模块。对于应用主程序可以在其进行版本更新时,一次性的将最新版本的功能模块更新在版本更新后的应用主程序中,减少了功能模块需多次更新的繁琐步骤。进一步,当调用应用主程序中低版本的功能模块时,进行兼容性检查,以避免调用低版本功能模块时造成版本不兼容等问题。同时,将功能模块插件化集成在应用主程序和至少一个业务平台模块中,减少了代码的开发量,节省了开发成本。
实施例五
本申请实施例五提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的应用中功能模块调用方法。
实施例六
图6示出了根据本发明实施例六的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
如图6所示,该电子设备可以包括:处理器(processor)602、通信接口(communicationsinterface)604、存储器(memory)606、以及通信总线608。
其中:
处理器602、通信接口604、以及存储器606通过通信总线608完成相互间的通信。
通信接口604,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器602,用于执行程序610,具体可以执行上述应用中功能模块调用方法实施例中的相关步骤。
具体地,程序610可以包括程序代码,该程序代码包括计算机操作指令。
处理器602可能是中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
存储器606,用于存放程序610。存储器606可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
程序610具体可以用于使得处理器602执行以下操作:
在一种可选的实施方式中,程序610用于使得处理器602获取并安装应用安装包;应用安装包中包括应用主程序、至少一个业务平台模块和功能模块,功能模块插件化集成在应用主程序和至少一个业务平台模块中;接收应用启动请求,通过应用主程序启动应用;在应用运行过程中,需调用功能模块时,选择预设规则调用应用主程序或至少一个业务平台模块中的功能模块。
在一种可选的实施方式中,程序610用于使得处理器602判断至少一个业务平台模块的版本是否需要更新;若是,则将至少一个业务平台模块进行热更新。
在一种可选的实施方式中,程序610用于使得处理器602判断至少一个业务平台模块集成的功能模块是否需要更新;若是,则将功能模块进行热更新。
在一种可选的实施方式中,程序610用于使得处理器602在应用运行过程中,需调用功能模块时,确定调用功能模块的业务对应的业务平台模块;判断调用功能模块的业务对应的业务平台模块中是否集成有功能模块;若是,调用该业务平台模块中集成的功能模块;否则,调用应用主程序中集成的功能模块。
在一种可选的实施方式中,程序610用于使得处理器602当应用主程序的版本更新时,下载版本更新后的应用主程序并进行安装,其中集成在版本更新后的应用主程序中的功能模块的版本为最新版本。
在一种可选的实施方式中,功能模块具体为消息推送服务模块。
在一种可选的实施方式中,程序610用于使得处理器602启动消息推送服务模块对应的消息推送服务,向其它应用发送广播消息;判断在预设时间内是否接收到其它应用的消息推送服务模块反馈的响应消息;若在预设时间内未接收到响应消息,则维持所调用的消息推送服务模块运行;若在预设时间内接收到响应消息,根据响应消息确定应保留的消息推送服务模块,维持所保留的消息推送服务模块运行。
程序610中各步骤的具体实现可以参见上述应用中功能模块调用实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
通过本实施例提供的方案,通过将功能模块插件化集成在应用主程序和至少一个业务平台模块中,可以使得在调用功能模块时,选择预设规则可以调用到应用主程序或至少一个业务平台模块中的功能模块。由于将功能模块同时集成在应用主程序和至少一个业务平台模块中,且业务平台模块本身可以直接热更新,使得在功能模块本身更新后,通过业务平台模块实时的热更新得到最新版本的功能模块,进而可以调用到最新版本的功能模块。同时,将功能模块插件化集成在应用主程序和至少一个业务平台模块中,减少了代码的开发量,节省了开发成本。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的应用中功能模块调用设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了:a1.一种应用中功能模块调用方法,其包括:
获取并安装应用安装包;所述应用安装包中包括应用主程序、至少一个业务平台模块和功能模块,其中,所述功能模块插件化集成在所述应用主程序和至少一个业务平台模块中;
接收所述应用启动请求,通过所述应用主程序启动所述应用;
在所述应用运行过程中,需调用所述功能模块时,选择预设规则调用所述应用主程序或所述至少一个业务平台模块中的所述功能模块。
a2.根据a1所述的方法,其中,在接收所述应用启动请求后,所述方法还包括:
判断所述至少一个业务平台模块的版本是否需要更新;
若是,则将所述至少一个业务平台模块进行热更新。
a3.根据a2所述的方法,其中,所述将所述至少一个业务平台模块进行热更新进一步包括:
判断所述至少一个业务平台模块集成的功能模块是否需要更新;
若是,则将所述功能模块进行热更新。
a4.根据a1所述的方法,其中,所述业务平台模块为多个,多个业务平台模块中的部分或全部业务平台模块集成有所述功能模块;
所述在应用运行过程中,需调用所述功能模块时,选择预设规则调用所述应用主程序或所述至少一个业务平台模块中的所述功能模块进一步包括:
在应用运行过程中,需调用所述功能模块时,确定调用所述功能模块的业务对应的业务平台模块;
判断调用所述功能模块的业务对应的业务平台模块中是否集成有功能模块;若是,调用该业务平台模块中集成的所述功能模块;否则,调用所述应用主程序中集成的所述功能模块。
a5.根据a1所述的方法,其中,所述方法还包括:
当所述应用主程序的版本更新时,下载版本更新后的应用主程序并进行安装,其中集成在版本更新后的应用主程序中的功能模块的版本为最新版本。
a6.根据a1-a5中任一项所述的方法,其中,所述功能模块具体为消息推送服务模块。
a7.根据a6所述的方法,其中,在所述选择预设规则调用所述应用主程序或所述至少一个业务平台模块中的所述功能模块之后,所述方法还包括:
启动所述消息推送服务模块对应的消息推送服务,向其它应用发送广播消息;
判断在预设时间内是否接收到其它应用的消息推送服务模块反馈的响应消息;
若在预设时间内未接收到所述响应消息,则维持所调用的消息推送服务模块运行;
若在预设时间内接收到所述响应消息,根据所述响应消息确定应保留的消息推送服务模块,维持所保留的消息推送服务模块运行。
本发明还公开了:b8.一种应用中功能模块调用装置,其包括:
安装单元,适于获取并安装应用安装包;所述应用安装包中包括应用主程序、至少一个业务平台模块和功能模块,其中,所述功能模块插件化集成在所述应用主程序和至少一个业务平台模块中;
启动单元,适于接收所述应用启动请求,通过所述应用主程序启动所述应用;
调用单元,适于在所述应用运行过程中,需调用所述功能模块时,选择预设规则调用所述应用主程序或所述至少一个业务平台模块中的所述功能模块。
b9.根据b8所述的装置,其中,所述装置还包括:
热更新单元,适于判断所述至少一个业务平台模块的版本是否需要更新;若是,则将所述至少一个业务平台模块进行热更新。
b10.根据b9所述的装置,其中,所述热更新单元还适于:判断所述至少一个业务平台模块集成的功能模块是否需要更新;若是,则将所述功能模块进行热更新。
b11.根据b8所述的装置,其中,所述业务平台模块为多个,多个业务平台模块中的部分或全部业务平台模块集成有所述功能模块;
所述调用单元具体适于:判断调用所述功能模块的业务对应的业务平台模块中是否集成有功能模块;若是,调用该业务平台模块中集成的所述功能模块;否则,调用所述应用主程序中集成的所述功能模块。
b12.根据b8所述的装置,其中,所述装置还包括:
主更新单元,适于当所述应用主程序的版本更新时,下载版本更新后的应用主程序并进行安装,其中集成在版本更新后的应用主程序中的功能模块的版本为最新版本。
b13.根据b8-b12任一项所述的装置,其中,所述功能模块具体为消息推送服务模块。
b14.根据b13所述的装置,其中,所述装置还包括:
广播单元,适于启动所述消息推送服务模块对应的消息推送服务,向其它应用发送广播消息;
运行单元,适于判断在预设时间内是否接收到其它应用的消息推送服务模块反馈的响应消息;若在预设时间内未接收到所述响应消息,则维持所调用的消息推送服务模块运行;若在预设时间内接收到所述响应消息,根据所述响应消息确定应保留的消息推送服务模块,维持所保留的消息推送服务模块运行。
本发明还公开了:c15.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如a1-a7中任一项所述的应用中功能模块调用方法对应的操作。
本发明还公开了:d16.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使所述处理器执行如a1-a7中任一项所述的应用中功能模块调用方法对应的操作。