CN115437709A - 应用首页闪屏资源的加载方法及装置 - Google Patents

应用首页闪屏资源的加载方法及装置 Download PDF

Info

Publication number
CN115437709A
CN115437709A CN202211054457.1A CN202211054457A CN115437709A CN 115437709 A CN115437709 A CN 115437709A CN 202211054457 A CN202211054457 A CN 202211054457A CN 115437709 A CN115437709 A CN 115437709A
Authority
CN
China
Prior art keywords
component
resource
page
splash screen
target application
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.)
Pending
Application number
CN202211054457.1A
Other languages
English (en)
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 Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202211054457.1A priority Critical patent/CN115437709A/zh
Publication of CN115437709A publication Critical patent/CN115437709A/zh
Pending legal-status Critical Current

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/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本公开提供一种应用首页闪屏资源的加载方法及装置,涉及软件技术领域,具体涉及应用组件初始化、资源展示、应用界面显示、UI渲染等技术领域,可应用于应用冷启动阶段展示首页闪屏资源的场景下。具体实现方案包括:在目标应用的冷启动阶段,初始化目标应用的组件;目标应用的组件包括符合优先初始化规则的第一组件、用于加载首页闪屏资源的资源组件、以及除第一组件和资源组件之外的第二组件;在第一时机发送首页闪屏资源获取请求;第一时机在第一组件初始化的时机之后、且在第二组件初始化的时机之前;调用资源组件加载接收到的首页闪屏资源。本公开可以为首页闪屏资源的获取预留更多的时间,提高首页闪屏资源的展示成功率。

Description

应用首页闪屏资源的加载方法及装置
技术领域
本公开涉及软件技术领域,具体涉及应用组件初始化、资源展示、应用界面显示、UI渲染等技术领域,可应用于应用冷启动阶段展示首页闪屏资源的场景下,尤其涉及一种应用首页闪屏资源的加载方法及装置。
背景技术
应用程序(简称应用)在冷启动阶段,通常可以在应用首页展示广告(如开屏广告)。其中,冷启动是指应用从关闭到启动新进程的过程。
目前,应用在首页展示广告的方式包括:在冷启动阶段,初始化应用的组件,组件包括用于加载广告的广告组件;在初始化广告组件时,向存储广告的服务器发送广告获取请求。服务器接收到广告请求后,可以向应用返回广告。应用在初始化组件之后,可以调用广告组件加载接收到的广告,以在启动时通过首页显示广告。
目前这种在首页展示广告的方式中,经常存在从发送广告请求的时机至调用广告组件加载接收到的广告的时机这段时间内无法成功接收到广告,调用广告组件加载接收到的广告时没有广告可加载的情况,导致广告的展示成功率不高。
发明内容
本公开提供了一种应用首页闪屏资源的加载方法及装置,能够为首页闪屏资源的获取预留更多的时间,提高首页闪屏资源的展示成功率。
根据本公开的第一方面,提供了一种应用首页闪屏资源的加载方法,所述方法包括:
在目标应用的冷启动阶段,初始化目标应用的组件;目标应用的组件包括符合优先初始化规则的第一组件、用于加载首页闪屏资源的资源组件、以及除第一组件和资源组件之外的第二组件。在第一时机发送首页闪屏资源获取请求,首页闪屏资源获取请求用于获取目标应用的首页闪屏资源;其中,第一时机在第一组件初始化的时机之后、且在第二组件初始化的时机之前。在初始化目标应用的组件之后,调用资源组件加载接收到的首页闪屏资源,以在目标应用启动时显示首页闪屏资源。
根据本公开的第二方面,提供了一种应用首页闪屏资源的加载装置,所述装置包括:
初始化单元,用于在目标应用的冷启动阶段,初始化目标应用的组件;目标应用的组件包括符合优先初始化规则的第一组件、用于加载首页闪屏资源的资源组件、以及除第一组件和资源组件之外的第二组件。资源请求单元,用于在第一时机发送首页闪屏资源获取请求,首页闪屏资源获取请求用于获取目标应用的首页闪屏资源;其中,第一时机在第一组件初始化的时机之后、且在第二组件初始化的时机之前。渲染单元,用于在初始化目标应用的组件之后,调用资源组件加载接收到的首页闪屏资源,以在目标应用启动时显示首页闪屏资源。
根据本公开的第三方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行根据第一方面所述的方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据第一方面所述的方法。
根据本公开的第六方面,提供了一种终端设备,终端设备部署有目标应用;当目标应用冷启动时,终端设备实现根据第一方面所述的方法。
本公开通过在目标应用的冷启动阶段,初始化目标应用的组件,目标应用的组件包括符合优先初始化规则的第一组件、用于加载首页闪屏资源的资源组件、以及除第一组件和资源组件之外的第二组件;在第一时机发送首页闪屏资源获取请求,首页闪屏资源获取请求用于获取目标应用的首页闪屏资源,第一时机在第一组件初始化的时机之后、且在第二组件初始化的时机之前;在初始化目标应用的组件之后,调用资源组件加载接收到的首页闪屏资源,可以将发送首页闪屏资源获取请求的时机进行提前,拉长从发送首页闪屏资源获取请求的时机至加载首页闪屏资源的时机之间的这段时间。通过拉长从发送首页闪屏资源获取请求的时机至加载首页闪屏资源的时机之间的这段时间,为首页闪屏资源的获取预留了更多的时间,拉长了首页闪屏资源获取请求的执行空间,有效提高了首页闪屏资源的展示成功率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1为本公开实施例提供的应用首页闪屏资源的加载方法的流程示意图;
图2为本公开实施例提供的首页闪屏资源获取请求发送时机的比较示意图;
图3为本公开实施例提供的首页闪屏资源获取请求的执行空间的比较示意图;
图4为本公开实施例提供的首页闪屏资源获取请求发送时机的另一比较示意图;
图5为本公开实施例提供的目标应用中首页视图层级的示意图;
图6为本公开实施例提供的首页闪屏资源获取请求的执行空间的另一比较示意图;
图7为本公开实施例提供的图5所示的首页视图层级中drawRect方法的执行顺序示意图;
图8为本公开实施例提供的应用首页闪屏资源的加载装置的组成示意图;
图9为本公开实施例提供的应用首页闪屏资源的加载装置的另一组成示意图;
图10为本公开实施例提供的应用首页闪屏资源的加载装置的又一组成示意图;
图11示出了可以用来实施本公开的实施例的示例电子设备1100的示意性框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
应当理解,在本公开各实施例中,字符“/”一般表示前后关联对象是一种“或”的关系。术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
应用程序(简称应用)在冷启动阶段,通常可以在应用首页展示广告(如开屏广告)。其中,冷启动是指应用从关闭到启动新进程的过程。
目前,应用在首页展示广告的方式包括:在冷启动阶段,初始化应用的组件,组件包括用于加载广告的广告组件;在初始化广告组件时,向存储广告的服务器发送广告获取请求。服务器接收到广告请求后,可以向应用返回广告。应用在初始化组件之后,可以调用广告组件加载接收到的广告,以在启动时通过首页显示广告。
目前这种在首页展示广告的方式中,经常存在从发送广告请求的时机至调用广告组件加载接收到的广告的时机这段时间内无法成功接收到广告,调用广告组件加载接收到的广告时没有广告可加载的情况,导致广告的展示成功率不高。
例如,当网络延迟较高或者用于运行应用的设备的性能较差时,目前这种在首页展示广告的方式中,应用可能无法在从发送广告请求的时机至调用广告组件加载接收到的广告的时机之间的这段时间内成功接收到广告,导致应用在冷启动时无法在首页成功展示广告。
示例性地,假设某个终端设备上的应用在多次冷启动的过程中,只有少数或部分次数可以成功在首页展示广告,其他次数首页可能为空白,则表示广告的展示成功率不高。或者,多个终端设备上的应用分别冷启动时,只有少数或部分的终端设备上的应用可以成功在首页展示广告,则也可以认为广告的展示成功率不高。
在此背景技术下,本公开提供了一种应用首页闪屏资源的加载方法,可以为首页闪屏资源的获取预留更多的时间,提高首页闪屏资源的展示成功率。
其中,首页闪屏资源是指在应用冷启动时展示在应用首页的资源。可选地,首页闪屏资源可以包括:广告、或其他推荐信息。在此对首页闪屏资源的具体类型不作限制。例如,首页闪屏资源可以是图片、视频、链接等。
一些实施例,该应用首页闪屏资源的加载方法的执行主体可以是终端设备、或者计算机、又或者服务器等。前述终端设备、或者计算机、又或者服务器上可以部署有目标应用。以终端设备为例,终端设备通过执行该方法可以实现在目标应用冷启动时,通过目标应用的首页来展示首页闪屏资源。另外一些实施例中,该应用首页闪屏资源的加载方法的执行主体还可以是目标应用,在此对该方法的执行主体不作限制。
示例性地,本公开实施例中,服务器可以是单独的一个服务器,或者,也可以是由多个服务器构成的服务器集群。部分实施方式中,服务器集群还可以是分布式集群。本公开对服务器的具体实现方式也不作限制。
可选地,本公开实施例中,终端设备可以是手机,也可以是平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等,本公开实施例对终端设备的具体类型不作限制。
下面对该应用首页闪屏资源的加载方法进行示例性说明。
图1为本公开实施例提供的应用首页闪屏资源的加载方法的流程示意图。如图1所示,该方法可以包括:
S101、在目标应用的冷启动阶段,初始化目标应用的组件;目标应用的组件包括符合优先初始化规则的第一组件、用于加载首页闪屏资源的资源组件、以及除第一组件和资源组件之外的第二组件。
一些实施例中,目标应用可以是在终端设备、或者计算机、又或者服务器上运行的系统级应用,如电子邮件、短信、日历、地图、浏览器和联系人管理等。另外一些实施例中,目标应用还可以是非系统级应用,如开发人员利用开发语言设计和编写的第三方应用,在此对目标应用的具体实现不作限制。
应当理解,目标应用可以在操作系统上运行。例如,终端设备上部署目标应用时,目标应用可以在终端设备中安装的操作系统上运行。
在本公开实施例中,操作系统可以是
Figure BDA0003824944860000061
系统、
Figure BDA0003824944860000062
系统、或者
Figure BDA0003824944860000063
系统、或者
Figure BDA0003824944860000064
系统、或者
Figure BDA0003824944860000065
系统、又或者
Figure BDA0003824944860000066
系统等,在此对操作系统的具体类型也不作限制。目标应用可以是能够适配前述任意一种操作系统的应用。
示例性地,以终端设备上部署有目标应用为例,用户可以在终端设备上执行启动目标应用的操作,如点击目标应用的图标。终端设备可以响应于用户启动目标应用的操作,启动目标应用。
本公开实施例中,在目标应用的冷启动阶段,可以初始化目标应用的组件。目标应用的组件可以包括划分为第一组件、资源组件、以及第二组件。
其中,第一组件可以包括一个或多个,且第一组件是符合预设的优先初始化规则的组件。优先初始化规则是指:应用在冷启动阶段进行组件的初始化时,需要优先将第一组件进行初始化,之后再进行资源组件和第二组件等其他组件的初始化。例如,目标应用的组件可以包括崩溃监测组件,崩溃监测组要用于监测其他组件发生的崩溃。当崩溃监测组件在其他组件之后初始化时,可能不能及时捕捉到其他组件发生的崩溃。所以,可以将崩溃监测组件设置为符合优先初始化规则的组件。
可选地,优先初始化规则可以是人为设定的,或者,由目标应用根据组件的特性自行确定的,在此不作限制。
资源组件也可以包括一个或多个,可以用于加载首页闪屏资源的资源组件。例如,目标应用的主线程可以通过调用资源组件加载接收到的首页闪屏资源。
第二组件也可以包括一个或多个。第二组件是指除第一组件和资源组件之外的其他组件,如:服务组件、视图组件等,在此对第二组件的类型和数量也不作限制。
需要说明的是,S101中所述的“目标应用的组件”是指在目标应用的冷启动阶段,执行“调用资源组件加载接收到的首页闪屏资源”的操作之前需要完成初始化的组件,并不包括执行“调用资源组件加载接收到的首页闪屏资源”的操作之后可能还需要进行初始化的其他组件。
S102、在第一时机发送首页闪屏资源获取请求,首页闪屏资源获取请求用于获取目标应用的首页闪屏资源;其中,第一时机在第一组件初始化的时机之后、且在第二组件初始化的时机之前。
示例性地,同样以终端设备部署目标应用为例,终端设备可以在第一时机向与首页闪屏资源相关的目标设备发送首页闪屏资源获取请求。与首页闪屏资源相关的目标设备,可以包括:存储首页闪屏资源的设备、或者能够从其他存储首页闪屏资源的设备中获取首页闪屏资源的设备。例如,目标设备可以是目标应用的后台服务器。目标设备在接收到首页闪屏资源获取请求后,可以向终端设备发送首页闪屏资源。
在本公开实施例中,第一时机可以在第一组件初始化的时机之后、且在第二组件初始化的时机之前。也即,终端设备可以在第一组件完成初始化、且第二组件开始初始化之前,发送首页闪屏资源获取请求。
S103、在初始化目标应用的组件之后,调用资源组件加载接收到的首页闪屏资源,以在目标应用启动时显示首页闪屏资源。
示例性地,同样以终端设备部署目标应用为例,终端设备可以在初始化目标应用的组件之后,调用资源组件加载接收到的首页闪屏资源,以在目标应用启动时显示首页闪屏资源。例如,调用资源组件加载接收到的首页闪屏资源,可以包括:通过资源组件获取接收到的首页闪屏资源,并对首页闪屏资源进行渲染,将首页闪屏资源显示在目标应用的首页(启动时的首页)。
可以理解的,在调用资源组件加载首页闪屏资源时,可能有如下两种情况:
情况1:成功接收到了首页闪屏资源。
情况2:还未接收到首页闪屏资源。如前述实施例中所述,情况2可能是网络延迟或设备性能较差所导致的。
本公开实施例中,通过在第一时机发送首页闪屏资源获取请求,并限定第一时机在第一组件初始化的时机之后、且在第二组件初始化的时机之前,可以将发送首页闪屏资源获取请求的时机进行提前,从而拉长从发送首页闪屏资源获取请求的时机至加载首页闪屏资源的时机之间的这段时间。通过拉长从发送首页闪屏资源获取请求的时机至加载首页闪屏资源的时机之间的这段时间,可以为首页闪屏资源的获取预留更多的时间。也即,可以拉长首页闪屏资源获取请求的执行空间。通过为首页闪屏资源的获取预留更多的时间,可以有效减少上述情况2发生的概率,从而提高首页闪屏资源的展示成功率。
由上所述,本公开实施例通过在目标应用的冷启动阶段,初始化目标应用的组件,目标应用的组件包括符合优先初始化规则的第一组件、用于加载首页闪屏资源的资源组件、以及除第一组件和资源组件之外的第二组件;在第一时机发送首页闪屏资源获取请求,首页闪屏资源获取请求用于获取目标应用的首页闪屏资源,第一时机在第一组件初始化的时机之后、且在第二组件初始化的时机之前;在初始化目标应用的组件之后,调用资源组件加载接收到的首页闪屏资源,可以将发送首页闪屏资源获取请求的时机进行提前,拉长从发送首页闪屏资源获取请求的时机至加载首页闪屏资源的时机之间的这段时间。通过拉长从发送首页闪屏资源获取请求的时机至加载首页闪屏资源的时机之间的这段时间,为首页闪屏资源的获取预留了更多的时间,拉长了首页闪屏资源获取请求的执行空间,有效提高了首页闪屏资源的展示成功率。
示例性地,图2为本公开实施例提供的首页闪屏资源获取请求发送时机的比较示意图。如图2所示,假设第一组件包括A组件、第二组件包括B组件、C组件以及其他业务组件,图2中,A组件初始化即第一组件初始化的过程;B组件初始化、C组件初始化、以及业务组件批量初始化即第二组件初始化的过程。现有的加载首页闪屏资源的方式中,资源组件初始化的时机在业务组件批量初始化的过程中,发送首页闪屏资源获取请求的时机为图2中所示的“原首页闪屏资源发送时机”。而本公开实施例中,发送首页闪屏资源获取请求的时机为图2中所示的“新首页闪屏资源发送时机”。可以看到,本公开实施例将发送首页闪屏资源获取请求的时机从业务组件批量初始化的过程,提前到了A组件初始化之后、B组件初始化之前。
图3为本公开实施例提供的首页闪屏资源获取请求的执行空间的比较示意图。首页闪屏资源获取请求的执行空间是指:从首页闪屏资源获取请求发送时机至首页闪屏资源获取截止时机这段时间。首页闪屏资源获取截止时机是指:开始加载首页闪屏资源的时机。
如图3所示,在启动目标应用至展示首页的过程中,与现有的加载首页闪屏资源的方式相比,本公开实施例中的“新首页闪屏资源发送时机”可以前移至接近于启动框架的初始位置,比现有方式中的“原首页闪屏资源发送时机”更靠前。本公开实施例中的“新首页闪屏资源截止时机”与现有方式中的“原首页闪屏资源截止时机”可以相同。相比较之下,本公开实施例中首页闪屏资源获取请求的执行空间更大,为首页闪屏资源的获取预留了更多的时间。需要说明的是,图3中“上屏时机”可以是指展示首页闪屏资源的时机,或者说首页曝光的时机。
以上实施例介绍了首页闪屏资源获取请求的发送时机,下面本公开实施例中,用于加载首页闪屏资源的资源组件进行初始化的时机进行说明。
一些实施例中,第一时机可以在资源组件初始化的时机之前。在上述初始化目标应用的组件的步骤之前,该方法还可以包括:剥离资源组件和首页闪屏资源获取请求之间的依赖关系。
其中,依赖关系可以是指:首页闪屏资源获取请求的发送依赖于资源组件的初始化。
示例性地,可以将资源组件和首页闪屏资源获取请求之间的依赖关系进行剥离,使得发送首页闪屏资源获取请求的时机不再依赖于资源组件是否初始化。剥离资源组件和首页闪屏资源获取请求之间的依赖关系之后,资源组件进行初始化的时机可以保持不变,如:可以和现有的加载首页闪屏资源的方式中资源组件进行初始化的时机保持相同。
也即,本实施例可以剥离资源组件和首页闪屏资源获取请求之间的依赖关系,仅提前首页闪屏资源获取请求的发送时机,而不改变资源组件进行初始化的时机。
本实施例通过剥离资源组件和首页闪屏资源获取请求之间的依赖关系,来实现提前首页闪屏资源获取请求的发送时机,可以使得首页闪屏资源获取请求更加轻量化,能够提高首页闪屏资源获取请求的发送成功率。例如,可以避免由于资源组件异常而导致无法成功发送首页闪屏资源获取请求。
示例性地,以图2所示为例,本实施例中,资源组件初始化的时机可以在业务组件批量初始化的过程中、但首页闪屏资源获取请求的发送时机提前到了A组件初始化之后、B组件初始化之前。
另外一些实施例中,第一时机和资源组件初始化的时机可以相同。在上述初始化目标应用的组件的步骤之前,该方法还可以包括:将资源组件初始化的时机调整在第一组件初始化的时机之后、且在第二组件初始化的时机之前。
例如,可以将资源组件初始化的时机调整在第一组件初始化的时机之后、且在第二组件初始化的时机之前,并在资源组件初始化时,发送首页闪屏资源获取请求。
示例性地,图4为本公开实施例提供的首页闪屏资源获取请求发送时机的另一比较示意图。如图4所示,假设第一组件包括A组件、第二组件包括B组件、C组件以及其他业务组件,与图2类似,图4中,A组件初始化即第一组件初始化的过程;B组件初始化、C组件初始化、以及业务组件批量初始化即第二组件初始化的过程。现有的加载首页闪屏资源的方式中,资源组件初始化的时机在业务组件批量初始化的过程中,发送首页闪屏资源获取请求的时机为图2中所示的“原首页闪屏资源发送时机”。而实施例中,可以将资源组件初始化的时机调整在第一组件初始化的时机之后、且在第二组件初始化的时机之前,并将资源组件初始化的时机作为发送首页闪屏资源获取请求的第一时机,即图2中所示的“新首页闪屏资源发送时机”。可以看到,本实施例也可以实现将发送首页闪屏资源获取请求的时机从业务组件批量初始化的过程,提前到了A组件初始化之后、B组件初始化之前。
本实施例中,通过将资源组件初始化的时机调整在第一组件初始化的时机之后、且在第二组件初始化的时机之前,来实现提前首页闪屏资源获取请求的发送时机,无需改变资源组件和首页闪屏资源获取请求的现有依赖关系,简化了提前首页闪屏资源获取请求的发起时机的实现。
可选地,目标应用中用于显示首页闪屏资源的首页视图层级包括:根控制器和业务控制器。根控制器和业务控制器分别包括:视图调用方法,视图调用方法的执行顺序为从根控制器至业务控制器。上述调用资源组件加载接收到的首页闪屏资源的步骤,可以包括:在第二时机,调用资源组件加载接收到的首页闪屏资源;其中,第二时机在业务控制器的视图调用方法执行的时机之后。
示例性地,以目标应用为适配于IOS系统或MAC系统的应用为例,图5为本公开实施例提供的目标应用中首页视图层级的示意图。如图5所示,目标应用中用于显示首页闪屏资源的首页视图层级可以包括:根控制器和业务控制器。根控制器可以为RootController,业务控制器可以为业务ViewController。RootController包括容器ViewController1,ViewController1包括容器ViewController2,ViewController2包括业务ViewController。也即,从RootController至业务ViewController为父容器至子容器的关系。RootController和业务ViewController分别包括的视图调用方法可以为viewWillAppear方法。viewWillAppear方法的执行顺序是从根控制器到业务控制器。
现有的加载首页闪屏资源的方式中,加载首页闪屏资源的时机(或称为首页闪屏资源获取截止时机)为业务ViewController的viewWillAppear方法执行的时机。
本实施例中,可以在业务ViewController的viewWillAppear方法执行的时机之后确定一个时机作为第二时机,并在第二时机,调用资源组件加载接收到的首页闪屏资源。相较于现有的加载首页闪屏资源的方式而言,通过将第二时机限定在业务ViewController的viewWillAppear方法执行的时机之后,可以延后首页闪屏资源获取截止时机,进一步拉长从发送首页闪屏资源获取请求的时机至加载首页闪屏资源的时机之间的这段时间(即进一步拉长首页闪屏资源获取请求的执行空间),为首页闪屏资源的获取预留更多的时间,从而进一步提高首页闪屏资源的展示成功率。
示例性地,图6为本公开实施例提供的首页闪屏资源获取请求的执行空间的另一比较示意图。如图6所示,在启动目标应用至展示首页的过程中,与现有的加载首页闪屏资源的方式相比,本实施例中的“新首页闪屏资源发送时机”可以前移至接近于启动框架的初始位置,比现有方式中的“原首页闪屏资源发送时机”更靠前。而且,本实施例中的“新首页闪屏资源截止时机”比现有方式中的“原首页闪屏资源截止时机”更靠后。相比较之下,本实施例中进一步扩大了首页闪屏资源获取请求的执行空间,为首页闪屏资源的获取预留了更多的时间。
一些实现方式中,根控制器和业务控制器分别还包括:绘图方法,绘图方法的执行顺序为从业务控制器至根控制器,且绘图方法执行的时机在业务控制器的视图调用方法执行的时机之后。第二时机和根控制器的绘图方法执行的时机相同。
也即,本实现方式中,可以将根控制器的绘图方法执行的时机作为加载首页闪屏资源的第二时机。
示例性地,同样以目标应用为适配于IOS系统或MAC系统的应用为例,假设图5所给的示例中,RootController和业务ViewController分别包括的绘图方法为drawRect方法。图7为本公开实施例提供的图5所示的首页视图层级中drawRect方法的执行顺序示意图。如图7所示,drawRect方法的执行顺序可以为从业务ViewController至RootController。其中,drawRect方法是在viewWillAppear方法执行过后才开始执行的,即drawRect方法执行的时机在viewWillAppear方法执行的时机之后。
本实现方式中,可以将RootController的drawRect方法执行的时机作为加载首页闪屏资源的第二时机。通过将RootController的drawRect方法执行的时机作为加载首页闪屏资源的第二时机,可以实现在不影响目标应用的业务性能及目标应用的架构整洁度的前提下,使得开始加载首页闪屏资源尽可能晚,首页闪屏资源获取请求的执行空间可以最大化,进一步提高首页闪屏资源的展示成功率。
例如,同样以目标应用为适配于IOS系统或MAC系统的应用为例,适配于IOS系统或MAC系统的应用中,针对用户界面(user interface,UI)相关处理可以包括三个部分,分别为:主线程的运行循环(NSRunLoop)、渲染线程的渲染循环(RenderLoop)、显示(Display)。而本公开实施例提供的应用首页闪屏资源的加载中,对首页闪屏资源获取请求发送时机和首页闪屏资源获取截止时机的调整实际上都集中于NSRunLoop阶段。对于目标应用而言,从原理层面执行完成RunLoop周期后,会将CPU计算任务提交给RenderLoop进行下一步处理。所以,由于本公开实施例中,对首页闪屏资源获取请求发送时机和首页闪屏资源获取截止时机的调整后,代码执行时机仍然在一个RunLoop周期内,且同时RunLoop执行的任务总量没变。因此,RunLoop提交给RenderLoop进行UI渲染操作的时机也并不会变化。从而,不会对渲染层面的上屏时机产生影响,并不会影响目标应用的业务性能及目标应用的架构整洁度。
其他一些实现方式中,也可以以在业务ViewController的viewWillAppear方法执行的时机之后任意确定一个时机作为第二时机,例如,第二时机还可以是业务ViewController的drawRect方法执行的时机,在此不作限制。
应当理解,前述部分示例中虽然以目标应用为适配于IOS系统或MAC系统的应用为例进行了说明,但本公开实施例同样适用于目标应用适配于其他操作系统的场景。在目标应用适配于其他操作系统的场景中,上述根控制器、业务控制器、视图调用方法、绘图方法等也可能替换为其他实现方式或方法,又或者更换为其他名称,在此不再一一说明。
一些实施例中,第一组件可以包括以下一种或多种:崩溃监测组件、启动速度监测组件、异常修复组件。在此对第一组件的类型及数量不作限制。
示例性地,启动速度监测组件可以监测到第二组件和资源组件的启动阶段耗时。如果启动速度监测组件初始化时机晚,那么在启动速度监测组件之前初始化的组件耗时监测不到,其作用也就打折扣了。
异常修复组件也需要在第二组件和资源组件之前进行初始化,以对第二组件和资源组件进行异常修复。
换言之,第一组件可以是目标应用中初始化优先级较高的一些组件。
示例性实施例中,本公开实施例还提供一种应用首页闪屏资源的加载装置,可以用于实现如前述实施例所述的应用首页闪屏资源的加载方法。图8为本公开实施例提供的应用首页闪屏资源的加载装置的组成示意图。如图8所示,该装置可以包括:初始化单元801、资源请求单元802、渲染单元803。
初始化单元801,用于在目标应用的冷启动阶段,初始化目标应用的组件;目标应用的组件包括符合优先初始化规则的第一组件、用于加载首页闪屏资源的资源组件、以及除第一组件和资源组件之外的第二组件;
资源请求单元802,用于在第一时机发送首页闪屏资源获取请求,首页闪屏资源获取请求用于获取目标应用的首页闪屏资源;其中,第一时机在第一组件初始化的时机之后、且在第二组件初始化的时机之前;
渲染单元803,用于在初始化目标应用的组件之后,调用资源组件加载接收到的首页闪屏资源,以在目标应用启动时显示首页闪屏资源。
可选地,第一时机在资源组件初始化的时机之前。图9为本公开实施例提供的应用首页闪屏资源的加载装置的另一组成示意图。如图9所示,该装置可以包括:依赖分离单元804,用于在初始化单元801初始化目标应用的组件之前,剥离资源组件和首页闪屏资源获取请求之间的依赖关系。
可选地,第一时机和资源组件初始化的时机相同。图10为本公开实施例提供的应用首页闪屏资源的加载装置的又一组成示意图。如图10所示,该装置可以包括:组件调整单元805,用于在初始化单元801初始化目标应用的组件之前,将资源组件初始化的时机调整在第一组件初始化的时机之后、且在第二组件初始化的时机之前。
可选地,目标应用中用于显示首页闪屏资源的首页视图层级包括:根控制器和业务控制器;根控制器和业务控制器分别包括:视图调用方法,视图调用方法的执行顺序为从根控制器至业务控制器。
渲染单元803,具体用于在第二时机,调用资源组件加载接收到的首页闪屏资源;其中,第二时机在业务控制器的视图调用方法执行的时机之后。
可选地,根控制器和业务控制器分别还包括:绘图方法,绘图方法的执行顺序为从业务控制器至根控制器,且绘图方法执行的时机在业务控制器的视图调用方法执行的时机之后;第二时机和根控制器的绘图方法执行的时机相同。
可选地,第一组件包括以下一种或多种:崩溃监测组件、启动速度监测组件、异常修复组件。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质、一种计算机程序产品、以及一种终端设备。
示例性实施例中,电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如以上实施例所述的方法。该电子设备可以是上述终端设备、或者计算机、又或者服务器等。
示例性实施例中,可读存储介质可以是存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行根据以上实施例所述的方法。
示例性实施例中,计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现根据以上实施例所述的方法。
示例性实施例中,终端设备部署有目标应用;当所述目标应用冷启动时,所述终端设备实现根据以上实施例所述的方法。终端设备的具体产品形态可以参考前述实施例中所述,不再赘述。
图11示出了可以用来实施本公开的实施例的示例电子设备1100的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图11所示,电子设备1100包括计算单元1101,其可以根据存储在只读存储器(ROM)1102中的计算机程序或者从存储单元1108加载到随机访问存储器(RAM)1103中的计算机程序,来执行各种适当的动作和处理。在RAM 1103中,还可存储设备1100操作所需的各种程序和数据。计算单元1101、ROM 1102以及RAM 1103通过总线1104彼此相连。输入/输出(I/O)接口1105也连接至总线1104。
电子设备1100中的多个部件连接至I/O接口1105,包括:输入单元1106,例如键盘、鼠标等;输出单元1107,例如各种类型的显示器、扬声器等;存储单元1108,例如磁盘、光盘等;以及通信单元1109,例如网卡、调制解调器、无线通信收发机等。通信单元1109允许电子设备1100通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1101可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1101的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1101执行上文所描述的各个方法和处理,例如应用首页闪屏资源的加载方法。例如,在一些实施例中,应用首页闪屏资源的加载方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1108。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1102和/或通信单元1109而被载入和/或安装到电子设备1100上。当计算机程序加载到RAM 1103并由计算单元1101执行时,可以执行上文描述的应用首页闪屏资源的加载方法的一个或多个步骤。备选地,在其他实施例中,计算单元1101可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行应用首页闪屏资源的加载方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (16)

1.一种应用首页闪屏资源的加载方法,所述方法包括:
在目标应用的冷启动阶段,初始化所述目标应用的组件;所述目标应用的组件包括符合优先初始化规则的第一组件、用于加载首页闪屏资源的资源组件、以及除所述第一组件和所述资源组件之外的第二组件;
在第一时机发送首页闪屏资源获取请求,所述首页闪屏资源获取请求用于获取所述目标应用的首页闪屏资源;其中,所述第一时机在所述第一组件初始化的时机之后、且在所述第二组件初始化的时机之前;
在初始化所述目标应用的组件之后,调用所述资源组件加载接收到的所述首页闪屏资源,以在所述目标应用启动时显示所述首页闪屏资源。
2.根据权利要求1所述的方法,所述第一时机在所述资源组件初始化的时机之前;
所述初始化所述目标应用的组件之前,所述方法还包括:
剥离所述资源组件和所述首页闪屏资源获取请求之间的依赖关系。
3.根据权利要求1所述的方法,所述第一时机和所述资源组件初始化的时机相同;
所述初始化所述目标应用的组件之前,所述方法还包括:
将所述资源组件初始化的时机调整在所述第一组件初始化的时机之后、且在所述第二组件初始化的时机之前。
4.根据权利要求1-3任一项所述的方法,所述目标应用中用于显示所述首页闪屏资源的首页视图层级包括:根控制器和业务控制器;所述根控制器和所述业务控制器分别包括:视图调用方法,所述视图调用方法的执行顺序为从所述根控制器至所述业务控制器;
所述调用所述资源组件加载接收到的所述首页闪屏资源,包括:
在第二时机,调用所述资源组件加载接收到的所述首页闪屏资源;其中,所述第二时机在所述业务控制器的视图调用方法执行的时机之后。
5.根据权利要求4所述的方法,所述根控制器和所述业务控制器分别还包括:绘图方法,所述绘图方法的执行顺序为从所述业务控制器至所述根控制器,且所述绘图方法执行的时机在所述业务控制器的视图调用方法执行的时机之后;
所述第二时机和所述根控制器的绘图方法执行的时机相同。
6.根据权利要求1-5任一项所述的方法,所述第一组件包括以下一种或多种:崩溃监测组件、启动速度监测组件、异常修复组件。
7.一种应用首页闪屏资源的加载装置,所述装置包括:
初始化单元,用于在目标应用的冷启动阶段,初始化所述目标应用的组件;所述目标应用的组件包括符合优先初始化规则的第一组件、用于加载首页闪屏资源的资源组件、以及除所述第一组件和所述资源组件之外的第二组件;
资源请求单元,用于在第一时机发送首页闪屏资源获取请求,所述首页闪屏资源获取请求用于获取所述目标应用的首页闪屏资源;其中,所述第一时机在所述第一组件初始化的时机之后、且在所述第二组件初始化的时机之前;
渲染单元,用于在初始化所述目标应用的组件之后,调用所述资源组件加载接收到的所述首页闪屏资源,以在所述目标应用启动时显示所述首页闪屏资源。
8.根据权利要求7所述的装置,所述第一时机在所述资源组件初始化的时机之前;所述装置还包括:
依赖分离单元,用于在所述初始化单元初始化所述目标应用的组件之前,剥离所述资源组件和所述首页闪屏资源获取请求之间的依赖关系。
9.根据权利要求7所述的装置,所述第一时机和所述资源组件初始化的时机相同;所述装置还包括:
组件调整单元,用于在所述初始化单元初始化所述目标应用的组件之前,将所述资源组件初始化的时机调整在所述第一组件初始化的时机之后、且在所述第二组件初始化的时机之前。
10.根据权利要求7-9任一项所述的装置,所述目标应用中用于显示所述首页闪屏资源的首页视图层级包括:根控制器和业务控制器;所述根控制器和所述业务控制器分别包括:视图调用方法,所述视图调用方法的执行顺序为从所述根控制器至所述业务控制器;
所述渲染单元,具体用于在第二时机,调用所述资源组件加载接收到的所述首页闪屏资源;其中,所述第二时机在所述业务控制器的视图调用方法执行的时机之后。
11.根据权利要求10所述的装置,所述根控制器和所述业务控制器分别还包括:绘图方法,所述绘图方法的执行顺序为从所述业务控制器至所述根控制器,且所述绘图方法执行的时机在所述业务控制器的视图调用方法执行的时机之后;
所述第二时机和所述根控制器的绘图方法执行的时机相同。
12.根据权利要求7-11任一项所述的装置,所述第一组件包括以下一种或多种:崩溃监测组件、启动速度监测组件、异常修复组件。
13.一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6任一项所述的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行根据权利要求1-6任一项所述的方法。
15.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-6任一项所述的方法。
16.一种终端设备,所述终端设备部署有目标应用;当所述目标应用冷启动时,所述终端设备实现根据权利要求1-6任一项所述的方法。
CN202211054457.1A 2022-08-31 2022-08-31 应用首页闪屏资源的加载方法及装置 Pending CN115437709A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211054457.1A CN115437709A (zh) 2022-08-31 2022-08-31 应用首页闪屏资源的加载方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211054457.1A CN115437709A (zh) 2022-08-31 2022-08-31 应用首页闪屏资源的加载方法及装置

Publications (1)

Publication Number Publication Date
CN115437709A true CN115437709A (zh) 2022-12-06

Family

ID=84245263

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211054457.1A Pending CN115437709A (zh) 2022-08-31 2022-08-31 应用首页闪屏资源的加载方法及装置

Country Status (1)

Country Link
CN (1) CN115437709A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117492896A (zh) * 2023-11-13 2024-02-02 书行科技(北京)有限公司 应用显示方法、装置、电子设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117492896A (zh) * 2023-11-13 2024-02-02 书行科技(北京)有限公司 应用显示方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
EP3813339B1 (en) Acquisition method, apparatus, device and storage medium for applet data
CN112540806B (zh) 一种小程序页面渲染方法、装置、电子设备及存储介质
CN113934464A (zh) Linux系统中启动安卓应用的方法、装置和电子设备
CN114327685B (zh) 一种小程序运行速度优化方法及装置
CN114840323A (zh) 任务处理方法、装置、系统、电子设备以及存储介质
CN111858040A (zh) 一种资源调度方法和装置
CN114035865B (zh) 启动小程序的方法、装置、设备以及存储介质
CN115437709A (zh) 应用首页闪屏资源的加载方法及装置
EP3951687A2 (en) Business content output method, apparatus, storage medium and program product
CN113986497A (zh) 基于多租户技术的队列调度方法、装置及系统
CN115129429B (zh) 容器应用管理方法、装置、电子设备及存储介质
CN112667368A (zh) 一种任务数据处理方法和装置
CN113568706B (zh) 针对业务的容器调整方法、装置、电子设备和存储介质
CN113377295B (zh) 多生产者单消费者的数据存储和读取方法、装置、设备
CN112965836B (zh) 服务控制方法、装置、电子设备及可读存储介质
CN113867920A (zh) 任务处理方法、装置、电子设备和介质
CN114237755A (zh) 应用运行方法、装置、电子设备以及存储介质
CN113204426A (zh) 资源池的任务处理方法及相关设备
CN111580882A (zh) 应用程序启动方法、装置、计算机系统和介质
CN114428646B (zh) 一种数据处理方法、装置、电子设备及存储介质
CN113535187B (zh) 服务上线方法、服务更新方法及服务提供方法
CN117675897A (zh) 应用交互方法、装置、设备及存储介质
CN118069731A (zh) 一种数据处理方法和装置
CN115630245A (zh) 一种页面加载方法、装置、电子设备及存储介质
CN117032859A (zh) Ui界面和业务应用分层开发装置、方法、设备及介质

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