CN113626099A - 应用程序的启动方法、装置及电子设备 - Google Patents

应用程序的启动方法、装置及电子设备 Download PDF

Info

Publication number
CN113626099A
CN113626099A CN202110846205.1A CN202110846205A CN113626099A CN 113626099 A CN113626099 A CN 113626099A CN 202110846205 A CN202110846205 A CN 202110846205A CN 113626099 A CN113626099 A CN 113626099A
Authority
CN
China
Prior art keywords
starting
application program
task
configuration information
stages
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.)
Granted
Application number
CN202110846205.1A
Other languages
English (en)
Other versions
CN113626099B (zh
Inventor
吴贯亮
张赛
董利明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202110846205.1A priority Critical patent/CN113626099B/zh
Publication of CN113626099A publication Critical patent/CN113626099A/zh
Application granted granted Critical
Publication of CN113626099B publication Critical patent/CN113626099B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching

Abstract

本公开关于一种应用程序的启动方法、装置及电子设备,涉及电子设备技术领域,其中,方法包括:在获取客户端的应用程序的启动配置获取请求后,响应于启动配置获取请求,获取与应用程序对应的启动配置信息,其中,启动配置信息包括应用程序启动过程中的多个启动阶段及任一启动阶段对应的至少一个启动任务,向客户端发送启动配置信息,以使得应用程序根据启动配置信息中的多个启动阶段,在任一启动阶段加载对应的启动任务。由此,在应用程序启动时,通过动态获取启动配置信息的方式确定应用程序启动过程的多个启动阶段及任一阶段对应的启动任务,提高了应用程序的启动效率。

Description

应用程序的启动方法、装置及电子设备
技术领域
本公开涉及电子设备技术领域,尤其涉及一种应用程序的启动方法、装置及电子设备。
背景技术
随着应用程序(Application,简称APP)的迭代和发展,App工程依赖的库/软件开发工具包(Software Development Kit,简称SDK)越来越多,库的加载、SDK的初始化也逐渐充斥了App的整个启动流程,导致App启动加载任务过多、启动耗时严重等问题。
相关技术中,在APP启动时,可以首先展示一张或者若干张图片,来覆盖由于App启动任务加载导致的短暂白屏等问题,优化用户体验。然而,虽然通过图片、视频等一定程度上可以让用户尽早看到内容,借助注意力转移来避免看到App启动白屏或者启动等待,但是,额外引入的图片、视频等资源会导致APP资源包增大,从而增加了APP的实际启动时长。
发明内容
本公开提供一种应用程序的启动方法、装置及电子设备,以至少解决相关技术中应用程序启动时的启动任务加载时间过长的技术问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种应用程序的启动方法,所述包括:
获取客户端的应用程序的启动配置获取请求,所述启动配置获取请求为客户端响应于所述应用程序的启动操作而发送的;
响应于所述启动配置获取请求,获取与所述应用程序对应的启动配置信息;其中,所述启动配置信息包括所述应用程序启动过程中的多个启动阶段及任一所述启动阶段对应的至少一个启动任务;
向所述客户端发送所述启动配置信息,以使得所述应用程序根据所述启动配置信息中的所述多个启动阶段,在任一启动阶段加载对应的所述启动任务。
作为本公开实施例的一种可能的情况,所述获取客户端的应用程序的启动配置获取请求,还包括:
获取所述应用程序所处客户端的地理位置信息或所述应用程序中的用户属性信息中的至少一个;
所述响应于所述启动配置获取请求,获取与所述应用程序对应的启动配置信息,包括:
根据所述地理位置信息或用户属性信息中的至少一个,获取与所述应用程序对应的启动配置信息。
作为本公开实施例的另一种可能的情况,所述响应于所述启动配置获取请求,获取与所述应用程序对应的启动配置信息,包括:
确定所述应用程序启动过程中的多个启动阶段;
获取应用程序启动过程中的多个启动任务和各所述启动任务的启动时长;
根据各所述启动任务的启动时长和任务类型,确定所述多个启动阶段中任一所述启动阶段对应的至少一个启动任务;
根据所述多个启动阶段及任一所述启动阶段对应的至少一个启动任务,生成与所述应用程序对应的启动配置信息。
作为本公开实施例的另一种可能的情况,所述根据各所述启动任务的启动时长和任务类型,确定所述多个启动阶段中任一所述启动阶段对应的至少一个启动任务,包括:
根据各所述启动任务的任务类型,确定各所述启动任务的优先级;
根据各所述启动任务的优先级和所述启动时长,将各所述启动任务划分到对应的启动阶段中。
作为本公开实施例的另一种可能的情况,所述根据各所述启动任务的优先级和所述启动时长,将各所述启动任务划分到对应的启动阶段中,包括:
确定所述启动任务为高优先级且所述启动时长为第一时长,将所述启动任务划分至第一启动阶段;
确定所述启动任务为高优先级且所述启动时长为第二时长,将所述启动任务划分至第二启动阶段;其中,所述第二时长大于所述第一时长;
确定所述启动任务为低优先级且所述启动时长为第三时长,将所述启动任务划分至第三启动阶段;其中,所述第三时长大于所述第二时长。
作为本公开实施例的另一种可能的情况,所述获取各所述启动任务的启动时长,包括:
对各所述启动任务进行封装;
监控封装后的各所述启动任务的启动开始时间和启动结束时间;
根据各所述启动任务的所述启动开始时间和所述启动结束时间,确定对应的所述启动时长。
作为本公开实施例的另一种可能的情况,所述启动配置信息还包括任一启动阶段对应的启动任务的启动顺序;
向所述客户端发送所述启动配置信息,以使得所述应用程序根据所述启动配置信息中的所述多个启动阶段,在任一启动阶段加载对应的所述启动任务,包括:
向所述客户端发送所述启动配置信息,以使得所述应用程序根据所述启动配置信息中的所述多个启动阶段,在任一启动阶段按照所述启动顺序加载对应的所述启动任务。
作为本公开实施例的另一种可能的情况,所述启动配置信息还包括任一启动阶段对应的启动任务的启动方式,所述启动方式包括串行任务方式或并行任务方式;
向所述客户端发送所述启动配置信息,以使得所述应用程序根据所述启动配置信息中的所述多个启动阶段,在任一启动阶段加载对应的所述启动任务,包括:
向所述客户端发送所述启动配置信息,以使得所述应用程序根据所述启动配置信息中的所述多个启动阶段,在任一启动阶段按照所述启动方式加载对应的所述启动任务。
根据本公开实施例的第二方面,提供一种应用程序的启动装置,包括:
第一获取模块,被配置为获取客户端的应用程序的启动配置获取请求,所述启动配置获取请求为客户端响应于所述应用程序的启动操作而发送的;
第二获取模块,被配置为响应于所述启动配置获取请求,获取与所述应用程序对应的启动配置信息;其中,所述启动配置信息包括所述应用程序启动过程中的多个启动阶段及任一所述启动阶段对应的至少一个启动任务;
发送模块,被配置为向所述客户端发送所述启动配置信息,以使得所述应用程序根据所述启动配置信息中的所述多个启动阶段,在任一启动阶段加载对应的所述启动任务。
作为本公开实施例的一种可能的情况,所述第一获取模块,还被配置为:
获取所述应用程序所处客户端的地理位置信息或所述应用程序中的用户属性信息中的至少一个;
所述第二获取模块,还被配置为:
根据所述地理位置信息或用户属性信息中的至少一个,获取与所述应用程序对应的启动配置信息。作为本公开实施例的另一种可能的情况,所述第二获取模块,还包括:
第一确定单元,被配置为确定所述应用程序启动过程中的多个启动阶段;
获取单元,被配置为获取应用程序启动过程中的多个启动任务和各所述启动任务的启动时长;
第二确定单元,被配置为根据各所述启动任务的启动时长和任务类型,确定所述多个启动阶段中任一所述启动阶段对应的至少一个启动任务;
生成单元,被配置为根据所述多个启动阶段及任一所述启动阶段对应的至少一个启动任务,生成与所述应用程序对应的启动配置信息。
作为本公开实施例的另一种可能的情况,所述第二确定单元,还被配置为:
根据各所述启动任务的任务类型,确定各所述启动任务的优先级;
根据各所述启动任务的优先级和所述启动时长,将各所述启动任务划分到对应的启动阶段中。
作为本公开实施例的另一种可能的情况,所述第二确定单元,还被配置为:
确定所述启动任务为高优先级且所述启动时长为第一时长,将所述启动任务划分至第一启动阶段;
确定所述启动任务为高优先级且所述启动时长为第二时长,将所述启动任务划分至第二启动阶段;其中,所述第二时长大于所述第一时长;
确定所述启动任务为低优先级且所述启动时长为第三时长,将所述启动任务划分至第三启动阶段;其中,所述第三时长大于所述第二时长。
作为本公开实施例的另一种可能的情况,所述获取单元,还被配置为:
对各所述启动任务进行封装;
监控封装后的各所述启动任务的启动开始时间和启动结束时间;
根据各所述启动任务的所述启动开始时间和所述启动结束时间,确定对应的所述启动时长。
作为本公开实施例的另一种可能的情况,所述启动配置信息还包括任一启动阶段对应的启动任务的启动顺序;所述发送模块,还被配置为:
向所述客户端发送所述启动配置信息,以使得所述应用程序根据所述启动配置信息中的所述多个启动阶段,在任一启动阶段按照所述启动顺序加载对应的所述启动任务。
作为本公开实施例的另一种可能的情况,所述启动配置信息还包括任一启动阶段对应的启动任务的启动方式,所述启动方式包括串行任务方式或并行任务方式;所述发送模块,还被配置为:
向所述客户端发送所述启动配置信息,以使得所述应用程序根据所述启动配置信息中的所述多个启动阶段,在任一启动阶段按照所述启动方式加载对应的所述启动任务。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如第一方面实施例所述的应用程序的启动方法。
根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行第一方面实施例所述的应用程序的启动方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,当所述计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行第一方面实施例所述的应用程序的启动方法。
本公开的实施例提供的技术方案至少带来以下有益效果:在获取客户端的应用程序的启动配置获取请求后,响应于启动配置获取请求,获取与应用程序对应的启动配置信息,其中,启动配置信息包括应用程序启动过程中的多个启动阶段及任一启动阶段对应的至少一个启动任务,向客户端发送启动配置信息,以使得应用程序根据启动配置信息中的多个启动阶段,在任一启动阶段加载对应的启动任务。由此,在应用程序启动时,通过动态获取启动配置信息的方式确定应用程序启动过程的多个启动阶段及任一阶段对应的启动任务,提高了应用程序的启动效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种应用程序的启动方法的流程图;
图2是根据一示例性实施例示出的另一种应用程序的启动方法的流程图;
图3是根据一示例性实施例示出的另一种应用程序的启动方法的流程图;
图4是根据一示例性实施例示出的一种应用程序的启动装置的框图;
图5是根据一示例性实施例示出的一种用于应用程序的启动方法的电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在应用程序启动时,除了背景技术中介绍的通过图片、视频等一定程度上可以让用户尽早看到内容,借助注意力转移来避免看到应用程序启动白屏或者启动等待,相关技术中,还可以通过删除应用程序资源包中的无用库、无用类文件等,通过删除无用库、无用类文件等,直接降低应用程序启动时加载库的大小,间接实现启动耗时优化。但是,该优化效果有限,仅能针对历史资源包较大的应用程序,无法避免新功能、新能力的引入带来的新SDK、类文件等导致应用程序启动耗时的问题。
此外,相关技术中,针对应用程序启动耗时长的技术问题,还可以对应用程序的首屏页面进行加载优化,例如,通过优化手段,让应用程序首页尽可能早地渲染和展示,通过动静分离等方式实现首屏界面和首屏数据的分离,从而实现应用程序启动加载优化。但是,由于不同类型的应用程序的业务场景不同,导致优化手段不一,并且,该优化方法对于首页不断变换的应用程序的适用性较低。
为了解决上述问题,本公开提出了一种应用程序的启动方法,下面对应用程序的启动方法进行详细介绍。
图1是根据一示例性实施例示出的一种应用程序的启动方法的流程图,如图1所示,应用程序的启动方法用于电子设备中,包括以下步骤。
在步骤S11中,获取客户端的应用程序的启动配置获取请求,启动配置获取请求为客户端响应于应用程序的启动操作而发送的。
本申请实施例以该应用程序的启动方法被配置于应用程序的启动装置中来举例说明,该应用程序的启动装置可以应用于任一电子设备中,以使该电子设备可以执行应用程序的启动功能。
其中,电子设备,可以为个人电脑(Personal Computer,简称PC)、云端设备、移动设备等,移动设备例如可以为手机、平板电脑、个人数字助理、穿戴式设备、车载设备等具有各种操作系统的硬件设备。
在本公开的实施例中,启动配置获取请求为客户端响应于应用程序的启动操作而发送的。其中,应用程序的启动操作,是指用于启动应用程序的操作。例如,可以为用户通过语音启动应用程序的操作,也可以为用户的触摸操作,也可以为用户点击按键的操作等等,在此不做限定。
本公开实施例中,在客户端中的应用程序启动时,客户端可以响应于应用程序的启动操作生成启动配置获取请求,客户端将启动配置获取请求发送至服务器后,以使得服务器获取到客户端发送的应用程序的启动配置获取请求。
在步骤S12中,响应于启动配置获取请求,获取与应用程序对应的启动配置信息。
其中,启动配置信息包括应用程序启动过程中的多个启动阶段及任一启动阶段对应的至少一个启动任务。
可以理解为,服务器中存储有应用程序对应的启动配置信息,且启动配置信息包括该应用程序启动过程中的多个启动阶段及任一启动阶段对应的至少一个启动任务。
本公开实施例中,服务器接收到客户端的应用程序的启动配置获取请求后,可以响应于启动配置获取请求,获取与应用程序对应的启动配置信息。
本公开实施例中,根据应用程序的启动框架,可以将应用程序的启动过程划分为多个启动阶段,并且每个启动阶段对应有同类型的启动任务。例如,应用程序可以包括3个启动阶段,分别为:应用程序发起阶段、界面渲染阶段和启动空闲阶段。
本公开实施例中,应用程序发起阶段可以包括应用程序启动时必须加载的系统类启动任务,系统类启动任务可以为对于整个应用程序运行起决定作用的任务或者重要的模块等,例如,日志模块、crash监控模块、第三方服务等等。在应用程序发起阶段中各启动任务加载完成后,开始加载界面渲染阶段,在界面渲染阶段应用程序的初始界面开始加载,基础框架开始初始化,界面也开始初始化。在应用程序启动完成后,其他需要初始化的启动任务在启动空闲阶段开始加载,例如,同步服务器接口信息、统计打点上报、一些不重要的服务初始化等等。
需要解释的是,不同应用程序在启动时,获取到的启动配置信息可能不相同,同一个应用程序,在每次启动时获取到的启动配置信息也可能不相同。
在步骤S13中,向客户端发送启动配置信息,以使得应用程序根据启动配置信息中的多个启动阶段,在任一启动阶段加载对应的启动任务。
本公开实施例中,服务器响应于应用程序发送的启动配置获取请求,获取到与应用程序对应的启动配置信息后,可以向客户端发送启动配置信息,以使得客户端的发送启动配置获取请求的应用程序根据启动配置信息中的多个启动阶段,在任一启动阶段加载对应的启动任务。
作为一种示例,假设某一应用程序对应的启动配置信息包括该应用程序启动过程中的3个启动阶段及各启动阶段对应的至少一个启动任务。其中,3个启动阶段分别为:应用程序发起阶段、界面渲染阶段和启动空闲阶段。服务器向该应用程序发送启动配置信息后,应用程序首先加载应用程序发起阶段对应的至少一个启动任务,进而,加载界面渲染阶段对应的至少一个启动任务,在应用程序发起阶段对应的启动任务和界面渲染阶段对应的启动任务加载完成后,加载启动空闲阶段对应的启动任务。
本公开实施例的应用程序的启动方法,在获取客户端的应用程序的启动配置获取请求后,响应于启动配置获取请求,获取与应用程序对应的启动配置信息,其中,启动配置信息包括应用程序启动过程中的多个启动阶段及任一启动阶段对应的至少一个启动任务,向客户端发送启动配置信息,以使得应用程序根据启动配置信息中的多个启动阶段,在任一启动阶段加载对应的启动任务。由此,在应用程序启动时,通过动态获取启动配置信息的方式确定应用程序启动过程的多个启动阶段及任一阶段对应的启动任务,提高了应用程序的启动效率。
在本公开的一种可能的情况下,可以基于应用程序所处客户端的地理位置或应用程序中用户属性信息,获取与应用程序对应的启动配置信息,以使得应用程序根据启动配置信息中的多个启动阶段,在任一启动阶段加载对应的启动任务。下面结合图2进行详细介绍。图2是根据一示例性实施例示出的另一种应用程序的启动方法的流程图,如图2所示,该方法还可以包括以下步骤。
在步骤S21中,获取应用程序所处客户端的地理位置信息或应用程序中的用户属性信息中的至少一个。
本公开实施例中,应用程序所处客户端的地理位置不同时,应用程序启动过程中的启动阶段以及各启动阶段对应的启动任务也可能不相同。例如,A城市的网速比B村庄的网速好,为了提高应用程序的启动效率,避免复杂的启动阶段导致B村庄的用户启动该应用程序的启动速率较慢,应用程序所处客户端在A城市和B村庄启动过程中的启动阶段以及各启动阶段对应的启动任务并不相同。
本公开实施例中,不同年龄、性别的用户在启动应用程序时,需要展示的界面可能并不相同,因此,服务器还可以获取应用程序中的用户属性信息,以根据用户属性信息,获取与用户属性信息相对应的启动配置信息。
例如,年龄在60岁以上的用户使用应用程序时,可能使用的是简洁版的应用程序,年龄在60岁以下的用户使用的可能为常规版的应用程序,服务器在获取应用程序中的用户属性信息后,可以根据用户的年龄,获取与不同版本的应用程序对应的启动配置信息。
可选地,用户在注册应用程序时登记用户属性信息后,服务器可以获取到应用程序中的用户属性信息。
本公开实施例中,可能存在应用程序的启动阶段以及各阶段的启动任务与客户端的地理位置信息以及应用程序中的用户属性信息同时相关,这种情况下,启动应用程序的过程中,可以同时获取应用程序所处客户端的地理位置信息和应用程序中的用户属性信息。
在步骤S22中,根据地理位置信息或用户属性信息中的至少一个,获取与应用程序对应的启动配置信息。
在本公开实施例的一种可能的情况下,在获取到应用程序所处客户端的地理位置后,服务器可以根据客户端的地理位置获取与应用程序对应的启动配置信息。
在本公开实施例的另一种可能的情况下,在获取到应用程序中的用户属性信息后,服务器可以根据用户属性信息获取与应用程序对应的启动配置信息。
在本公开实施例的一种可能的情况下,在同时获取到应用程序所处客户端的地理位置和应用程序中的用户属性信息后,服务器可以根据客户端的地理位置和用户属性信息获取与应用程序对应的启动配置信息。
在步骤S23中,向客户端发送启动配置信息,以使得应用程序根据启动配置信息中的多个启动阶段,在任一启动阶段加载对应的启动任务。
需要说明的是,步骤S23的实现过程,可以参见上述实施例中步骤S13的实现过程,在此不再赘述。
本公开实施例的应用程序的启动方法,在获取应用程序所处客户端的地理位置信息或应用程序中的用户属性信息中的至少一个后,根据地理位置信息或用户属性信息中的至少一个,获取与应用程序对应的启动配置信息,向客户端发送启动配置信息,以使得应用程序根据启动配置信息中的多个启动阶段,在任一启动阶段加载对应的启动任务。由此,基于应用程序所处客户端的地理位置或使用应用程序的用户属性信息,确定应用程序启动过程中多个启动阶段以及各启动阶段对应的启动任务,实现了应用程序启动的个性化配置的需求,提高了应用程序的启动效率。
在上述任一实施例中,服务器获取与应用程序对应的启动配置信息时,可以根据应用程序启动过程中的多个启动任务和各启动任务的启动时长,确定多个启动阶段中任一启动阶段对应的至少一个启动任务,进而,生成与应用程序对应的启动配置信息,下面结合图3进行详细介绍,图3是根据一示例性实施例示出的另一种应用程序的启动方法的流程图,如图3所示,该方法还可以包括以下步骤。
在步骤S31中,获取客户端的应用程序的启动配置获取请求,启动配置获取请求为客户端响应于应用程序的启动操作而发送的。
需要说明的是,步骤S31的实现过程,可以参见上述实施例中步骤S11的实现过程,在此不再赘述。
在步骤S32中,确定应用程序启动过程中的多个启动阶段。
本公开实施例中,应用程序启动过程中可以包括多个启动阶段,可以在各启动阶段配置对应的启动配置信息。
作为一种示例,应用程序启动过程中可以包括应用程序发起阶段、界面渲染阶段和启动空闲阶段。
在步骤S33中,获取应用程序启动过程中的多个启动任务和各启动任务的启动时长。
本公开实施例中,在应用程序启动过程中,可以获取应用程序启动过程中的多个启动任务以及各启动任务的启动时长。
在本公开实施例的一种可能的实现方式中,可以对应用程序启动过程中的多个启动任务进行封装,进而,监控封装后的各启动任务的启动开始时间和启动结束时间,根据各启动任务的启动开始时间和启动结束时间,确定对应的启动时长。相较于现有的通过监测各启动任务对应的代码运行开始时间和结束时间,确定对应启动任务的启动时长,本公开中,通过对启动任务进行封装,节省了确定各启动任务的启动时长的时间。
在步骤S34中,根据各启动任务的启动时长和任务类型,确定多个启动阶段中任一启动阶段对应的至少一个启动任务。
本公开实施例中,确定应用程序启动过程中的多个启动任务和各启动任务的启动时长后,可以首先根据各启动任务的任务类型确定各启动任务的优先级。进一步地,根据各启动任务的优先级和启动时长,将各启动任务划分到对应的启动阶段。
在一种可能的情况下,根据启动任务的任务类型确定启动任务为高优先级且该启动任务对应的启动时长为第一时长,可以将该启动任务划分至应用程序的第一启动阶段。
可以理解的是,应用程序的第一启动阶段中包括的启动任务,为应用程序启动过程中首先加载的系统类任务,即启动任务的优先级最高且启动时长较短的系统类任务。
在另一种可能的情况下,根据启动任务的任务类型确定启动任务为高优先级且该启动任务对应的启动时长为第二时长,可以将该启动任务划分至应用程序的第二启动阶段。
可以理解的是,应用程序启动过程中,假设存在启动任务为高优先级且启动时长为大于第一时长的第二时长,若将该启动任务划分至应用程序的第一启动阶段,会导致应用程序启动时长过长,存在用户使用体验差的缺点,因此,本公开实施例中,将启动任务为高优先级且该启动任务对应的启动时长为第二时长的启动任务,划分至应用程序的第二启动阶段。
在另一种可能的情况下,根据启动任务的任务类型确定启动任务为低优先级且该启动任务对应的启动时长为第三时长,可以将该启动任务划分至应用程序的第三启动阶段。
可以理解的是,对于启动任务为低优先级且启动时长过长的启动任务,可以划分至应用程序的第三启动阶段,从而避免了启动时长过长导致应用程序的整个启动过程较慢,影响用户使用体验的技术问题。
在步骤S35中,根据多个启动阶段及任一启动阶段对应的至少一个启动任务,生成与应用程序对应的启动配置信息。
本公开实施例中,确定应用程序启动过程中多个启动阶段中任一启动阶段对应的至少一个启动任务后,可以根据多个启动阶段及任一启动阶段对应的至少一个启动任务,生成与应用程序对应的启动配置信息。
可以理解为,应用程序对应的启动配置信息中包括该应用程序的多个启动阶段以及各启动阶段对应的至少一个启动任务。
在步骤S36中,向客户端发送启动配置信息,以使得应用程序根据启动配置信息中的多个启动阶段,在任一启动阶段加载对应的启动任务。
需要说明的是,步骤S36的实现过程,可以参见上述实施例中步骤S13的实现过程,在此不再赘述。
本公开实施例的应用程序的启动方法,在获取客户端的应用程序的启动配置获取请求后,确定应用程序启动过程中的多个启动阶段,获取应用程序启动过程中的多个启动任务和各启动任务的启动时长,根据各启动任务的启动时长和任务类型,确定多个启动阶段中任一所述启动阶段对应的至少一个启动任务,根据多个启动阶段及任一启动阶段对应的至少一个启动任务,生成与应用程序对应的启动配置信息,向客户端发送启动配置信息,以使得应用程序根据启动配置信息中的多个启动阶段,在任一启动阶段加载对应的启动任务。由此,根据应用程序启动过程中各启动任务的时长和任务类型,确定各启动阶段对应的至少一个启动任务,进而生成与应用程序对应的启动配置信息,从而实现了应用程序启动过程中更细粒度的启动优化。
在上述任一实施例中,应用程序对应的启动配置信息不仅包括应用程序启动过程中的多个启动阶段及任一启动阶段对应的至少一个启动任务,还可以包括任一启动阶段对应的启动任务的启动顺序,响应于应用程序的启动配置获取请求,获取与应用程序对应的启动配置信息后,向客户端发送启动配置信息,以使得应用程序根据启动配置信息中的多个启动阶段,在任一启动阶段按照该启动阶段对应的启动任务的启动顺序加载对应的启动任务。由此,在应用程序启动过程中,根据启动配置信息中各启动任务的启动顺序加载对应的启动任务,实现了按需加载启动任务。
在上述任一实施例中,应用程序对应的启动配置信息不仅包括应用程序启动过程中的多个启动阶段及任一启动阶段对应的至少一个启动任务,还可以包括任一启动阶段对应的启动任务的启动方式,其中,启动方式包括串行任务方式或并行任务方式。响应于应用程序的启动配置获取请求,获取与应用程序对应的启动配置信息后,向客户端发送启动配置信息后,客户端的应用程序接收到启动配置信息后,可以根据启动配置信息中的多个启动阶段,在任一启动阶段按照启动方式加载对应的启动任务。
在一种可能的情况下,假设启动配置信息中某一启动阶段对应的启动任务的启动方式为串行任务方式,客户端接收到启动配置信息后,应用程序可以根据启动配置信息中的启动方式串行加载对应的启动任务。
在另一种可能的情况下,假设启动配置信息中某一启动阶段对应的启动任务的启动方式为并行任务方式,客户端接收到启动配置信息后,应用程序可以根据启动配置信息中的启动方式并行加载对应的启动任务。
本公开实施例的应用程序的启动方法,在获取客户端的应用程序的启动配置获取请求后,响应于启动配置获取请求,获取与应用程序对应的启动配置信息,向客户端发送启动配置信息,以使得应用程序根据启动配置信息中的多个启动阶段,在任一启动阶段按照启动方式加载对应的启动任务。由此,可以基于各启动任务对应的启动方式加载对应的启动任务,实现了个性化启动应用程序的需求。
为了实现上述实施例,本公开提出了一种应用程序的启动装置。
图4是根据一示例性实施例示出的一种应用程序的启动任务加载装置框图。参照图4,该应用程序的启动装置400,可以包括:第一获取模块410、第二获取模块420以及发送模块430。
其中,第一获取模块410,被配置为获取客户端的应用程序的启动配置获取请求,启动配置获取请求为客户端响应于应用程序的启动操作而发送的;
第二获取模块420,被配置为响应于启动配置获取请求,获取与应用程序对应的启动配置信息;其中,启动配置信息包括应用程序启动过程中的多个启动阶段及任一启动阶段对应的至少一个启动任务;
发送模块430,被配置为向客户端发送启动配置信息,以使得应用程序根据启动配置信息中的多个启动阶段,在任一启动阶段加载对应的启动任务。
在本公开实施例的一种可能的实现形式中,第一获取模块410,还可以被配置为:获取应用程序所处客户端的地理位置信息或应用程序中的用户属性信息中的至少一个;
第二获取模块420,还可以被配置为:根据地理位置信息或用户属性信息中的至少一个,获取与应用程序对应的启动配置信息。
在本公开实施例的另一种可能的实现形式中,第二获取模块420,还可以包括:
第一确定单元,被配置为确定应用程序启动过程中的多个启动阶段;
获取单元,被配置为获取应用程序启动过程中的多个启动任务和各启动任务的启动时长;
第二确定单元,被配置为根据各启动任务的启动时长和任务类型,确定多个启动阶段中任一启动阶段对应的至少一个启动任务;
生成单元,被配置为根据多个启动阶段及任一启动阶段对应的至少一个启动任务,生成与应用程序对应的启动配置信息。
在本公开实施例的另一种可能的实现形式中,第二确定单元,还可以被配置为:
根据各启动任务的任务类型,确定各启动任务的优先级;根据各启动任务的优先级和启动时长,将各启动任务划分到对应的启动阶段中。
在本公开实施例的另一种可能的实现形式中,第二确定单元,还可以被配置为:
确定启动任务为高优先级且启动时长为第一时长,将启动任务划分至第一启动阶段;
确定启动任务为高优先级且启动时长为第二时长,将启动任务划分至第二启动阶段;其中,第二时长大于第一时长;
确定启动任务为低优先级且启动时长为第三时长,将启动任务划分至第三启动阶段;其中,第三时长大于第二时长。
在本公开实施例的另一种可能的实现形式中,获取单元,还可以被配置为:
对各启动任务进行封装;监控封装后的各启动任务的启动开始时间和启动结束时间;根据各启动任务的启动开始时间和启动结束时间,确定对应的启动时长。
在本公开实施例的另一种可能的实现形式中,启动配置信息还包括任一启动阶段对应的启动任务的启动顺序;发送模块430,还可以被配置为:
向客户端发送启动配置信息,以使得应用程序根据启动配置信息中的多个启动阶段,在任一启动阶段按照启动顺序加载对应的启动任务。
在本公开实施例的另一种可能的实现形式中,启动配置信息还包括任一启动阶段对应的启动任务的启动方式,启动方式包括串行任务方式或并行任务方式;发送模块430,还可以被配置为:
向客户端发送启动配置信息,以使得应用程序根据启动配置信息中的多个启动阶段,在任一启动阶段按照启动方式加载对应的启动任务。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开实施例的应用程序的启动装置,在获取客户端的应用程序的启动配置获取请求后,响应于启动配置获取请求,获取与应用程序对应的启动配置信息,其中,启动配置信息包括应用程序启动过程中的多个启动阶段及任一启动阶段对应的至少一个启动任务,向客户端发送启动配置信息,以使得应用程序根据启动配置信息中的多个启动阶段,在任一启动阶段加载对应的启动任务。由此,在应用程序启动时,通过动态获取启动配置信息的方式确定应用程序启动过程的多个启动阶段及任一阶段对应的启动任务,提高了应用程序的启动效率。
为了实现上述实施例,本公开实施例还提出了一种电子设备。
其中,电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如前所述的应用程序的启动方法。
作为一种示例,图5是根据一示例性实施例示出的一种用于应用程序的启动方法的电子设备500的框图,如图5所示,上述电子设备500,还可以包括:
存储器510及处理器520,连接不同组件(包括存储器510和处理器520)的总线530,存储器510存储有计算机程序,当处理器520执行所述程序时实现本公开实施例所述的应用程序的启动方法。
总线530表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备500典型地包括多种电子设备可读介质。这些介质可以是任何能够被电子设备300访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器510还可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)540和/或高速缓存存储器550。电子设备500可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统560可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线550相连。存储器510可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本公开各实施例的功能。
具有一组(至少一个)程序模块570的程序/实用工具580,可以存储在例如存储器510中,这样的程序模块570包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块570通常执行本公开所描述的实施例中的功能和/或方法。
电子设备500也可以与一个或多个外部设备590(例如键盘、指向设备、显示器591等)通信,还可与一个或者多个使得用户能与该电子设备500交互的设备通信,和/或与使得该电子设备500能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口592进行。并且,电子设备500还可以通过网络适配器593与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器593通过总线530与电子设备500的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器520通过运行存储在存储器510中的程序,从而执行各种功能应用以及数据处理。
需要说明的是,本实施例的电子设备的实施过程和技术原理参见前述对本公开实施例的应用程序的启动方法的解释说明,此处不再赘述。
本公开实施例提供的电子设备,在获取客户端的应用程序的启动配置获取请求后,响应于启动配置获取请求,获取与应用程序对应的启动配置信息,其中,启动配置信息包括应用程序启动过程中的多个启动阶段及任一启动阶段对应的至少一个启动任务,向客户端发送启动配置信息,以使得应用程序根据启动配置信息中的多个启动阶段,在任一启动阶段加载对应的启动任务。由此,在应用程序启动时,通过动态获取启动配置信息的方式确定应用程序启动过程的多个启动阶段及任一阶段对应的启动任务,提高了应用程序的启动效率。
为了实现上述实施例,本公开实施例还提出了一种存储介质,当所述存储介质中的指令由服务器的处理器执行时,使得服务器能够执行上述实施例中所述的应用程序的启动方法。
为了实现上述实施例,本公开实施例还提出了一种计算机程序产品,当所述计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行上述实施例所述的应用程序的启动方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (10)

1.一种应用程序的启动方法,其特征在于,所述方法包括:
获取客户端的应用程序的启动配置获取请求,所述启动配置获取请求为客户端响应于所述应用程序的启动操作而发送的;
响应于所述启动配置获取请求,获取与所述应用程序对应的启动配置信息;其中,所述启动配置信息包括所述应用程序启动过程中的多个启动阶段及任一所述启动阶段对应的至少一个启动任务;
向所述客户端发送所述启动配置信息,以使得所述应用程序根据所述启动配置信息中的所述多个启动阶段,在任一启动阶段加载对应的所述启动任务。
2.根据权利要求1所述的方法,其特征在于,所述获取客户端的应用程序的启动配置获取请求,还包括:
获取所述应用程序所处客户端的地理位置信息或所述应用程序中的用户属性信息中的至少一个;
所述响应于所述启动配置获取请求,获取与所述应用程序对应的启动配置信息,包括:
根据所述地理位置信息或用户属性信息中的至少一个,获取与所述应用程序对应的启动配置信息。
3.根据权利要求1所述的方法,其特征在于,所述响应于所述启动配置获取请求,获取与所述应用程序对应的启动配置信息,包括:
确定所述应用程序启动过程中的多个启动阶段;
获取应用程序启动过程中的多个启动任务和各所述启动任务的启动时长;
根据各所述启动任务的启动时长和任务类型,确定所述多个启动阶段中任一所述启动阶段对应的至少一个启动任务;
根据所述多个启动阶段及任一所述启动阶段对应的至少一个启动任务,生成与所述应用程序对应的启动配置信息。
4.根据权利要求3所述的启动方法,其特征在于,所述根据各所述启动任务的启动时长和任务类型,确定所述多个启动阶段中任一所述启动阶段对应的至少一个启动任务,包括:
根据各所述启动任务的任务类型,确定各所述启动任务的优先级;
根据各所述启动任务的优先级和所述启动时长,将各所述启动任务划分到对应的启动阶段中。
5.根据权利要求4所述的启动方法,其特征在于,所述根据各所述启动任务的优先级和所述启动时长,将各所述启动任务划分到对应的启动阶段中,包括:
确定所述启动任务为高优先级且所述启动时长为第一时长,将所述启动任务划分至第一启动阶段;
确定所述启动任务为高优先级且所述启动时长为第二时长,将所述启动任务划分至第二启动阶段;其中,所述第二时长大于所述第一时长;
确定所述启动任务为低优先级且所述启动时长为第三时长,将所述启动任务划分至第三启动阶段;其中,所述第三时长大于所述第二时长。
6.根据权利要求3-5任一项所述的启动方法,所述获取各所述启动任务的启动时长,包括:
对各所述启动任务进行封装;
监控封装后的各所述启动任务的启动开始时间和启动结束时间;
根据各所述启动任务的所述启动开始时间和所述启动结束时间,确定对应的所述启动时长。
7.一种应用程序的启动装置,其特征在于,所述装置包括:
第一获取模块,被配置为获取客户端的应用程序的启动配置获取请求,所述启动配置获取请求为客户端响应于所述应用程序的启动操作而发送的;
第二获取模块,被配置为响应于所述启动配置获取请求,获取与所述应用程序对应的启动配置信息;其中,所述启动配置信息包括所述应用程序启动过程中的多个启动阶段及任一所述启动阶段对应的至少一个启动任务;
发送模块,被配置为向所述客户端发送所述启动配置信息,以使得所述应用程序根据所述启动配置信息中的所述多个启动阶段,在任一启动阶段加载对应的所述启动任务。
8.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的应用程序的启动方法。
9.一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至6中任一项所述的应用程序的启动方法。
10.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的应用程序的启动方法。
CN202110846205.1A 2021-07-26 2021-07-26 应用程序的启动方法、装置及电子设备 Active CN113626099B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110846205.1A CN113626099B (zh) 2021-07-26 2021-07-26 应用程序的启动方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110846205.1A CN113626099B (zh) 2021-07-26 2021-07-26 应用程序的启动方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN113626099A true CN113626099A (zh) 2021-11-09
CN113626099B CN113626099B (zh) 2024-05-07

Family

ID=78381178

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110846205.1A Active CN113626099B (zh) 2021-07-26 2021-07-26 应用程序的启动方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN113626099B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115080151A (zh) * 2022-07-22 2022-09-20 平安银行股份有限公司 App启动流程控制方法、计算机可读存储介质及终端

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110908724A (zh) * 2019-12-03 2020-03-24 深圳市迅雷网络技术有限公司 一种Android App启动方法及相关组件
WO2020187121A1 (zh) * 2019-03-15 2020-09-24 上海连尚网络科技有限公司 启动小程序的方法、设备和计算机存储介质
CN111913759A (zh) * 2020-07-31 2020-11-10 中国工商银行股份有限公司 控制应用程序执行的方法、装置、计算设备和介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020187121A1 (zh) * 2019-03-15 2020-09-24 上海连尚网络科技有限公司 启动小程序的方法、设备和计算机存储介质
CN110908724A (zh) * 2019-12-03 2020-03-24 深圳市迅雷网络技术有限公司 一种Android App启动方法及相关组件
CN111913759A (zh) * 2020-07-31 2020-11-10 中国工商银行股份有限公司 控制应用程序执行的方法、装置、计算设备和介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115080151A (zh) * 2022-07-22 2022-09-20 平安银行股份有限公司 App启动流程控制方法、计算机可读存储介质及终端
CN115080151B (zh) * 2022-07-22 2023-07-14 平安银行股份有限公司 App启动流程控制方法、计算机可读存储介质及终端

Also Published As

Publication number Publication date
CN113626099B (zh) 2024-05-07

Similar Documents

Publication Publication Date Title
CN105787077B (zh) 数据同步方法和装置
EP3813339B1 (en) Acquisition method, apparatus, device and storage medium for applet data
US9990214B2 (en) Dynamic agent delivery
CN106453572B (zh) 基于云服务器同步图像的方法及系统
CN112988284B (zh) 应用程序启动方法、装置、计算机设备和存储介质
CN110968395B (zh) 一种在模拟器中处理渲染指令的方法及移动终端
CN111400000A (zh) 网络请求处理方法、装置、设备和存储介质
CN113806300B (zh) 数据存储方法、系统、装置、设备及存储介质
CN113448594A (zh) 服务的处理方法、装置、计算机设备及存储介质
CN110020305B (zh) 网页加载方法、装置、计算机设备和存储介质
US10318343B2 (en) Migration methods and apparatuses for migrating virtual machine including locally stored and shared data
CN110781159B (zh) Ceph目录文件信息读取方法、装置、服务器及存储介质
CN113761003A (zh) 用户画像数据处理方法和装置、电子设备和可读存储介质
CN113127361A (zh) 应用程序的开发方法、装置、电子设备和存储介质
CN113626099B (zh) 应用程序的启动方法、装置及电子设备
CN112965916B (zh) 页面测试方法、页面测试装置、电子设备及可读存储介质
CN109660581B (zh) 物理机管理方法及装置、系统
CN112154417A (zh) 经由仿真网络通信信道在应用的单机版本和基于Web的版本之间共享代码库
CN111580883B (zh) 应用程序启动方法、装置、计算机系统和介质
CN112612964A (zh) 一种图片展示方法、装置、计算机设备和存储介质
CN113274736B (zh) 云游戏资源调度方法、装置、设备及存储介质
KR20060023954A (ko) 휴대용 장치에서 카메라 리소스를 제어하는 시스템
CN111124907A (zh) 一种手机游戏测试方法、装置和服务器
CN112882711A (zh) 渲染方法、装置、设备以及存储介质
CN117724852B (zh) 一种云电脑计算资源分配方法及装置

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