CN111782326A - 控制页面刷新的方法、装置、计算机设备和存储介质 - Google Patents
控制页面刷新的方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111782326A CN111782326A CN202010621489.XA CN202010621489A CN111782326A CN 111782326 A CN111782326 A CN 111782326A CN 202010621489 A CN202010621489 A CN 202010621489A CN 111782326 A CN111782326 A CN 111782326A
- Authority
- CN
- China
- Prior art keywords
- resource scheduling
- message
- priority
- page
- executing
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 97
- 230000008569 process Effects 0.000 claims abstract description 45
- 230000004044 response Effects 0.000 claims abstract description 5
- 238000012545 processing Methods 0.000 claims description 75
- 238000011084 recovery Methods 0.000 claims description 48
- 238000005457 optimization Methods 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 description 13
- 238000009877 rendering Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本公开提供了一种控制页面刷新的方法、装置、计算机设备和存储介质,该方法包括:响应于页面刷新操作,确定与页面刷新过程关联的多种资源调度操作,并确定所述多种资源调度操作对应的优先级;其中,所述优先级包括第一优先级和第二优先级;所述第一优先级高于第二优先级;通过调用第一优先级的各个资源调度操作对应的资源调度线程,执行第一优先级的资源调度操作,以进行页面内容的更新展示;在检测到页面内容更新展示完成时,通过调用第二优先级的各个资源调度操作对应的资源调度线程,执行所述第二优先级的资源调度操作,以完成所述页面刷新过程中与页面内容的更新展示无关的操作,本公开能够提高页面刷新的流畅度。
Description
技术领域
本公开涉及通信技术领域,具体而言,涉及一种控制页面刷新的方法、装置、计算机设备和存储介质。
背景技术
当终端设备安装的应用较多时,在应用运行中,尤其是进行页面刷新时经常会出现页面卡顿、不流畅的情况。
应用的运行离不开终端设备的各种处理资源,比如CPU、内存等,但是,终端设备的处理资源是有限的。在进行页面刷新的过程中执行的操作很多,这些操作对终端设备资源需求量较大,从而容易导致资源调度不及时,进而出现页面刷新时间较长,页面卡顿的情况。
发明内容
本公开实施例至少提供一种控制页面刷新的方法、装置、计算机设备和存储介质,以提高页面刷新的流畅度。
第一方面,本申请实施例提供了一种控制页面刷新的方法,所述方法包括:
响应于页面刷新操作,确定与页面刷新过程关联的多种资源调度操作,并确定所述多种资源调度操作对应的优先级;其中,所述优先级包括第一优先级和第二优先级;所述第一优先级高于第二优先级;
通过调用第一优先级的各个资源调度操作对应的资源调度线程,执行第一优先级的资源调度操作,以进行页面内容的更新展示;
在检测到页面内容更新展示完成时,通过调用第二优先级的各个资源调度操作对应的资源调度线程,执行所述第二优先级的资源调度操作,以完成所述页面刷新过程中与页面内容的更新展示无关的操作。
在一种实施方式中,所述第二优先级的资源调度操作包括内存回收操作;所述方法还包括:
在开始执行页面刷新操作时,控制执行内存回收操作的资源调度线程暂停进行内存回收操作;
在检测到页面内容更新展示完成时,通过调用第二优先级的各个资源调度操作对应的资源调度线程,执行所述第二优先级的资源调度操作,包括:
在检测到页面内容更新展示完成时,通过调用执行内存回收操作的资源调度线程,执行内存回收操作。
在一种实施方式中,所述第一优先级的资源调度操作包括第一消息写入操作和第一消息处理操作;所述第一消息为进行页面内容更新展示必须执行的消息;
通过调用第一优先级的各个资源调度操作对应的资源调度线程,执行第一优先级的资源调度操作,包括:
通过调用执行第一消息写入操作的资源调度线程,将所述第一消息写入第一消息队列,并通过调用执行第一消息处理操作的资源调度线程,从所述第一消息队列中依次提取各条第一消息进行处理。
在一种实施方式中,所述第一消息中包括页面绘制消息;
所述通过调用执行第一消息写入操作的资源调度线程,将所述第一消息写入第一消息队列,包括:
通过调用执行第一消息写入操作的资源调度线程,将所述页面绘制消息从所述第一消息队列的队首写入;
所述通过调用执行第一消息处理操作的资源调度线程,从所述第一消息队列中依次提取各条第一消息进行处理,包括:
通过调用执行第一消息处理操作的资源调度线程,从所述第一消息队列的队首依次提取各条第一消息进行处理。
在一种实施方式中,所述第一优先级的资源调度操作包括第二消息写入操作,所述第二优先级的资源调度操作包括第二消息处理操作;所述第二消息为进行页面内容更新展示非必须执行的消息;
通过调用第一优先级的各个资源调度操作对应的资源调度线程,执行第一优先级的资源调度操作,包括:
通过调用执行第二消息写入操作的资源调度线程,将所述第二消息写入第二消息队列;
在检测到页面内容更新展示完成时,通过调用第二优先级的各个资源调度操作对应的资源调度线程,执行所述第二优先级的资源调度操作,包括:
在检测到页面内容更新展示完成时,通过调用执行第二消息处理操作的资源调度线程,从所述第二消息队列中依次提取各条第二消息进行处理。
在一种实施方式中,所述方法还包括:
在开始页面刷新时,若检测到应用正在执行图形优化操作,则停止执行图形优化操作;
在所述页面刷新过程完成后,开始执行与刷新后的页面内容相关的图形优化操作。
第二方面,本申请实施例提供了一种控制页面刷新的装置,所述装置包括:
确定模块,用于响应于页面刷新操作,确定与页面刷新过程关联的多种资源调度操作,并确定所述多种资源调度操作对应的优先级;其中,所述优先级包括第一优先级和第二优先级;所述第一优先级高于第二优先级;
第一处理模块,用于通过调用第一优先级的各个资源调度操作对应的资源调度线程,执行第一优先级的资源调度操作,以进行页面内容的更新展示;
第二处理模块,用于在检测到页面内容更新展示完成时,通过调用第二优先级的各个资源调度操作对应的资源调度线程,执行所述第二优先级的资源调度操作,以完成所述页面刷新过程中与页面内容的更新展示无关的操作。
在一种实施方式中,所述第二优先级的资源调度操作包括内存回收操作;所述第一处理模块还用于:在开始执行页面刷新操作时,控制执行内存回收操作的资源调度线程暂停进行内存回收操作;
所述第二处理模块用于:
在检测到页面内容更新展示完成时,通过调用执行内存回收操作的资源调度线程,执行内存回收操作。
第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述任一方面,或任一方面中任一种可能的实施方式中的步骤。
第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述任一方面,或任一方面中任一种可能的实施方式中的步骤。
本公开实施例提供的控制页面刷新的方法,在页面刷新过程中,根据页面内容更新展示对于各种资源调度操作的依赖性,设置页面刷新涉及的各种资源调度操作的优先级,根据各个资源调度操作的优先级,在页面刷新过程中执行进行页面内容更新展示所必须的高优先级的资源调度操作,在页面内容更新展示完成之后再执行进行页面内容更新展示非必须的低优先级的资源调度操作,从而减少了在页面刷新过程中执行的资源调度操作,可以确保页面刷新过程中进行页面内容更新展示所依赖的资源调度操作的顺利进行,提高了页面刷新的流畅度。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种控制页面刷新的方法的流程示意图;
图2示出了本公开实施例所提供的一种控制页面刷新的装置的结构示意图;
图3示出了本公开实施例所提供的一种计算机设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
用户界面(User Interface,UI)框架(Flutter)技术使用了图形处理(Skia)引擎调用开放式图形库(Open Graphics Library,OpenGL)来进行底层的图形渲染,采用上述技术具有高性能的特性。但是,Flutter采用Skia引擎进行渲染并不是说就不会有性能问题了,在转场动画、页面滑动、或者低端机进行页面刷新时,UI线程会执行与页面绘制相关的绘制操作,以及其它与页面绘制不相关的操作(如执行future消息),这些操作需要大量的终端设备资源,可能会出现资源调度不及时问题,导致存在一定的卡顿,那么,在设备资源(如处理器、图形处理器、内存和IO设备等)有限的情况下,如何更好地调度设备资源,以实现应用使用过程中的流畅度最大化成为一个需要解决的问题。
基于上述研究,本公开实施例提供了一种控制页面刷新的方法,在页面刷新过程中,根据页面内容更新展示对于各种资源调度操作的依赖性,设置页面刷新涉及的各种资源调度操作的优先级,根据各个资源调度操作的优先级,在页面刷新过程中执行进行页面内容更新展示所必须的高优先级的资源调度操作,在页面内容更新展示完成之后再执行进行页面内容更新展示非必须的低优先级的资源调度操作,从而减少了在页面刷新过程中执行的资源调度操作,可以确保页面刷新过程中进行页面内容更新展示所依赖的资源调度操作的顺利进行,提高了页面刷新的流畅度。
需要说明的是,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人对本公开做出的贡献。
下面将结合本公开中附图,对本公开中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种控制页面刷新的方法进行详细介绍,本公开实施例所提供的控制页面刷新的方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、蜂窝电话、无绳电话、个人数字处理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该控制页面刷新的方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
下面以执行主体为终端设备为例对本公开实施例提供的控制页面刷新的方法加以说明。
参见图1所示,为本公开实施例提供的控制页面刷新的方法的流程图,具体包括以下步骤:
S101,响应于页面刷新操作,确定与页面刷新过程关联的多种资源调度操作,并确定所述多种资源调度操作对应的优先级;其中,所述优先级包括第一优先级和第二优先级,所述第一优先级高于第二优先级。
S102,通过调用第一优先级的各个资源调度操作对应的资源调度线程,执行第一优先级的资源调度操作,以进行页面内容的更新展示。
S103,在检测到页面内容更新展示完成时,通过调用第二优先级的各个资源调度操作对应的资源调度线程,执行所述第二优先级的资源调度操作,以完成所述页面刷新过程中与页面内容的更新展示无关的操作。
在S101中,页面刷新操作可以为进行不同页面切换的刷新操作,也可以为对同一页面中的内容进行更新的刷新操作,该页面刷新操作可以包括但不限于页面切换操作、左右滑动操作、或者上下滑动操作。
比如,应用中的页面A和页面B进行切换时,页面A和页面B为不同栏目下的页面,用户可以点击页面A对应的栏目按钮或页面B对应的栏目按钮实现切换,当用户位于A页面时,用户可以点击菜单栏中与页面B对应的栏目按钮切换到页面B,当用户位于B页面时,用户可以点击菜单栏中与页面A对应的栏目按钮切换到页面A,除了通过菜单栏按钮进行切换外,也可以在页面A或页面B中执行左右滑动进行页面切换。
又如,在应用中的同一个页面进行内容浏览时,用户可以通过执行上下滑动操作进行页面内容更新,也可以执行左右滑动操作查看页面中的更多内容(如图片、列表等)。
在开始执行页面刷新操作时,触发资源调度,即,在不同的时间点执行不同优先级的资源调度操作。
资源调度操作通过对有限的资源进行调度,以完成对应的页面刷新操作,在确定资源调度操作的优先级后,调用不同的资源调度线程执行对应的资源调度操作,实现在页面刷新过程中优先执行高优先级的页面刷新操作,在页面内容更新展示完成后,执行低优先级的页面刷新操作,在完成页面刷新过程中与页面内容的更新展示无关的操作的同时,减少了在页面刷新过程中执行的资源调度操作,提高页面刷新流畅度。
资源调度操作包括第一消息写入操作、第一消息处理操作、内存回收操作、第二消息写入操作、和第二消息处理操作等操作,这里,第一消息为页面内容更新展示所依赖的消息,第二消息则与页面内容更新展示关联性较弱,以下针对不同的资源调度操作进行介绍。
一、在第二优先级的资源调度操作包括内存回收操作的情况下:
在应用运行过程中,可以按照内存回收机制进行内存回收操作,以应用中的页面刷新过程为例进行说明。
在页面刷新过程中,通过UI线程进行页面绘制,UI线程在接收到驱动层触发的同步信号后,进行页面绘制,在页面绘制完成后,驱动层触发内存回收信号(NotifyIdle信号),UI线程指示Flutter的框架(Dart)层进行内存回收,也就是,利用页面绘制的空闲时长进行回收,而内存回收的时长并是一个固定的时长,需要在实际回收场景中才可以确定内存回收时长,当内存回收时长超过空闲时长后,会导致丢帧,从而产生页面卡顿。
比如,在页面刷新场景下,驱动层每隔16.7ms触发一次同步信号,UI线程绘制当前帧页面花费10ms,绘制完当前帧页面后的空闲时长为6.7ms,当内存回收时长为10ms时,该内存回收时长超过空闲时长,UI线程在第16.7ms并不会接收到同步信号,从而导致丢失一帧页面。
为了抑制页面刷新过程中内存回收可能带来的卡顿,在开始执行页面刷新操作时,也就是,在确定当前页面为不同页面切换场景或者同一页面内容浏览场景时,控制执行内存回收操作的资源调度线程暂停进行内存回收操作,即在页面内容更新完成之前不执行内存回收操作,也即在页面内容更新展示完成之前不进行内存回收,而在页面内容更新展示完成时,再执行内存回收操作,从而避免了由于内存回收时长不确定导致的丢帧,在一定程度上提高了页面刷新的流畅度。
在检测到页面内容更新展示完成时,UI线程通过调用能够执行内存回收操作的资源调度线程执行内存回收操作,以回收执行页面刷新操作所占用的内存,将有限的内存提供给其他功能的操作使用,回收内存的时机可以为页面停止更新后便执行,也可以在页面内容更新完成后的其它场景进行,可以根据实际情况确定。
二、在第一优先级的资源调度操作包括第一消息写入操作和第一消息处理操作的情况下:
第一消息为进行页面内容更新展示必须执行的消息,比如页面绘制消息(如FrameRequest消息、BeginFrame消息、DrawLastLayerTree消息等)、其他需要在页面内容更新展示完成之前执行的非页面绘制消息,可以根据实际的应用场景确定;第一消息写入操作用于在消息队列写入第一消息,第一消息处理操作用于执行消息队列中的消息。
在开始页面刷新时,即,页面内容更新展示完成之前,UI线程会通过调用执行第一消息写入操作的资源调度线程,将第一消息写入第一消息队列,在需要执行写入的第一消息时,UI线程通过调用执行第一消息处理操作的资源调度线程,从第一消息队列中依次提取各条第一消息进行处理。
这里,在写入第一消息时,可以通过一个资源调度线程将消息写入第一消息队列,也可以通过多个资源调度线程将消息写入第一消息队列,可以根据场景需求确定;第一消息队列为页面内容更新展示完成之前必须执行的消息队列。
UI线程在绘制页面时,UI线程会按照消息的接收时间,将用于绘制页面的页面绘制消息和其他需要执行的消息,从队尾写入第一消息队列的,UI线程依次从第一消息队列的头部取消息并执行。
当第一消息队列中存在多条不重要的非UI绘制信息位于重要的页面绘制消息之前时,会优先执行位于重要的页面绘制消息之前的消息,再执行重要的页面绘制消息,导致重要的页面绘制消息延后执行,在一定程度上会导致页面卡顿。
为了避免由于页面绘制消息延后执行导致的页面卡顿,预先设置多条页面绘制消息,在页面刷新过程中,只要监听到预设的页面绘制消息后,便将监听到的页面绘制消息写到第一消息队列的最前端,以保证优先执行页面绘制消息,以下详述。
在监听到页面绘制消息后,可以调用用于执行第一消息写入操作的资源调度线程(可以为一个或多个),将页面绘制消息从第一消息队列的队首写入,比如,监听到多个绘制功能的页面绘制消息,UI线程针对每个功能的页面绘制消息,通过调用能够写入对应功能页面绘制消息的资源调度线程,将该页面绘制消息从第一消息队列的队首写入,或者,UI线程调用能够执行页面绘制消息写入操作的一个资源调度线程,将监听到的各个页面绘制消息从第一消息队列的队首写入。此处需要注意,写入页面绘制消息的资源调度线程的数目可以根据实际场景的需求确定。
在监听到其他需要执行的消息后,调用能够执行第一消息写入操作的一个或几个资源调度线程,将其他需要在页面内容更新展示完成之前执行的消息从第一消息队列的队尾写入。其中,调度的能够写入其他需要执行的消息的资源调度线程的数目可以根据实际场景确定,能够写入其它需要执行的消息的资源调度线程和写入页面绘制消息的资源调度线程可以为相同的线程,也可以为不同的线程。
例如,以一个页面绘制消息和一个其他需要执行的消息为例进行说明,预设的页面绘制消息为A1,其他需要执行的消息包括B1,第一消息队列中已存在消息C1和消息C2,且位于消息队列的第一位和第二位,当监听到页面绘制消息A1后,UI线程调用能够移动消息的线程将第一消息队列中的消息C1和消息C2同时向后移一位,移动后,消息C1位于第一消息队列的第二位,消息C2位于第一消息队列的第三位,UI线程调用写入页面绘制消息的线程将页面绘制消息A1写入到第一消息队列的第一位,在消息A1后监听到B1消息后,UI线程调用写入其它需要执行的线程将消息B1写入到第一消息队列的第四位。
在执行第一消息队列中的消息时,可以调用能够执行第一消息处理操作的资源调度线程,从第一消息队列的队首依次提取各条第一消息进行处理,这样,可以优先执行页面绘制消息,避免了页面绘制消息的延后执行,提高了页面刷新的流畅度。
例如,延续上一个示例,UI线程调用能够执行第一消息处理操作的资源调度线程从第一消息队列中取出消息A1并执行,随后,该线程依次取出消息C1、消息C2、消息B1并分别执行。
三、在第二优先级的资源调度操作包括第二消息写入操作和第二消息处理操作的情况下:
第二消息为进行页面内容更新展示非必须执行的消息,比如,与页面绘制不相关的未来(Future)消息、平台(PlatformMessage)消息等;第二消息写入操作用于在第二消息队列写入消息,第二消息队列一般为低优先级的消息队列,该消息队列可以在页面更新显示完成之后执行。
UI线程在绘制页面时,会将与页面绘制不相关的消息写入到第一消息队列,那么,UI线程在页面绘制过程中会执行与页面绘制不相关的消息,执行与页面绘制不相关的消息也可能会降低页面流畅度。
为了减少在页面内容更新展示完成之前执行与页面绘制不相关的消息所带来的卡顿现象,在页面内容更新展示完成之前,若监听到第二消息,可以先缓存第二消息,即,在页面内容更新展示完成之前,UI线程通过调用执行第二消息写入操作的资源调度线程,将第二消息写入第二消息队列。其中,执行第二消息写入操作的资源调度线程可以为多个,也可以为一个,可以根据实际情况确定。
在将第二消息写入第二消息队列时,可以根据监听到的第二消息的时间,依次将第二消息从第二消息队列的队尾写入,也可以随机将第二消息从第二消息队列的队尾写入。
例如,第二消息分别为D1和D2,在页面内容更新展示完成之前,UI线程调用能够执行第二消息写入操作的资源调度线程分别将消息D1和消息D2写入第二消息队列。
在检测到页面内容更新展示完成时,UI线程通过调用执行第二消息处理操作的资源调度线程,从第二消息队列中依次提取各条第二消息进行处理,在具体实施过程中,UI线程可以通过调度一个资源调度线程从第二消息队列中提取各个第二消息,并执行,也可以根据第二消息的功能,通过调用能够执行对应功能的消息的资源调度线程读取第二消息并处理。
例如,延续上一个示例,在页面内容更新展示完成之后,调用一个执行第二消息处理操作的资源调度线程,从第二消息队列中一次读取消息D1和消息D2,并执行。
不过应当注意,在页面刷新过程(开始页面刷新时)中,可以同时启动上述三种资源调度策略,也可以仅启动其中的任一种资源调度策略或任两种资源调度策略,在启动至少两种资源调度策略时,资源调度策略的启动顺序可以为任意顺序。
另外,在Flutter技术中的大多数场景下,图形优化功能(即抗锯齿功能)为禁用的,这样,可以减少图形优化占用设备中的有限资源,而在一少部分场景中图形优化功能是开启的,比如,不同页面切换场景中或同一页面内容更新场景中,也就是,在应用运行过程中,会执行图形优化操作,而执行图形优化操作会占用有限的处理资源(如处理器),当终端设备的配置比较低时,开启图形优化功能会导致页面刷新卡顿。
在一种实施方式中,为了避免图形优化带来的页面卡顿,在开始页面刷新时,也就是,页面内容更新展示完成之前,检测到应用正在执行图形优化操作,UI线程可以调用抗锯齿方法,禁用Flutter引擎层的图形优化功能,也就是,在开始页面刷新时,若检测到应用正在执行图形优化操作,则停止执行图形优化操作。这样,可以将有限的处理资源提供给与页面绘制相关的操作,同时,通过牺牲部分画面质量,以保证画面的流畅度。
在页面刷新过程完成后,即在页面内容更新展示完成之后,可以开始执行与刷新后的页面内容相关的图像优化操作,也就是,页面刷新完成之后的其它场景中,可以根据实际需求,选择进行图形优化。
在停止执行图形优化操作时,也可以同时执行内存回收操作,二者的执行顺序可以同步,也可以根据实际场景确定执行顺序。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与控制页面刷新的方法对应的控制页面刷线的装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述控制页面刷新的方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参考图2,本公开实施例提供了一种控制页面刷新的装置的示意图,所述装置包括:
确定模块21,用于响应于页面刷新操作,确定与页面刷新过程关联的多种资源调度操作,并确定所述多种资源调度操作对应的优先级;其中,所述优先级包括第一优先级和第二优先级;所述第一优先级高于第二优先级;
第一处理模块22,用于通过调用第一优先级的各个资源调度操作对应的资源调度线程,执行第一优先级的资源调度操作,以进行页面内容的更新展示;
第二处理模块23,用于在检测到页面内容更新展示完成时,通过调用第二优先级的各个资源调度操作对应的资源调度线程,执行所述第二优先级的资源调度操作,以完成所述页面刷新过程中与页面内容的更新展示无关的操作。
在一种实施方式中,所述第二优先级的资源调度操作包括内存回收操作;所述第一处理模块22还用于:在开始执行页面刷新操作时,控制执行内存回收操作的资源调度线程暂停进行内存回收操作;
所述第二处理模块23用于:
在检测到页面内容更新展示完成时,通过调用执行内存回收操作的资源调度线程,执行内存回收操作。
在一种实施方式中,所述第一优先级的资源调度操作包括第一消息写入操作和第一消息处理操作;所述第一消息为进行页面内容更新展示必须执行的消息;
所述第一处理模块22用于:
通过调用执行第一消息写入操作的资源调度线程,将所述第一消息写入第一消息队列,并通过调用执行第一消息处理操作的资源调度线程,从所述第一消息队列中依次提取各条第一消息进行处理。
在一种实施方式中,所述第一消息中包括页面绘制消息;
所述第一处理模块22用于:
通过调用执行第一消息写入操作的资源调度线程,将所述页面绘制消息从所述第一消息队列的队首写入;
通过调用执行第一消息处理操作的资源调度线程,从所述第一消息队列的队首依次提取各条第一消息进行处理。
在一种实施方式中,所述第一优先级的资源调度操作包括第二消息写入操作,所述第二优先级的资源调度操作包括第二消息处理操作;所述第二消息为进行页面内容更新展示非必须执行的消息;
所述第一处理模块22用于::
通过调用执行第二消息写入操作的资源调度线程,将所述第二消息写入第二消息队列;
所述第二处理模块23用于::
在检测到页面内容更新展示完成时,通过调用执行第二消息处理操作的资源调度线程,从所述第二消息队列中依次提取各条第二消息进行处理。
在一种实施方式中,所述第一处理模块22还用于:
在开始页面刷新时,若检测到应用正在执行图形优化操作,则停止执行图形优化操作;
在所述页面刷新过程完成后,开始执行与刷新后的页面内容相关的图形优化操作。
对应于图1中的控制页面刷新的方法,本公开实施例还提供了一种计算机设备30,如图3所示,为本公开实施例提供的计算机设备30结构示意图,包括:
处理器31、存储器32、和总线33;存储器32用于存储执行指令,包括内存321和外部存储器322;这里的内存321也称内存储器,用于暂时存放处理器31中的运算数据,以及与硬盘等外部存储器322交换的数据,处理器31通过内存321与外部存储器322进行数据交换,当所述计算机设备30运行时,所述处理器31与所述存储器32之间通过总线33通信,使得所述处理器31在用户态执行以下指令:
响应于页面刷新操作,确定与页面刷新过程关联的多种资源调度操作,并确定所述多种资源调度操作对应的优先级;其中,所述优先级包括第一优先级和第二优先级;所述第一优先级高于第二优先级;
通过调用第一优先级的各个资源调度操作对应的资源调度线程,执行第一优先级的资源调度操作,以进行页面内容的更新展示;
在检测到页面内容更新展示完成时,通过调用第二优先级的各个资源调度操作对应的资源调度线程,执行所述第二优先级的资源调度操作,以完成所述页面刷新过程中与页面内容的更新展示无关的操作。
其中,所述第二优先级的资源调度操作包括内存回收操作。
一种可能的实施方式中,处理器31执行的指令中,所述方法还包括:
在开始执行页面刷新操作时,控制执行内存回收操作的资源调度线程暂停进行内存回收操作;
在检测到页面内容更新展示完成时,通过调用第二优先级的各个资源调度操作对应的资源调度线程,执行所述第二优先级的资源调度操作,包括:
在检测到页面内容更新展示完成时,通过调用执行内存回收操作的资源调度线程,执行内存回收操作。
其中,所述第一优先级的资源调度操作包括第一消息写入操作和第一消息处理操作;所述第一消息为进行页面内容更新展示必须执行的消息。
一种可能的实施方式中,处理器31执行的指令中,通过调用第一优先级的各个资源调度操作对应的资源调度线程,执行第一优先级的资源调度操作,包括:
通过调用执行第一消息写入操作的资源调度线程,将所述第一消息写入第一消息队列,并通过调用执行第一消息处理操作的资源调度线程,从所述第一消息队列中依次提取各条第一消息进行处理。
其中,所述第一消息中包括页面绘制消息。
一种可能的实施方式中,处理器31执行的指令中,所述通过调用执行第一消息写入操作的资源调度线程,将所述第一消息写入第一消息队列,包括:
通过调用执行第一消息写入操作的资源调度线程,将所述页面绘制消息从所述第一消息队列的队首写入;
所述通过调用执行第一消息处理操作的资源调度线程,从所述第一消息队列中依次提取各条第一消息进行处理,包括:
通过调用执行第一消息处理操作的资源调度线程,从所述第一消息队列的队首依次提取各条第一消息进行处理。
其中,所述第一优先级的资源调度操作包括第二消息写入操作,所述第二优先级的资源调度操作包括第二消息处理操作;所述第二消息为进行页面内容更新展示非必须执行的消息。
一种可能的实施方式中,处理器31执行的指令中,通过调用第一优先级的各个资源调度操作对应的资源调度线程,执行第一优先级的资源调度操作,包括:
通过调用执行第二消息写入操作的资源调度线程,将所述第二消息写入第二消息队列;
在检测到页面内容更新展示完成时,通过调用第二优先级的各个资源调度操作对应的资源调度线程,执行所述第二优先级的资源调度操作,包括:
在检测到页面内容更新展示完成时,通过调用执行第二消息处理操作的资源调度线程,从所述第二消息队列中依次提取各条第二消息进行处理。
一种可能的实施方式中,处理器31执行的指令中,所述方法还包括:
在开始页面刷新时,若检测到应用正在执行图形优化操作,则停止执行图形优化操作;
在所述页面刷新过程完成后,开始执行与刷新后的页面内容相关的图形优化操作。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的控制页面刷新的方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例所提供的控制页面刷新的方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的控制页面刷新的方法的步骤,具体可参见上述方法实施例,在此不再赘述。
本公开实施例还提供一种计算机程序,该计算机程序被处理器执行时实现前述实施例的任意一种方法。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software DevelopmentKit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种控制页面刷新的方法,其特征在于,所述方法包括:
响应于页面刷新操作,确定与页面刷新过程关联的多种资源调度操作,并确定所述多种资源调度操作对应的优先级;其中,所述优先级包括第一优先级和第二优先级;所述第一优先级高于第二优先级;
通过调用第一优先级的各个资源调度操作对应的资源调度线程,执行第一优先级的资源调度操作,以进行页面内容的更新展示;
在检测到页面内容更新展示完成时,通过调用第二优先级的各个资源调度操作对应的资源调度线程,执行所述第二优先级的资源调度操作,以完成所述页面刷新过程中与页面内容的更新展示无关的操作。
2.如权利要求1所述的方法,其特征在于,所述第二优先级的资源调度操作包括内存回收操作;所述方法还包括:
在开始执行页面刷新操作时,控制执行内存回收操作的资源调度线程暂停进行内存回收操作;
在检测到页面内容更新展示完成时,通过调用第二优先级的各个资源调度操作对应的资源调度线程,执行所述第二优先级的资源调度操作,包括:
在检测到页面内容更新展示完成时,通过调用执行内存回收操作的资源调度线程,执行内存回收操作。
3.如权利要求1所述的方法,其特征在于,所述第一优先级的资源调度操作包括第一消息写入操作和第一消息处理操作;所述第一消息为进行页面内容更新展示必须执行的消息;
通过调用第一优先级的各个资源调度操作对应的资源调度线程,执行第一优先级的资源调度操作,包括:
通过调用执行第一消息写入操作的资源调度线程,将所述第一消息写入第一消息队列,并通过调用执行第一消息处理操作的资源调度线程,从所述第一消息队列中依次提取各条第一消息进行处理。
4.如权利要求3所述的方法,其特征在于,所述第一消息中包括页面绘制消息;
所述通过调用执行第一消息写入操作的资源调度线程,将所述第一消息写入第一消息队列,包括:
通过调用执行第一消息写入操作的资源调度线程,将所述页面绘制消息从所述第一消息队列的队首写入;
所述通过调用执行第一消息处理操作的资源调度线程,从所述第一消息队列中依次提取各条第一消息进行处理,包括:
通过调用执行第一消息处理操作的资源调度线程,从所述第一消息队列的队首依次提取各条第一消息进行处理。
5.如权利要求1所述的方法,其特征在于,所述第一优先级的资源调度操作包括第二消息写入操作,所述第二优先级的资源调度操作包括第二消息处理操作;所述第二消息为进行页面内容更新展示非必须执行的消息;
通过调用第一优先级的各个资源调度操作对应的资源调度线程,执行第一优先级的资源调度操作,包括:
通过调用执行第二消息写入操作的资源调度线程,将所述第二消息写入第二消息队列;
在检测到页面内容更新展示完成时,通过调用第二优先级的各个资源调度操作对应的资源调度线程,执行所述第二优先级的资源调度操作,包括:
在检测到页面内容更新展示完成时,通过调用执行第二消息处理操作的资源调度线程,从所述第二消息队列中依次提取各条第二消息进行处理。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
在开始页面刷新时,若检测到应用正在执行图形优化操作,则停止执行图形优化操作;
在所述页面刷新过程完成后,开始执行与刷新后的页面内容相关的图形优化操作。
7.一种控制页面刷新的装置,其特征在于,所述装置包括:
确定模块,用于响应于页面刷新操作,确定与页面刷新过程关联的多种资源调度操作,并确定所述多种资源调度操作对应的优先级;其中,所述优先级包括第一优先级和第二优先级;所述第一优先级高于第二优先级;
第一处理模块,用于通过调用第一优先级的各个资源调度操作对应的资源调度线程,执行第一优先级的资源调度操作,以进行页面内容的更新展示;
第二处理模块,用于在检测到页面内容更新展示完成时,通过调用第二优先级的各个资源调度操作对应的资源调度线程,执行所述第二优先级的资源调度操作,以完成所述页面刷新过程中与页面内容的更新展示无关的操作。
8.如权利要求7所述的装置,其特征在于,所述第二优先级的资源调度操作包括内存回收操作;所述第一处理模块还用于:在开始执行页面刷新操作时,控制执行内存回收操作的资源调度线程暂停进行内存回收操作;
所述第二处理模块用于:
在检测到页面内容更新展示完成时,通过调用执行内存回收操作的资源调度线程,执行内存回收操作。
9.一种计算机设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1~6任一所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1~6任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010621489.XA CN111782326A (zh) | 2020-06-30 | 2020-06-30 | 控制页面刷新的方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010621489.XA CN111782326A (zh) | 2020-06-30 | 2020-06-30 | 控制页面刷新的方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111782326A true CN111782326A (zh) | 2020-10-16 |
Family
ID=72760955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010621489.XA Pending CN111782326A (zh) | 2020-06-30 | 2020-06-30 | 控制页面刷新的方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111782326A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116302566A (zh) * | 2023-05-12 | 2023-06-23 | 深圳市新蕾电子有限公司 | 一种全局变量可定制化内存管理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104423996A (zh) * | 2013-09-04 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 视图刷新方法和装置 |
CN106201358A (zh) * | 2016-07-15 | 2016-12-07 | 珠海市魅族科技有限公司 | 一种内存垃圾回收的方法及装置 |
US20190205165A1 (en) * | 2017-12-28 | 2019-07-04 | Fujitsu Limited | Effective synchronous communication of screen information shared among information processing apparatuses |
CN110347427A (zh) * | 2019-07-08 | 2019-10-18 | 北京明略软件系统有限公司 | 网页代码的优化方法及装置 |
-
2020
- 2020-06-30 CN CN202010621489.XA patent/CN111782326A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104423996A (zh) * | 2013-09-04 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 视图刷新方法和装置 |
CN106201358A (zh) * | 2016-07-15 | 2016-12-07 | 珠海市魅族科技有限公司 | 一种内存垃圾回收的方法及装置 |
US20190205165A1 (en) * | 2017-12-28 | 2019-07-04 | Fujitsu Limited | Effective synchronous communication of screen information shared among information processing apparatuses |
CN110347427A (zh) * | 2019-07-08 | 2019-10-18 | 北京明略软件系统有限公司 | 网页代码的优化方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116302566A (zh) * | 2023-05-12 | 2023-06-23 | 深圳市新蕾电子有限公司 | 一种全局变量可定制化内存管理方法 |
CN116302566B (zh) * | 2023-05-12 | 2023-08-18 | 深圳市新蕾电子有限公司 | 一种全局变量可定制化内存管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108595242B (zh) | 页面显示方法、电子设备及计算机存储介质 | |
KR102323333B1 (ko) | 애플리케이션 데이터 프로세싱 방법 및 장치, 및 저장 매체 | |
EP2763034B1 (en) | Method and device for image-capturing application screen for use in mobile terminal | |
US10631246B2 (en) | Task switching on mobile devices | |
CN110221889B (zh) | 一种页面展示方法、装置、电子设备及存储介质 | |
US9720557B2 (en) | Method and apparatus for providing always-on-top user interface for mobile application | |
US20140189516A1 (en) | Video preview display method and terminal device | |
JPWO2008105092A1 (ja) | グラフィックス描画装置及びグラフィックス描画方法 | |
US11455075B2 (en) | Display method when application is exited and terminal | |
AU2021229220B2 (en) | Image processing method and device | |
US20170220237A1 (en) | Computer execution of application with selective launch behavior | |
US20230403437A1 (en) | Graphics engine and graphics processing method applicable to player | |
CN115562771B (zh) | 应用窗口管理方法、电子设备和计算机可读取存储介质 | |
CN111782326A (zh) | 控制页面刷新的方法、装置、计算机设备和存储介质 | |
CN111338934A (zh) | 页面刷新测试的方法、装置、计算机设备和存储介质 | |
CN112015309B (zh) | 显示切换方法、装置及移动终端 | |
CN111736942A (zh) | Vr系统中多应用场景显示方法、装置及vr设备 | |
CN104133835B (zh) | 一种界面元素下载的方法和装置 | |
CN113919999A (zh) | 消息渲染方法、装置、系统、设备及存储介质 | |
CN111414296B (zh) | 信号监听方法、装置、计算机设备和存储介质 | |
CN110704157A (zh) | 一种应用启动方法、相关装置及介质 | |
CN114721759B (zh) | Android桌面视图展示方法、装置及电子设备 | |
CN113407087B (zh) | 一种图片处理的方法、计算设备及可读存储介质 | |
CN111782113B (zh) | 显示方法、装置和计算机可读存储介质 | |
CN116010036A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201016 |