应用程序启动方法、装置、计算机设备和存储介质与流程

文档序号:25543105发布日期:2021-06-18 20:39阅读:56来源:国知局
应用程序启动方法、装置、计算机设备和存储介质与流程

本申请涉及计算机技术领域,特别是涉及一种应用程序启动方法、装置、计算机设备和存储介质。



背景技术:

随着移动互联网的深入发展,移动端使用人数和占比激增,智能手机时代的价值核心开始转向软件与应用。

传统技术中,混合应用程序是介于web-app、native-app这两者之间的应用程序,混合应用程序帮助开发者构建具备原生基础能力的应用程序,支持移动、web和嵌入式平台。

然而,混合应用程序目前从应用程序容器到原生功能和sdk的支持,以及较多的日常通用组件都需要开发后打包在混合应用程序的安装包中,导致混合应用程序安装包体积不断变大,从而混合应用程序启动速度不断变慢。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够提高应用程序启动速度的应用程序启动方法、装置、计算机设备和存储介质。

一种应用程序启动方法,所述应用程序启动方法包括:

接收应用程序启动指令,并根据所述启动指令加载所述应用程序对应的微应用的目标公共资源;

读取应用程序安装包中待启动的微应用,并读取所述微应用中待加载页面的页面标识;

根据所述页面标识加载与所述待加载页面对应的本地资源,所述本地资源包括与所述待加载页面对应的目标公共资源和在应用程序安装包的基础资源;

根据所述页面标识加载与所述待加载页面对应的远程资源,所述远程资源为所述待加载页面的动态数据,且所述本地资源的加载与所述远程资源的加载为并行加载;

根据所述本地资源和所述远程资源启动所述微应用。

在其中一个实施例中,所述目标公共资源是根据所述应用程序所包括的多个微应用对应的公共资源进行去重后得到的。

在其中一个实施例中,所述接收应用程序启动指令之后,还包括:

根据所述启动指令加载所述应用程序对应的原生功能对应的公共资源;

所述应用程序启动方法还包括:

按需加载所述原生功能对应的应用资源。

在其中一个实施例中,所述按需加载所述原生功能对应的应用资源,包括:

读取所述应用程序安装包中待启动的原生功能标识;

加载与所述原生功能标识对应的第一应用资源,所述原生功能对应的公共资源的加载与所述第一应用资源的加载为并行加载;

所述根据所述本地资源和所述远程资源启动所述微应用,包括:

根据所述本地资源和所述远程资源启动对应的待加载页面,根据所述原生功能对应的公共资源和所述第一应用资源启动原生功能。

在其中一个实施例中,所述按需加载所述原生功能对应的应用资源,包括:

接收原生功能调用指令,根据所述原生功能调用指令加载与所述原生功能对应的第二应用资源;

根据所述原生功能对应的公共资源和所述第二应用资源调用对应的原生功能。

在其中一个实施例中,所述原生功能对应的公共资源是根据各个所述原生功能对应的公共资源进行去重后得到的。

在其中一个实施例中,所述应用程序启动方法还包括:

实时采集终端对应的第一监测数据以及所述应用程序对应的第二监测数据;

将所述第一监测数据和所述第二监测数据上传至服务器,以使得所述服务器根据所述第一监测数据和所述第二监测数据对所述应用程序的运行状态进行监控。

一种应用程序生成方法,所述应用程序生成方法包括:

获取应用程序对应的至少一个微应用;

将所述应用程序对应的每一微应用进行拆分,得到所述微应用对应的公共资源以及远程资源;

获取应用程序安装包;

将所述公共资源和所述应用程序安装包进行打包得到应用程序,将所述远程资源存放至服务器。

在其中一个实施例中,所述将所述应用程序对应的每一微应用进行拆分,得到所述微应用对应的公共资源以及远程资源之后,还包括:

对所述微应用对应的公共资源进行去重处理得到目标公共资源;

所述将所述公共资源和所述应用程序安装包进行打包得到应用程序,包括:

将所述目标公共资源和所述应用程序安装包进行打包得到应用程序。

在其中一个实施例中,所述应用程序生成方法还包括:

获取应用程序对应的至少一个原生功能;

将所述原生功能进行拆分,得到原生功能对应的公共资源和应用资源;

生成所述原生功能对应的公共资源的调用方式和所述应用资源的调用方式;

将所述原生功能对应的公共资源的调用方式配置为随所述应用程序启动;

将所述应用资源的调用方式配置为按需加载。

在其中一个实施例中,所述将所述原生功能进行拆分,得到原生功能对应的公共资源和应用资源之后,还包括:

将所述原生功能对应的公共资源进行去重处理;

所述生成所述原生功能对应的公共资源的调用方式,包括:

生成与去重后的所述原生功能对应的公共资源的调用方式。

一种应用程序启动装置,所述应用程序启动装置包括:

公共资源加载模块,用于接收应用程序启动指令,并根据所述启动指令加载所述应用程序对应的微应用的目标公共资源;

页面标识读取模块,用于读取应用程序安装包中待启动的微应用,并读取所述微应用中待加载页面的页面标识;

本地资源加载模块,用于根据所述页面标识加载与所述待加载页面对应的本地资源,所述本地资源包括与所述待加载页面对应的目标公共资源和在应用程序安装包的基础资源;

远程资源加载模块,用于根据所述页面标识加载与所述待加载页面对应的远程资源,所述远程资源为所述待加载页面的动态数据,且所述本地资源的加载与所述远程资源的加载为并行加载;

启动模块,用于根据所述本地资源和所述远程资源启动所述微应用。

一种应用程序生成装置,所述应用程序生成装置包括:

微应用获取模块,用于获取应用程序对应的至少一个微应用;

第一拆分模块,用于将所述应用程序对应的每一微应用进行拆分,得到所述微应用对应的公共资源以及远程资源;

安装包获取模块,用于获取应用程序安装包;

打包模块,用于将所述公共资源和所述应用程序安装包进行打包得到应用程序,将所述远程资源存放至服务器。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述的方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的方法的步骤。

上述应用程序启动方法、装置、计算机设备和存储介质,通过让微应用拆分阶段进行启动,即微应用的目标公共资源在应用程序启动时一起启动,然后微应用启动时,则仅需要一方面根据页面标识加载与待加载页面对应的本地资源,另一方面根据页面标识加载与待加载页面对应的远程资源,这样减少了微应用启动时所需要加载的远程资源的量,其次本地资源的加载与远程资源的加载为并行加载,共同提高了应用程序的启动的效率。

附图说明

图1为一个实施例中应用程序启动方法的应用环境图;

图2为一个实施例中应用程序启动方法的流程示意图;

图3为一个实施例中应用程序生成方法的流程示意图;

图4为一个实施例中的应用程序的框架图;

图5为另一个实施例中应用程序启动方法的流程图;

图6为一个实施例中应用程序启动装置的结构框图;

图7为一个实施例中应用程序生成装置的结构框图;

图8为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的应用程序启动方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。终端102中安装有应用程序,用户可以点击终端102中对应的应用程序图标,从而终端102接收到应用程序启动指令,并根据启动指令加载应用程序对应的微应用的目标公共资源,然后终端102读取应用程序安装包中待启动的微应用,并读取微应用中待加载页面的页面标识;根据页面标识加载与待加载页面对应的本地资源,本地资源包括与待加载页面对应的目标公共资源和在应用程序安装包的基础资源,并且终端102可以根据页面标识从服务器104获取并加载与待加载页面对应的远程资源,远程资源为待加载页面的动态数据,且本地资源的加载与远程资源的加载为并行加载,最后终端102根据本地资源和远程资源启动应用程序,上述应用程序启动方法通过让微应用拆分阶段进行启动,即微应用的目标公共资源在应用程序启动时一起启动,然后微应用启动时,则仅需要一方面根据页面标识加载与待加载页面对应的本地资源,另一方面根据页面标识加载与待加载页面对应的远程资源,这样减少了微应用启动时所需要加载的远程资源的量,其次本地资源的加载与远程资源的加载为并行加载,共同提高了应用程序的启动的效率。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种应用程序启动方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:

s202:接收应用程序启动指令,并根据启动指令加载应用程序对应的微应用的目标公共资源。

具体地,应用程序启动指令是终端在接收到针对应用程序的图标的触发后所生成,例如用户点击对应的应用程序的图标后,则终端根据该点击生成对应的应用程序启动指令,从而终端中的操作系统将该应用程序启动指令发送至应用程序,以使得终端开始加载应用程序对应的微应用的目标公共资源。

该目标公共资源可以是该应用程序中包括的各个微应用对应的公共资源,例如在生成应用程序的时候,将应用程序中的多个微应用进行拆分得到本地资源和对应的远程资源,其中本地资源中包括公共资源,该公共资源可以包括但不限于公共组件库、公共样式库以及配置数据等,在生成应用程序的时候将公共组件库、公共样式库以及配置数据等从微应用中分离出来,并打包至应用程序安装包中,从而在应用程序启动的时候,可以优先加载该目标公共资源,进而在微应用启动的时候可以仅运行对应的远程资源即可。

具体地,微应用除了使用javascript+html的对接方式外,还可以小程序唤起第三方应用程序等进行对接和交互。

s204:读取应用程序安装包中待启动的微应用,并读取微应用中待加载页面的页面标识。

具体地,微应用是指应用程序中实现某一功能的模块,其可以包括多个待加载页面。待启动的微应用可以是指应用程序启动时需要启动的微应用,还可以是指应用程序启动后在使用的过程中需要启动的微应用。在实际应用中,终端在加载完成目标公共资源后,则读取应用程序安装包中待启动的微应用,例如读取预设容器,例如webview中对应的微应用,并获取到当前待启动的微应用,进而可以读取到当前待加载的待加载页面,例如当微应用启动的时候,则获取到微应用中首页的页面标识,该页面标识可以唯一地确定待加载页面,一般地,该页面标识可以为待加载页面的url地址。其中可选地,当存在多个微应用需要同时打开时,则并行进行处理,即下文中的本地资源进行并行加载,以及远程资源也是并行加载。

s206:根据页面标识加载与待加载页面对应的本地资源,本地资源包括与待加载页面对应的目标公共资源和在应用程序安装包的基础资源。

具体地,本地资源包括与待加载页面对应的目标公共资源和在应用程序安装包的基础资源,公共资源则是指公共组件库、公共样式库以及配置数据等,基础资源则是指各个微应用中静态不变的,且均不相同的资源,其直接打包至应用程序的安装包中,这样终端可以根据本地资源在内存中进行待加载页面占位,即获取到对应的保持不变的静态数据。

s208:根据页面标识加载与待加载页面对应的远程资源,远程资源为待加载页面的动态数据,且本地资源的加载与远程资源的加载为并行加载。

具体地,远程资源为待加载页面的动态数据,其可以包括模板和数据,其需要终端根据页面标识去服务器获取,即终端通过异步线程将页面标识发送至服务器,从而服务器根据页面标识查询到对应的动态数据,并异步返回给终端。这样将微应用的待加载页面加载和数据请求由原先的串行运行改为并行运行,提升微应用启动速度,最终达到为应用秒开效果。

s210:根据本地资源和远程资源启动应用程序。

具体地,由于终端在进行待加载页面占位,即获取到本地资源后,还是会与页面占位相串行地向服务器发送异步请求以获取远程资源,但是由于本实施例中已经并行获取到远程资源了,因此终端在发送该异步请求后,则对发送的异步请求进行拦截,并且终端获取到并行加载获取的远程资源,并将上述的本地资源和远程资源进行模板拼接,然后渲染即可以得到应用程序的首屏,从而实现了应用程序中微应用的启动。

具体地,上述应用程序通过编码实现了可以让多个h5微应用拆分阶段运行,将公共组件库、公共样式库及配置数据从h5微应用中分离到应用程序安装包中随着应用程序一起启动,这样h5微应用启动时只需要加载极少的待加载页面h5模板及动态数据部分,减少首次启动需要加载的js、css等资源,提升首屏启动速度,同时将h5单页应用拆分为多个微应用,微应用中仅包含待加载页面模板及动态数据,体积足够小,基础组件已由应用程序启动时进行了启动,微应用打开速度会极大提升,最终微应用都达到秒开的效果,极大地提升应用程序中h5功能的使用体验。

上述应用程序启动方法,通过让微应用拆分阶段进行启动,即微应用的目标公共资源在应用程序启动时一起启动,然后微应用启动时,则仅需要一方面根据页面标识加载与待加载页面对应的本地资源,另一方面根据页面标识加载与待加载页面对应的远程资源,这样减少了微应用启动时所需要加载的远程资源的量,其次本地资源的加载与远程资源的加载为并行加载,共同提高了应用程序的启动的效率。

在其中一个实施例中,目标公共资源是根据应用程序所包括的多个微应用对应的公共资源进行去重后得到的。

具体地,由于一个应用程序中可以包括多个微应用,即在生成应用程序时按照功能将应用程序拆分为多个微应用,各个微应用中仅包括待加载页面模板和动态数据,其他的公共资源则均被拆分至应用程序安装包中,且为了进一步减少应用程序安装包的大小,以提高应用程序的启动速度,可以将各个为应用对应的公共资源进行去重处理,得到目标公共资源,这样仅将去重后的目标公共资源打包至应用程序安装包,以减少应用程序安装包的大小,进而提高应用程序的启动速度。

在其中一个实施例中,接收应用程序启动指令之后,还包括:根据启动指令加载应用程序对应的原生功能对应的公共资源;上述应用程序启动方法还包括:按需加载原生功能对应的应用资源。

具体地,原生功能对应的公共资源包括但不限于图片加载、网络请求、权限授权等底层依赖,原生功能对应的应用资源包括但不限于应用级的sdk消息推送、分享等功能。

具体地,由于应用程序可以包括微应用和原生功能,该原生功能可以是指终端的操作系统自带的功能,包括但不限于ocr、消息推送、语音识别等sdk模块。且原生功能可以是在应用程序启动时或微应用启动时则对应启动,或者是在应用程序启动后,在微应用待加载页面上实现调用。而为了提高原生功能的启动速度以及应用程序的启动速度,可以将该些原生功能进行拆分阶段运行,通过提取公共资源如图片加载、网络请求、权限授权等底层依赖在应用程序启动时进行加载,应用级的sdk消息推送、分享等功能进行按需加载。例如在h5待加载页面调用时实时加载除底层资源外的上层应用资源,这样可以节省应用程序启动时所需要加载的资源,即不需要在应用程序启动时加载应用资源,降低手机内存的消耗,最终达到应用程序整体秒开。

且优选地,原生功能对应的公共资源是根据各个原生功能对应的公共资源进行去重后得到的。且一个应用程序可以调用多个原生功能,而该些原生功能可能存在相同的公共资源,因此首先对该些原生功能的公共资源进行去重处理,这样一个公共资源的调用方式只有一个,减少了应用程序安装包的大小,从而提高应用程序的启动速度。

其中,对于原生功能的启动存在两种方式,一种是在应用程序启动或者是微应用启动时直接启动,一种是通过微应用的待加载页面进行调用时启动,下文将详细介绍该两种情况,并给出原生功能启动时仅需要本地的资源启动的方式以及既需要本地资源的又需要远程资源的启动的方式:

具体地,在应用程序启动或者是微应用启动时直接启动时,原生功能的应用资源和原生功能对应的公共资源则可以并行加载,以提升效率。也就是说按需加载原生功能对应的应用资源,包括:读取应用程序安装包中待启动的原生功能标识,该些原生功能的标识是在应用程序启动或者是微应用启动时需要加载的,即一启动即加载。因此,为了提高启动的效率,原生功能对应的公共资源的加载与第一应用资源的加载为并行加载。也就是说将原生功能消息推送、拍照、定位、分享等功能进行拆分,拆分为公共资源,包括网络请求、文件读写、权限授权和第一应用资源,包括消息推送、拍照相册选择、社交分享两层,应用程序启动时将共用的公共资源和第一应用资源进行并行运行,提升效率。从而根据本地资源和远程资源启动应用程序,包括:根据本地资源和远程资源启动对应的待加载页面,根据原生功能对应的公共资源和第一应用资源启动原生功能。

在实际应用中,例如需要通过人脸识别等开启应用程序的时候,此时需要调用原生功能,即拍照功能,则在启动应用程序的时候,终端既需要加载微应用从而显示对应的待加载页面,又需要调用原生功能进行验证,为了提高处理效率,将微应用对应的目标公共资源和原生功能对应的公共资源在应用程序启动的时候预先进行加载,然后并行调用原生功能,即加载第一应用资源来进行拍照以进行人脸识别,在人脸识别通过后,一方面在内存中进行待加载页面占位,即加载本地资源,另一方面与本地资源的加载并行进行远程资源的加载,从而提高待加载页面的显示效率,即提高应用程序的启动效率。

具体地,通过微应用的待加载页面进行调用时启动时,上述的按需加载原生功能对应的应用资源,包括:接收原生功能调用指令,根据原生功能调用指令加载与原生功能对应的第二应用资源;根据原生功能对应的公共资源和第二应用资源调用对应的原生功能。

即终端在显示了应用程序的微应用的待加载页面时,该微应用中存在调用原生功能的按钮,用户通过点击该按钮使得终端接收原生功能调用指令,此时触发了应用程序启动时未加载的原生功能的启动,这样终端根据原生功能调用指令加载与原生功能对应的第二应用资源;根据原生功能对应的公共资源和第二应用资源调用对应的原生功能。通过将应用程序中的原生功能,例如消息推送、拍照、定位、分享等功能进行拆分阶段运行,通过提取公共资源如图片加载、网络请求、权限授权等底层依赖在应用程序启动时进行加载,应用级的sdk消息推送、分享等功能进行按需加载,在h5待加载页面调用时实时加载除底层资源外的上层应用资源,这样可以节省应用程序启动时所需要加载的资源,降低手机内存的消耗,最终达到应用程序整体秒开。

此外对于原生功能的按需加载,若是需要与远程服务器进行交互,则在加载原生功能对应的应用资源的时候,应用程序向终端的操作系统发送调用请求,操作系统在判断需要与远程服务器交互时,则与远程服务器进行交互获取到对应的资源,然后将获取的资源与原生功能的本地资源合并后实现应用程序的调用,若是不需要与远程服务器交互,则直接获取到本地的应用资源,以实现原生功能的调用。

在其中一个实施例中,上述应用程序启动方法还可以包括:实时采集终端对应的第一监测数据以及应用程序对应的第二监测数据;将第一监测数据和第二监测数据上传至服务器,以使得服务器根据第一监测数据和第二监测数据对应用程序的运行状态进行监控。

具体地,终端对应的第一监测数据可以包括但不限于cpu、内存、io、端口的运行情况,在实际应用中,可以通过原生语言java和objective-c编码连接终端的osapi来监测应用程序占用终端的cpu、内存、io等硬件设备资源的健康状况。应用程序对应的第二监测数据可以是指应用程序中各个微应用的执行日志,也就是说通过对ios、android应用程序的运行时堆栈信息进行监测分析,一旦监控到应用程序闪退或其他异常后会记录异常日志,并将异常日志上传至服务器,用以故障的分析和上报,以便后续对应用程序进行迭代优化。

其中可选地,终端可以将上述第一监测数据和第二监测数据上传至服务器,以使得服务器根据第一监测数据和第二监测数据对应用程序的运行状态进行监控,例如,服务器可以判断第一监测数据是否存在异常,若是第一监测数据正常,但是第二监测数据存在异常,则说明是应用程序本身存在问题,则可以获取异常日志对应的微应用,并将微应用和异常日志进行联合输出。若是第一监测数据异常,则可以输出系统问题,待系统正常后,则重新进行监测。

在一个实施例中,如图3所示,提供了一种应用程序生成方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:

s302:获取应用程序对应的至少一个微应用。

具体地,结合图4所示,图4为一个实施例中的应用程序的框架图,在该实施例中,一个应用程序可以包括微应用部分和原生组件部分,而微应用部分则可以包括多个微应用,即在开发的时候,将应用程序拆分为多个微应用,例如按照功能模块进行拆分,从而在生成应用程序时,则获取到应用程序对应的至少一个为应用。

s304:将应用程序对应的每一微应用进行拆分,得到微应用对应的公共资源以及远程资源。

具体地,本地资源中包括公共资源,该公共资源可以包括但不限于公共组件库、公共样式库以及配置数据等,远程资源为待加载页面的动态数据,其可以包括模板和数据,其需要终端根据页面标识去服务器获取。在获取到各个微应用后,则可以对微应用进行拆分,例如将公共组件库、公共样式库以及配置数据从微应用中拆分出来,其他的则将静态数据拆分出来作为基础资源,动态数据和模板等则拆分出来作为远程资源。

s306:获取应用程序安装包。

具体地,应用程序安装包可以是预先设置的框架,如图4中的开发框架等。

s308:将公共资源和应用程序安装包进行打包得到应用程序,将远程资源存放至服务器。

具体地,在生成应用程序的时候将公共组件库、公共样式库以及配置数据等从微应用中分离出来,并打包至应用程序安装包中,从而在应用程序启动的时候,可以优先加载该目标公共资源,进而在微应用启动的时候可以仅运行对应的远程资源即可,而对于远程资源则存储到服务器中,例如按照微应用的页面标识进行关联存储,从而后续应用程序启动时,可以直接根据页面标识获取到对应的远程资源,并发送至终端后进行加载。

上述实施例中,通过编码实现了可以让多个h5微应用拆分阶段运行,将公共组件库、公共样式库及配置数据从h5微应用中分离到应用程序安装包中随着应用程序一起启动,这样h5微应用启动时只需要加载极少的待加载页面h5模板及动态数据部分,减少首次启动需要加载的js、css等资源,提升首屏启动速度,同时将h5单页应用拆分为多个微应用,微应用中仅包含待加载页面模板及动态数据,体积足够小,基础组件已由应用程序启动时进行了启动,微应用打开速度会极大提升,最终微应用都达到秒开的效果,极大地提升应用程序中h5功能的使用体验。

在其中一个实施例中,将应用程序对应的每一微应用进行拆分,得到微应用对应的公共资源以及远程资源之后,还包括:对微应用对应的公共资源进行去重处理得到目标公共资源;将公共资源和应用程序安装包进行打包得到应用程序,包括:将目标公共资源和应用程序安装包进行打包得到应用程序。

具体地,由于一个应用程序中可以包括多个微应用,即在生成应用程序时按照功能将应用程序拆分为多个微应用,各个微应用中仅包括待加载页面模板和动态数据,其他的公共资源则均被拆分至应用程序安装包中,且为了进一步减少应用程序安装包的大小,以提高应用程序的启动速度,可以将各个为应用对应的公共资源进行去重处理,得到目标公共资源,这样仅将去重后的目标公共资源打包至应用程序安装包,以减少应用程序安装包的大小,进而提高应用程序的启动速度。

在其中一个实施例中,上述应用程序生成方法还可以包括:获取应用程序对应的至少一个原生功能;将原生功能进行拆分,得到原生功能对应的公共资源和应用资源;生成原生功能对应的公共资源的调用方式和应用资源的调用方式;将原生功能对应的公共资源的调用方式配置为随应用程序启动;将应用资源的调用方式配置为按需加载。

具体地,结合图4,一个应用程序中还可以包括原生功能部分,为了提高应用程序的启动速度,在生成应用程序的时候,将原生功能进行拆分,得到原生功能对应的公共资源和应用资源,这样可以编写对应原生功能对应的公共资源的调用方式和应用资源的调用方式,然后配置原生功能对应的公共资源的调用方式配置为随应用程序启动,将应用资源的调用方式配置为按需加载,其中按需加载包括在应用程序启动或者是微应用启动时直接启动和通过微应用的待加载页面进行调用时启动,具体可以参见上文介绍。

在其中一个实施例中,将原生功能进行拆分,得到原生功能对应的公共资源和应用资源之后,还包括:将原生功能对应的公共资源进行去重处理生成原生功能对应的公共资源的调用方式,包括:生成与去重后的原生功能对应的公共资源的调用方式。

具体地,原生功能对应的公共资源是根据各个原生功能对应的公共资源进行去重后得到的。且一个应用程序可以调用多个原生功能,而该些原生功能可能存在相同的公共资源,因此首先对该些原生功能的公共资源进行去重处理,这样一个公共资源的调用方式只有一个,减少了应用程序安装包的大小,从而提高应用程序的启动速度。

具体地,请参照图5所示,图5为另一个实施例中应用程序启动方法的流程图,在该实施例中,该应用程序启动方法可以包括:

首先通过上面描述的混合应用程序微应用框架生成一个可运行微应用的应用程序。且生成的应用程序由于在框架中编码实现可支持h5单页应用拆分为多个微应用的运行,对拆分后的微应用进行分层管理,将一个微应用分为待加载页面模板层(对应于远程资源)和数据交互层(对应于本地资源)。其中数据交互层从h5微应用中分离由原生应用程序进行运行,与待加载页面模板层并行运行。待加载页面模板打开完成时直接读取原生应用程序的请求的数据,不用再去读取原生数据,将串行运行变为并行执行,提升性能。这样将首屏功能拆分为足够小的微应用,然后对微应用中的待加载页面加载和数据请求进行并行运算,让首屏达到秒开的效果,同时微应用之间的公共基础组件库js、css还可以进行复用,无需重复引入,减少微应用大小,加快首屏功能的启动速度。

此外通过将应用程序的原生功能消息推送、拍照、定位、分享等功能进行拆分,拆分为基础依赖层网络请求、文件读写、权限授权和应用层应用程序消息推送、拍照相册选择、社交分享两层,应用程序启动时将共用的基础依赖和应用层进行并行运行,提升效率。打开应用程序时对应用级sdk进行按需加载,且仅运行除基础依赖组件之外的资源,同时不同的应用级sdk之间共用基础层的资源,不需要重复引入,缩小sdk的大小,减少手机内存的占用,加快应用程序启动速度。

最后通过编码开发健康监测、数据监控模块,通过原生语言java和objective-c编码实现了对定时应用程序运行时终端的cpu、内存、io、端口的运行情况监控以采集应用程序的健康数据实现健康监测。同时运行时实时监控采集h5应用的执行日志,上传到服务器端,实现对h5应用的实时监控,让开发者只需要开发h5应用即可拥有完备的应用程序运行监控数据。

具体地,如图5所示,终端首先启动webview加载页面标识url,从而截获到url,然后一个线程读取微应用待加载页面,在内存中进行待加载页面占位,即读取本地资源,然后发送获取远程资源的异步请求,并拦截该异步请求,另一个线程对应应用中的异步请求提前加载,发送异步请求至服务器,以从服务器获取到远程资源,从而终端将本地资源和远程资源进行拼接渲染待加载页面。

这样结合开发者开发的h5应用,形成一个具有h5微应用运行能力、应用sdk资源拆分运行、应用程序运行健康监控能力的一个完整的应用程序,同时通过优化启动资源,极大地提升应用程序的运行响应速度。

上述实施例中,使用混合应用程序微应用技术框架开发的应用程序由于对h5单页应用进行了微应用拆分,基础公共资源分离,使得h5应用更加轻量化,不重复运行代码,提升h5应用的启动响应速度。对原生sdk进行分层拆分,按需加载,实现sdk的最小资源消耗,提升应用程序的响应性能。提供可供h5微应用快速迭代并且热更新的运行环境,同时赋予h5微应用通过按需调用一系列移动设备原生基础能力,如ocr、语音识别、消息推送、活体识别等,并在移动中台提供应用程序健康检测、用户行为分析和统一发布管理。

应该理解的是,虽然图2、图3和图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图3和图5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图6所示,提供了一种应用程序启动装置,包括:公共资源加载模块100、页面标识读取模块200、本地资源加载模块300、远程资源加载模块400和启动模块500,其中:

公共资源加载模块100,用于接收应用程序启动指令,并根据启动指令加载应用程序对应的微应用的目标公共资源;

页面标识读取模块200,用于读取应用程序安装包中待启动的微应用,并读取微应用中待加载页面的页面标识;

本地资源加载模块300,用于根据页面标识加载与待加载页面对应的本地资源,本地资源包括与待加载页面对应的目标公共资源和在应用程序安装包的基础资源;

远程资源加载模块400,用于根据页面标识加载与待加载页面对应的远程资源,远程资源为待加载页面的动态数据,且本地资源的加载与远程资源的加载为并行加载;

启动模块500,用于根据本地资源和远程资源启动应用程序。

在其中一个实施例中,目标公共资源是根据应用程序所包括的多个微应用对应的公共资源进行去重后得到的。

在其中一个实施例中,上述的公共资源加载模块100还用于根据启动指令加载应用程序对应的原生功能对应的公共资源;

上述的应用程序启动装置还可以包括:

应用资源加载模块,用于按需加载原生功能对应的应用资源。

在其中一个实施例中,上述的应用资源加载模块可以包括:

标识读取单元,用于读取应用程序安装包中待启动的原生功能标识;

第一并行加载单元,用于加载与原生功能标识对应的第一应用资源,原生功能对应的公共资源的加载与第一应用资源的加载为并行加载;

上述的启动模块500还用于根据本地资源和远程资源启动对应的待加载页面,根据原生功能对应的公共资源和第一应用资源启动原生功能。

在其中一个实施例中,上述的应用资源加载模块可以包括:

第二并行加载单元,用于接收原生功能调用指令,根据原生功能调用指令加载与原生功能对应的第二应用资源;

原生功能启动单元,用于根据原生功能对应的公共资源和第二应用资源调用对应的原生功能。

在其中一个实施例中,原生功能对应的公共资源是根据各个原生功能对应的公共资源进行去重后得到的。

在其中一个实施例中,上述的应用程序启动装置还可以包括:

采集模块,用于实时采集终端对应的第一监测数据以及应用程序对应的第二监测数据;

监控模块,用于将第一监测数据和第二监测数据上传至服务器,以使得服务器根据第一监测数据和第二监测数据对应用程序的运行状态进行监控。

关于应用程序启动装置的具体限定可以参见上文中对于应用程序启动方法的限定,在此不再赘述。上述应用程序启动装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,如图7所示,提供了一种应用程序生成装置,包括:微应用获取模块600、第一拆分模块700、安装包获取模块800和打包模块900,其中:

微应用获取模块600,用于获取应用程序对应的至少一个微应用;

第一拆分模块700,用于将应用程序对应的每一微应用进行拆分,得到微应用对应的公共资源以及远程资源;

安装包获取模块800,用于获取应用程序安装包;

打包模块900,用于将公共资源和应用程序安装包进行打包得到应用程序,将远程资源存放至服务器。

在其中一个实施例中,上述的第一拆分模块700包括:

去重单元,用于对微应用对应的公共资源进行去重处理得到目标公共资源;

打包模块900还用于将目标公共资源和应用程序安装包进行打包得到应用程序。

在其中一个实施例中,上述的应用程序生成装置可以包括:

原生功能获取模块,用于获取应用程序对应的至少一个原生功能;

第二拆分模块,用于将原生功能进行拆分,得到原生功能对应的公共资源和应用资源;

调用方式生成模块,用于生成原生功能对应的公共资源的调用方式和应用资源的调用方式;

配置模块,用于将原生功能对应的公共资源的调用方式配置为随应用程序启动;将应用资源的调用方式配置为按需加载。

在其中一个实施例中,上述的应用程序生成装置可以包括:

去重模块,用于将原生功能对应的公共资源进行去重处理;

调用方式生成模块还用于生成与去重后的原生功能对应的公共资源的调用方式。

关于应用程序生成装置的具体限定可以参见上文中对于应用程序生成方法的限定,在此不再赘述。上述应用程序生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种应用程序启动方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收应用程序启动指令,并根据启动指令加载应用程序对应的微应用的目标公共资源;读取应用程序安装包中待启动的微应用,并读取微应用中待加载页面的页面标识;根据页面标识加载与待加载页面对应的本地资源,本地资源包括与待加载页面对应的目标公共资源和在应用程序安装包的基础资源;根据页面标识加载与待加载页面对应的远程资源,远程资源为待加载页面的动态数据,且本地资源的加载与远程资源的加载为并行加载;根据本地资源和远程资源启动应用程序。

在一个实施例中,处理器执行计算机程序时所涉及的目标公共资源是根据应用程序所包括的多个微应用对应的公共资源进行去重后得到的。

在一个实施例中,处理器执行计算机程序时所实现的接收应用程序启动指令之后,还包括:根据启动指令加载应用程序对应的原生功能对应的公共资源;处理器执行计算机程序时还实现以下步骤:按需加载原生功能对应的应用资源。

在一个实施例中,处理器执行计算机程序时所实现的按需加载原生功能对应的应用资源,包括:读取应用程序安装包中待启动的原生功能标识;加载与原生功能标识对应的第一应用资源,原生功能对应的公共资源的加载与第一应用资源的加载为并行加载;根据本地资源和远程资源启动应用程序,包括:根据本地资源和远程资源启动对应的待加载页面,根据原生功能对应的公共资源和第一应用资源启动原生功能。

在一个实施例中,处理器执行计算机程序时所实现的按需加载原生功能对应的应用资源,包括:接收原生功能调用指令,根据原生功能调用指令加载与原生功能对应的第二应用资源;根据原生功能对应的公共资源和第二应用资源调用对应的原生功能。

在一个实施例中,处理器执行计算机程序时所涉及的原生功能对应的公共资源是根据各个原生功能对应的公共资源进行去重后得到的。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:实时采集终端对应的第一监测数据以及应用程序对应的第二监测数据;将第一监测数据和第二监测数据上传至服务器,以使得服务器根据第一监测数据和第二监测数据对应用程序的运行状态进行监控。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取应用程序对应的至少一个微应用;将应用程序对应的每一微应用进行拆分,得到微应用对应的公共资源以及远程资源;获取应用程序安装包;将公共资源和应用程序安装包进行打包得到应用程序,将远程资源存放至服务器。

在一个实施例中,处理器执行计算机程序时所涉及的将应用程序对应的每一微应用进行拆分,得到微应用对应的公共资源以及远程资源之后,还包括:对微应用对应的公共资源进行去重处理得到目标公共资源;处理器执行计算机程序时所涉及的将公共资源和应用程序安装包进行打包得到应用程序,包括:将目标公共资源和应用程序安装包进行打包得到应用程序。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取应用程序对应的至少一个原生功能;将原生功能进行拆分,得到原生功能对应的公共资源和应用资源;生成原生功能对应的公共资源的调用方式和应用资源的调用方式;将原生功能对应的公共资源的调用方式配置为随应用程序启动;将应用资源的调用方式配置为按需加载。

在一个实施例中,处理器执行计算机程序时所涉及的将原生功能进行拆分,得到原生功能对应的公共资源和应用资源之后,还包括:将原生功能对应的公共资源进行去重处理;处理器执行计算机程序时所涉及的生成原生功能对应的公共资源的调用方式,包括:生成与去重后的原生功能对应的公共资源的调用方式。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收应用程序启动指令,并根据启动指令加载应用程序对应的微应用的目标公共资源;读取应用程序安装包中待启动的微应用,并读取微应用中待加载页面的页面标识;根据页面标识加载与待加载页面对应的本地资源,本地资源包括与待加载页面对应的目标公共资源和在应用程序安装包的基础资源;根据页面标识加载与待加载页面对应的远程资源,远程资源为待加载页面的动态数据,且本地资源的加载与远程资源的加载为并行加载;根据本地资源和远程资源启动应用程序。

在一个实施例中,计算机程序被处理器执行时所涉及的目标公共资源是根据应用程序所包括的多个微应用对应的公共资源进行去重后得到的。

在一个实施例中,计算机程序被处理器执行时所实现的接收应用程序启动指令之后,还包括:根据启动指令加载应用程序对应的原生功能对应的公共资源;计算机程序被处理器执行时还实现以下步骤:按需加载原生功能对应的应用资源。

在一个实施例中,计算机程序被处理器执行时所实现的按需加载原生功能对应的应用资源,包括:读取应用程序安装包中待启动的原生功能标识;加载与原生功能标识对应的第一应用资源,原生功能对应的公共资源的加载与第一应用资源的加载为并行加载;根据本地资源和远程资源启动应用程序,包括:根据本地资源和远程资源启动对应的待加载页面,根据原生功能对应的公共资源和第一应用资源启动原生功能。

在一个实施例中,计算机程序被处理器执行时所实现的按需加载原生功能对应的应用资源,包括:接收原生功能调用指令,根据原生功能调用指令加载与原生功能对应的第二应用资源;根据原生功能对应的公共资源和第二应用资源调用对应的原生功能。

在一个实施例中,计算机程序被处理器执行时所涉及的原生功能对应的公共资源是根据各个原生功能对应的公共资源进行去重后得到的。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:实时采集终端对应的第一监测数据以及应用程序对应的第二监测数据;将第一监测数据和第二监测数据上传至服务器,以使得服务器根据第一监测数据和第二监测数据对应用程序的运行状态进行监控。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取应用程序对应的至少一个微应用;将应用程序对应的每一微应用进行拆分,得到微应用对应的公共资源以及远程资源;获取应用程序安装包;将公共资源和应用程序安装包进行打包得到应用程序,将远程资源存放至服务器。

在一个实施例中,计算机程序被处理器执行时所涉及的将应用程序对应的每一微应用进行拆分,得到微应用对应的公共资源以及远程资源之后,还包括:对微应用对应的公共资源进行去重处理得到目标公共资源;计算机程序被处理器执行时所涉及的将公共资源和应用程序安装包进行打包得到应用程序,包括:将目标公共资源和应用程序安装包进行打包得到应用程序。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取应用程序对应的至少一个原生功能;将原生功能进行拆分,得到原生功能对应的公共资源和应用资源;生成原生功能对应的公共资源的调用方式和应用资源的调用方式;将原生功能对应的公共资源的调用方式配置为随应用程序启动;将应用资源的调用方式配置为按需加载。

在一个实施例中,计算机程序被处理器执行时所涉及的将原生功能进行拆分,得到原生功能对应的公共资源和应用资源之后,还包括:将原生功能对应的公共资源进行去重处理;计算机程序被处理器执行时所涉及的生成原生功能对应的公共资源的调用方式,包括:生成与去重后的原生功能对应的公共资源的调用方式。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-onlymemory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(randomaccessmemory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(staticrandomaccessmemory,sram)或动态随机存取存储器(dynamicrandomaccessmemory,dram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1