CN115690269A - 一种视图对象的处理方法及电子设备 - Google Patents

一种视图对象的处理方法及电子设备 Download PDF

Info

Publication number
CN115690269A
CN115690269A CN202211349391.9A CN202211349391A CN115690269A CN 115690269 A CN115690269 A CN 115690269A CN 202211349391 A CN202211349391 A CN 202211349391A CN 115690269 A CN115690269 A CN 115690269A
Authority
CN
China
Prior art keywords
animation
view object
attribute
vsync signal
animations
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
CN202211349391.9A
Other languages
English (en)
Other versions
CN115690269B (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.)
Honor Device Co Ltd
Original Assignee
Honor Device 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 Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202211349391.9A priority Critical patent/CN115690269B/zh
Publication of CN115690269A publication Critical patent/CN115690269A/zh
Application granted granted Critical
Publication of CN115690269B publication Critical patent/CN115690269B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

本申请提供一种视图对象的处理方法及电子设备,涉及计算机技术领域,用于解决本来应该在同一个VSync信号完成的所有属性动画的计算和渲染,其中的部分属性动画的计算和渲染被阻塞或抛弃,从而导致视图对象的动画显示卡顿或掉帧的问题。该方法包括:电子设备基于VSync信号回调函数接收到VSync信号,并获取待显示的视图对象的目标属性动画的动画参数。其中,该视图对象包括多个属性动画,目标属性动画是VSync信号对应的第一显示时刻视图对象中发生变化的属性动画。并且,一个视图对象对应一个VSync信号回调函数。电子设备根据目标属性动画的动画参数,计算并渲染视图对象在第一显示时刻待显示的第一图像。然后,电子设备显示第一图像。

Description

一种视图对象的处理方法及电子设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种视图对象的处理方法及电子设备。
背景技术
Dynamic animation动画效果库和Rebound动画效果库是两个由第三方提供的动画效果库,开发者可以直接引入这两个库来为应用添加丰富的动画效果。而Dynamicanimation和Rebound动画效果库,都选择同一种框架去实现,即“独立回调”的方式,实现每个属性的动画。
如果同一个视图(view)对象在同一时刻需要执行多个属性动画,需要用到上述两个动画效果库时,由于上述两个动画效果库独立回调的特性,导致中央处理器(centralprocessing unit,CPU)和图形处理器(graphics processing unit,GPU)需要处理较多计算和渲染场景,负载过重。对于部分电子设备而言,容易造成本来应该在同一个垂直同步(Vertical Synchronization,VSync)信号完成的所有属性动画的计算和渲染,其中的部分属性动画的计算和渲染被阻塞或抛弃,从而导致视图对象的动画显示卡顿或掉帧。
发明内容
本申请实施例提供一种视图对象的处理方法及电子设备,用于解决本来应该在同一个VSync信号完成的所有属性动画的计算和渲染,其中的部分属性动画的计算和渲染被阻塞或抛弃,从而导致视图对象的动画显示卡顿或掉帧的问题。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种视图对象的处理方法,应用于电子设备,该方法包括:
电子设备基于通过VSync信号回调函数接收到VSync信号,并获取待显示的视图对象的目标属性动画的动画参数。其中,该视图对象包括多个属性动画,目标属性动画是VSync信号对应的第一显示时刻视图对象中发生变化的一个或多个属性动画。并且,一个视图对象对应一个VSync信号回调函数。电子设备根据目标属性动画的动画参数,计算并渲染视图对象在第一显示时刻待显示的第一图像。然后,电子设备在第一显示时刻显示第一图像。
在该方案中,由于待显示的一个视图对象仅对应唯一一个VSync信号回调函数,那么在通过VSync信号回调函数接收VSync信号之后,电子设备可以通过这一个VSync信号回调函数对该视图对象中的多个属性动画同时进行计算和渲染。即,对于包含多个属性动画的视图对象而言,可以确保多个属性动画在同一个VSync信号的显示周期内进行计算并渲染。从而避免本应在一个VSync信号中执行的部分属性动画被阻塞或抛弃,导致的视觉上的动画效果发生卡顿的问题,保证动画效果显示的流畅性。同时,相较于相关技术中为视图对象的多个属性动画分别创建一个对应的VSync信号回调函数而言,本申请实施例中提供的技术方案针对一个视图对象仅创建一个VSync信号回调函数,可以减轻系统分发VSync信号的负担,避免CPU和GPU处理过多计算渲染场景,减轻系统负载负担。
在一些可能的实施方式中,在电子设备开始显示视图对象的动画时,电子设备可以先获取待显示的视图对象。然后针对视图对象的每一个属性动画创建一个属性动画参数集合,将该视图对象的属性动画的动画参数存储到对应的属性动画参数集合。这样,电子设备在计算渲染该视图对象时,可以根据属性动画参数集合中存储的动画参数计算并渲染图像,以显示视图对象的动画。之后,电子设备可以注册与视图对象对应的一个VSync信号回调函数。通过该VSync信号回调函数可以监听VSync信号,并在VSync信号的显示时刻先计算并渲染视图对象的各个目标属性动画。这样,保证视图对象的所有目标属性动画可以在同一个VSync信号的周期内得到计算和渲染,避免部分属性动画在一个VSync信号的周期内被阻塞或抛弃。从而避免视图对象的动画发生卡顿或掉帧的问题,保证视图对象的动画的流畅性。
在一些可能的实施方式中,电子设备在计算并渲染第一图像之后,上述方法还可以包括:获取电子设备当前的屏幕刷新频率,并根据屏幕刷新频率,更新视图对象的多个属性动画的动画参数。当前接收到的VSync信号的周期计算并渲染之后,下一VSync信号到来时,电子设备需要计算并渲染视图对象的动画中的下一帧图像。因此,在一帧图像计算渲染完成之后,对视图对象的多个属性动画的动画参数进行更新,可以确保下一VSync信号到来时,电子设备计算渲染的图像是视图对象的动画中的下一帧图像,即下一VSync信号对应的显示时刻待显示的第二图像,确保显示流畅和准确。
在一些可能的实施方式中,属性动画的动画参数具体可以包括第一时间信息,该第一时间信息用于指示下一VSync信号对应的显示时刻。在实施方式中,获取目标属性动画具体可以是根据第一时间信息确定第一显示时刻,然后获取第一显示时刻视图对象的目标属性动画的动画参数。进一步的,电子设备根据屏幕刷新频率更新视图对象的多个属性动画的动画参数,具体可以包括:根据屏幕刷新频率确定屏幕刷新的时间间隔。然后在视图对象的多个属性动画的第一时间信息的基础上加上时间间隔,得到更新后的视图对象的多个属性动画的第一时间信息。这样,可以确保下一VSync信号到来时,电子设备计算渲染的图像是视图对象的动画中的下一帧图像,即下一VSync信号对应的显示时刻待显示的第二图像,确保显示流畅和准确。
在一些可能的实施方式中,在电子设备开始显示视图对象的动画时,在分别创建多个属性动画对应的属性动画参数集合之后,电子设备可以创建一个数据结构,将视图对象的所有属性动画的动画参数集合都存储到数据结构中。然后,电子设备在创建与视图对象对应的VSync信号回调函数时,可以基于该数据结构创建一个唯一的VSync信号回调函数。在该方案中,通过将视图对象的所有属性动画的动画参数都存储在一个数据结构中,便于电子设备创建与视图对象对应的唯一一个VSync信号回调函数。
在一些可能的实施方式中,电子设备将视图对象的所有属性动画的属性动画参数集合存储到数据结构中,具体可以包括:将每一个属性动画的动画参数集合的属性动画标识作为键,将动画参数集合中的动画参数作为值,将一个属性动画的动画参数集合存储为一组键值对。以键值对的方式存储属性动画的动画参数集合,查询速度快,并且支持高并发。
在一些可能的实施方式中,电子设备在检测到视图对象的动画显示结束之后,可以将存储该视图对象的属性动画的属性动画参数集合的数据结构清空。这样,可以避免占用手机系统的存储空间。
在一些可能的实施方式中,电子设备在检测到视图对象的动画显示结束之后,还可以注销VSync信号回调函数。这样,可以避免系统框架层继续向该VSync信号回调函数分发VSync信号,减少系统框架层分发事件的负担。
在一些可能的实施方式中,属性动画的动画参数包括:属性动画的类型、数学模型以及第一时间信息。其中,属性动画的类型包括平移、缩放、旋转、透明度以及颜色中的至少一项;数学模型用于描述视图对象的属性动画的变化方式;第一时间信息用于指示下一VSync信号对应的显示时刻。
在一些可能的实施方式中,属性动画的动画参数还包括第二时间信息,该第二时间信息用于指示属性动画在视图对象的动画中开始变化的时间。在该实施方式中,获取待显示的视图对象对应的目标属性动画的动画参数,具体可以包括:根据第一时间信息和第二时间信息从视图对象的所有属性动画中确定目标属性动画;获取目标属性动画的动画参数。在该方案中,在电子设备进行计算渲染之前,根据第一时间信息和第二时间信息先确定当前VSync信号对应的显示时刻需要进行计算和渲染的目标属性动画,这样电子设备可以准确的计算并渲染当前VSync信号对应的显示时刻视图对象待显示的第一图像,确保电子设备准确的显示视图对象的动画。
第二方面,提供了一种电子设备,包括:处理器和存储器;该存储器用于存储计算机执行指令,当该电子设备运行时,该处理器执行该存储器存储的该计算机执行指令,以使该电子设备执行如上述第一方面中任一项的对象的处理方法。
第三方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面中任一项的对象的处理方法。
第四方面,提供了一种包含指令的计算机程序产品,当其在电子设备上运行时,使得电子设备可以执行上述第一方面中任一项的对象的处理方法。
第五方面,提供了一种装置(该装置可以是芯片系统),该装置包括处理器,用于支持电子设备实现上述第一方面中所涉及的功能。在一种可能的设计中,该装置还包括存储器,该存储器,用于保存电子设备必要的程序指令和数据。该装置是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件。
其中,第二方面至第五方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
附图说明
图1A为本申请实施例提供的一种电子设备独立回调框架的处理过程的示意图;
图1B为本申请实施例提供的一种视图对象的动画的显示示意图;
图2为本申请实施例提供的一种电子设备的硬件结构示意图;
图3为本申请实施例提供的一种电子设备的软件框架图;
图4A为本申请实施例提供的一种视图对象的处理方法的流程示意图;
图4B为本申请实施例提供的一种视图对象的动画的显示示意图;
图5为本申请实施例提供的另一种视图对象的处理方法的流程示意图;
图6为本申请实施例提供的另一种视图对象的处理方法的流程示意图;
图7为本申请实施例提供的另一种视图对象的处理方法的流程示意图;
图8为本申请实施例提供的一种视图对象的处理方法涉及的模块示意图;
图9为本申请实施例提供的一种芯片系统的结构框图。
具体实施方式
Dynamic animation动画效果库和Rebound动画效果库是两个由第三方提供的动画效果库,能够实现更符合现实物理世界的动画效果。开发者可以直接引入这两个库来为应用添加丰富的动画效果。而Dynamic animation和Rebound动画效果库,都选择同一种框架去实现,即“独立回调”的方式,实现每个属性的动画。
如果同一个view对象需要同时执行很多属性动画,那么这些属性动画应当在同一VSync信号内完成计算和渲染。由于上述两个动画效果库对每一个属性动画进行独立回调的特性,需要创建多个VSync信号回调函数(callback),分别与每一个属性动画对应。一方面,系统同时创建多个VSync信号回调函数,容易导致CPU和GPU需要处理较多计算和渲染场景,导致系统负载过重。另一方面,对于部分电子设备而言,由于存在多个VSync信号回调函数,系统框架层需要同时给所有VSync信号回调函数分发VSync信号,其中不仅包括view对象的多个属性动画的VSync信号回调函数,还包括电子设备当前其它场景注册的VSync信号回调函数。部分VSync信号回调函数可能存在需要与其它场景的VSync信号回调函数抢时间片的情况,导致系统框架层无法确保在同时将VSync信号分发到所有的VSync信号回调函数。也就是说,该view对象中可能有部分VSync信号回调函数在当前的这一VSync信号的周期内无法接收到VSync信号,也就无法在当前这一VSync信号内进行计算和渲染。这样,容易造成本来应该在同一个VSync信号完成的所有属性动画的计算和渲染,其中的部分属性动画的计算和渲染在这一VSync信号的周期内被阻塞或抛弃。其中,属性动画的计算和渲染在这一VSync信号的周期内被阻塞或抛弃,也就是说在这一VSync信号的周期内,该属性动画无法显示该属性动画对应的动画。如果是属性动画的计算和渲染被阻塞,该属性动画可能在下一VSync信号的周期内才可以接收到VSync信号,然后再进行计算和渲染,在显示效果中可能表现为view对象的动画发生卡顿。如果是属性动画的计算和渲染被抛弃,属性动画在这一VSync信号的周期内应当显示的动画丢失,在显示效果中可能表现为view对象动画掉帧。
示例性的,电子设备独立回调框架的处理过程如图1A所示。以view对象同时需要执行多个属性动画为例。针对一个view对象设置多个属性动画(如:位置X/Y/Z、透明度、缩放、旋转、颜色变化等属性)。针对该多个属性动画,分别创建对应的动画(animation),每个animation承担一个属性动画的动画效果,如图1A所示的属性动画A、属性动画B、…等。针对每一个animation分别创建一个对应的VSync回调,并在接收到系统下发的VSync信号时,每一个回调分别进行独立的计算和渲染。这样,容易造成部分其中的部分属性动画的计算和渲染被阻塞或抛弃,并加重系统框架层分发事件的负担。
示例性的,如图1B中的a所示的小球在从左上角位置A10(X10,Y10)向右下角位置A60(X60,Y60)匀速移动的过程中,在X轴和Y轴上分别具有位置发生平移的动画效果。图1B中的a所示的A10、A20、A30…A60位置,分别表示小球在动画起始时刻开始的第0s、第1s、第2s…第5s。如,单独从X轴来说,小球在X轴上的位置逐渐向右移动;单独从Y轴来说,小球在Y轴上的位置逐渐向下移动。
小球在X轴和在Y轴上移动的动画效果同时进行,显示的动画效果即为小球在逐渐向右下方移动;如图1B中的b所示,动画起始时刻小球处于A10位置,从动画起始时刻开始的第16.67ms,小球移动到A11位置;从动画起始时刻开始的第33.33ms,小球移动到A12位置。
而如果X轴和Y轴的动画效果是在两个独立回调函数中处理,在资源紧张的情况下,可能会发生X轴的位置和Y轴的位置移动发生在两帧画面里;如图1B中的c所示,动画起始时刻小球处于A10位置,从动画起始时刻开始的第16.67ms,仅在X轴上发生位置移动,小球移动到A11a位置;从动画起始时刻开始的第33.33ms,仅在Y轴上发生位置移动,小球移动到A11b位置。这样,在视觉效果上,显示的是小球先在X轴上向右移动(或Y轴上向下移动),然后小球在Y轴上向下移动(或X轴上向右移动)的动画效果。这样将会影响view对象的动画效果的流畅性,造成显示卡顿的效果。
上述实施例中是X轴和Y轴上的位置移动发生在两帧图像中,造成卡顿的视觉效果;在其它实施例中,也有可能在某一帧图像中,X轴/Y轴上的位置移动丢失,那么造成的视觉效果可能为掉帧。
基于此,本申请提供一种视图对象的处理方法,用于解决上述view对象本来应该在同一个VSync信号完成的所有属性动画的计算和渲染,其中的部分属性动画的计算和渲染被阻塞或抛弃的问题。该方法可以应用于电子设备。该方法在针对view对象的多个属性动画注册VSync信号回调函数时,将包括多个属性动画的view对象作为一个整体,仅注册唯一一个VSync信号回调函数。并且,在对该view对象进行计算和渲染时,由这一个VSync信号回调函数获取view对象中所有的属性动画的相关动画参数,一起进行计算和渲染。从而保证需要在同一个VSync信号中完成计算渲染的属性动画,都在一个VSyncc信号中完成。避免部分属性动画被阻塞或抛弃导致的视觉上的动画发生卡顿,保证动画效果播放的流畅性。并且,针对一个包括多个属性动画的view对象,在同一时刻只需要创建一个VSynccallback,可以减轻系统框架层分发事件的负担。
示例性的,上述电子设备具体可以是手机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、穿戴设备、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备、媒体播放器、电视机等设备,本申请实施例对该设备的具体形态不作特殊限制。
如图2所示为本申请一实施例提供的电子设备100的结构示意图。电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serialbus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,传感器模块180,按键190,马达191,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中,传感器模块180可以包括压力传感器180A,触摸传感器180B等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。例如,处理器110用于执行本申请实施例中的网络加速方法。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)。
此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。
电子设备100可以通过音频模块170,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信号转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180A检测触摸操作强度。电子设备100也可以根据压力传感器180A的检测信号计算触摸的位置。
触摸传感器180B,也称“触控面板”。触摸传感器180B可以设置于显示屏194,由触摸传感器180B与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180B用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180B也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
摄像头193用于捕获静态图像或视频。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。
以下实施例中的视图对象的处理方法均可以在具备上述硬件结构的电子设备100中实现。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。图3是本申请实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图3所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐等应用程序。
在本申请实施例中,应用程序层(应用层)还包括第三方提供的动画效果库。第三方提供的动画效果库包括统一调度单元和统一回调单元。其中,统一调度单元用于创建视图对象的各属性动画,创建数据结构,并将各属性动画的动画参数存储到数据结构中。统一回调单元用于向系统架构层注册VSync信号回调函数,并通过VSync信号回调函数接收系统架构层分发的VSync信号。以及,统一回调单元还用于从数据结构中获取属性动画的动画参数,计算当前时刻视图对象中待显示的图像,然后通知UI渲染图像。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图3所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android Runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
本申请提供的视图对象的处理方法,可以应用于Android系统的应用使用动画效果时,针对每一个视图对象中的属性动画都进行独立回调的场景中,如使用第三方提供的Dynamic animation动画效果库和Rebound动画效果库实现动画效果等场景。可以解决同一view对象中本来应该在同一个VSync信号完成的所有属性动画的计算和渲染,其中的部分属性动画的计算和渲染被阻塞或抛弃的问题。在本申请实施例中,在手机对视图对象的动画进行渲染的过程中,基于与待显示的视图对象对应的一个VSync信号回调函数接收VSync信号,手机获取该视图对象对应的目标属性动画的动画参数。然后手机基于目标属性动画的动画参数,计算并渲染视图对象在VSync信号对应的第一显示时刻待显示的第一图像。最后,手机显示第一图像。在该方案中,通过将包含多个属性动画视图对象作为一个整体,基于与该视图对象的整体对应的唯一一个VSync信号回调函数来实现接收信号,将视图对象多个属性动画中的目标属性动画在该VSync信号回调函数中完成计算和渲染。从而该视图对象中应当在同一VSync信号的周期内完成计算和渲染的多个属性动画,可以确保这些属性动画都在一个VSync信号的周期内计算并渲染,避免因部分属性动画的计算和渲染被阻塞或抛弃导致的动画显示卡顿及掉帧等问题。
以下对本申请实施例可能涉及的技术名词进行说明。
VSync信号:VSync是同步GPU的帧率和显示器的刷新频率的一种图形技术。在系统中,如果需要监听VSync信号,可以先注册一个callback来负责接收VSync信号,当系统需要刷新界面的时候,系统就会发送一个VSync信号,由上述注册的callback接收。
VSync callback:即注册了接收VSync信号的监听。
view对象,即视图对象,是指执行动画的主题。
view对象的属性动画包括:X(X轴的位置)、Y(Y轴的位置)、Z(Z轴的位置)、透明度、缩放、旋转以及颜色等。
数学模型:用于计算一定时间内,属性动画的运动轨迹的数学公式集合。
帧率(Frame rate)是以帧称为单位的位图图像连续出现在显示器上的频率(速率)。
显示器的刷新频率即屏幕刷新频率,是指电子束对屏幕图像重复、扫描的次数,即屏幕在每秒钟能刷新的次数,它的单位是赫兹(Hz)。
Key-value(键值对)数据库是一种以键值对存储数据的一种分布式存储数据库,其特点是查询速度快、存放数据量大、支持高并发,适合通过主键进行查询。
为了便于理解本申请提供的技术方案,以下将结合附图和实施例对本申请提供的视图对象的处理方法进行详细说明。如图4A所示,为本申请一实施例提供的视图对象的处理方法的流程示意图。在该实施例中,以电子设备是手机为例进行说明,手机包括应用层和系统框架层。该方法包括S400-S408,其中:
S400.应用层获取待显示的视图对象。
由上述说明可知,视图对象是指执行动画的主题。而动画是指在一定的时间内,让不同画面以一定的频率展示的过程。以图1B所示小球的移动为例,小球在一段时间内从A10位置移动到A60位置,该移动过程即为动画,小球可以是该动画的视图对象。
其中,视图对象包括多个属性动画。其中,每一个属性动画可以表示一种动画的类型。示例性的,属性动画具体可以包括如X轴的位置变化、Y轴的位置变化、缩放变化、旋转变换或者透明度变化等等,能够使得视图对象产生动画效果的具体变化类型。图1B所示的小球移动的示例中,小球作为视图对象,至少包括X轴上的位置变化对应的属性动画1、Y轴上的位置变化对应的属性动画2,以及颜色变化对应的属性动画3。
在一些实施例中,手机的应用层具体可以是响应于第一事件获取待显示的视图对象。其中,第一事件用于指示触发手机显示视图对象的动画。
在一些实施例中,视图对象的动画显示可以是由用户触发;在该实施例中,第一事件具体可以是指用户触发手机显示视图对象的动画,例如,用户点击查看一个动画、包含动画的页面,或者用户在屏幕上触发滑动事件,响应于该滑动事件,手机待显示的画面中包含动画。如图4B所示,手机在显示界面41显示的小球处于B20位置,用户在显示界面41中触发小球在屏幕上开始移动。随后,小球从B20位置移动到显示界面42所显示的B21位置,再移动到显示界面43所显示的B22位置。图4B中实线所示小球为显示时刻所显示的小球所在的位置,虚线所示小球为对于当前的显示时刻而言,小球的历史显示位置。
在另一些实施例中,视图对象的动画显示可以定时触发;在该实施例中,第一事件可以是手机检测到当前时间到达预设定时时间。
在另一些实施例中,视图对象的动画显示也可以是自动触发;在该实施例中,第一事件还可以是检测到视图对象的显示事件。例如,在小球在移动到A60位置之后,图像中出现了另一个小球。该另一个小球可以作为另一个待显示的视图对象,在手机检测到当前时间到达A60位置之后,即该另一个小球的时显示间点时,手机将自动触发在手机显示该另一个小球对应的动画。
应理解,上述第一事件的举例仅为示例,在其他实施例中,第一事件也可以是其他事件。
在一些实施例中,手机在在用户界面(User Interface,UI)上检测到上述第一事件。响应于该第一事件,UI获取待显示的视图对象。进一步的,通过对该视图对象进行分析即可得到该视图对象包括的多个属性动画。
S401.应用层分别针对每一个属性动画创建对应的属性动画参数集合。
其中,属性动画参数集合用于存储对应属性动画的动画参数。例如,针对小球的属性动画1创建属性动画参数集合1,用于存储属性动画1的动画参数。针对小球的属性动画2创建属性动画参数集合2,用于存储属性动画2的动画参数。
在手机的应用层获取到视图对象之后,通过对该视图对象进行解析可以得到该视图对象的多个属性动画。然后可以对于每一个属性动画,分别创建一个对应的属性动画参数集合,用于存储该属性动画的动画参数。
在一些实施例中,应用层创建属性动画参数集合,具体可以是应用层在动画效果库中查找与上述视图对象的各属性动画。然后,应用层将该视图对象的动画对应的动画参数存储至所创建的属性动画参数集合中。其中,动画效果库可以包括第三方提供的动画效果库。
进一步的,属性动画的动画参数用于指示动画的具体变化方式和变化轨迹。在一些实施例中,动画参数可以包括属性动画的类型、数学模型和第一时间信息。其中,属性动画的类型包括平移、缩放、旋转、透明度以及颜色中的至少一项。平移包括目标对象的水平方向(X轴)的位置移动和垂直方向(Y轴)的位置移动。缩放表示目标对象的缩小和放大变化。旋转可以包括目标对象的二维旋转和/或三维旋转。透明度用于指示目标对象的透明程度变化。颜色视图对象的颜色变化。以图1B所示的小球为例,属性动画1对应的属性为X轴的位置移动,属性动画2对应的属性为Y轴的位置移动,属性动画3对应的属性为颜色变化。
第一时间信息用于指示下一VSync信号对应的显示时刻。可以理解的,该第一时间信息与系统框架层分发VSync信号的时间关联。仍以图1B中的b的示例为例,属性动画1表示小球在X轴上的位置变化,属性动画1的第一时间信息具体可以包括下一VSync信号对应的显示时刻。例如,以屏幕刷新率是60Hz为例,图1B中的b所示的动画在第1帧(A10位置)时,属性动画1的第一时间信息是0。动画显示到第2帧(A11位置)时,属性动画1的第一时间信息约为16.67毫秒(ms)(≈1/60)。动画显示到第3帧(A12位置)时,属性动画的第一时间信息约为33.33ms;以此类推。
进一步的,属性动画的第一时间信息与分发VSync信号的时间关联,那么也就与手机显示视图对象的动画的进度关联。因此,在一些实施例中,在手机显示视图对象的动画的过程中,手机的应用层需实时更新属性动画的第一时间信息。
数学模型可以用于描述属性动画的变化方式。在一些实施例中,数学模型可以包括用于指示属性动画的变化公式。以图1B所示的小球为例,该示例中属性动画1(X轴的位置变化)对应的数学模型,具体包括变化公式1,该变化公式1用于指示小球在X轴上的位置具体变化轨迹,如坐标X1变化到X6。图1B所示的属性动画2对应的数学模型具体包括变化公式2,该变化公式2用于指示小球在Y轴上的具体变化轨迹,如坐标Y10变化到Y60。
进一步的,数学模型与第一时间信息关联。具体的,在不同的第一时间信息(下一VSync信号对应的显示时刻),可以得到不同的数学模型的运算结果。以属性动画1(小球在X轴上的位置变化)为例,不同第一时间信息对应的时刻,属性动画1的数学模型的运算结果不同,也就是小球在X轴上的位置不同。请参照图1B的b所示的小球移动,如第一时间信息是动画起始时刻(0时刻)时,根据属性动画1的数学模型可以确定在第一帧图像中小球在X轴上的位置,如A10位置X轴位置X10。以屏幕刷新率为60Hz为例,第一时间信息是从动画起始时刻开始的第16.67ms时,根据属性动画1的数学模型可以确定在第二帧图像中小球在X轴上的位置,如A11位置的X轴位置X11。第一时间信息是从动画起始时刻开始的第33.33ms时,根据属性动画1的数学模型可以确定在第三帧图像中小球在X轴上的位置,如A12位置的X轴位置X12;以此类推。
进一步的,手机结合视图对象的各个属性动画的第一时间信息和数学模型,即可确定各个属性动画在不同第一时间信息对应的时刻,对应数学模型的运算结果。以图4B所示小球为例,在第一时间信息是动画起始时刻(0时刻)时,根据各个属性动画的数学模型的运算结果可以分别确定小球在X轴上的位置X10(属性动画1),以及小球在Y轴上的位置Y10(属性动画2),即图中所示A10位置。在第一时间信息是从动画起始时刻开始的16.67ms时,根据各个属性动画的数学模型的运算结果可以分别确定小球在X轴上的位置X11(属性动画1),以及小球在Y轴上的位置Y11(属性动画2),如A11位置。在第一时间信息是从动画起始时刻开始的第33.33ms时,根据各个属性动画的数学模型的运算结果可以分别确定小球在X轴上的位置X12(属性动画1),小球在Y轴上的位置Y12(属性动画2),即图1B中的b所示A12位置。
在另一些实施例中,属性动画的动画参数还包括第二时间信息。第二时间信息用于指示属性动画在视图对象的动画中开始变化的时间。视图对象的部分属性动画可能并不是每一帧图像都会发生变化,如图1B所示小球的属性动画3(颜色变化),在A10~A30的移动过程中,小球的颜色并不会发生变化。因此,在该示例中,属性动画3开始发生变化的时间在A30~A60位置之间。那么针对该属性动画,动画参数中还包括第二时间信息,用于指示该属性动画在视图对象的动画中开始变化的时间。在一些实施例中,第二时间信息可以是相对于动画起始时刻的延迟时间。例如,图1B中的小球在A30位置时对应的时间是动画起始时刻开始的第2s,并且小球的颜色从A30位置开始发生变化,那么该属性动画3的第二时间信息可以设置为从动画起始时刻开始延迟2s。
在本申请实施例提供的技术方案中,对于视图对象中包含的每一个属性动画分别创建一个用于存储该属性动画的动画参数的属性动画参数集合,根据这些属性动画参数集合中存储的动画参数即可计算并渲染该视图对象对应的动画,并在屏幕中显示该动画。
S402.应用层向系统框架层发送回调函数注册请求。
其中,该回调函数注册请求用于请求注册与视图对象对应的一个VSync信号回调函数。
为了显示视图对象对应的动画,手机的应用层需要注册一个与视图对象对应的VSync信号回调函数,用于接收来自系统框架层分发的VSync信号。只有在接收到VSync信号之后,才可以根据属性动画的动画参数进行计算和渲染,才可以显示视图对象的动画。
在本申请实施例中,将视图对象作为一个整体,应用层仅向系统框架层注册一个与该视图对象对应的VSync信号回调函数。在一些实施例中,由于视图对象包括多个属性动画,而每一个属性动画都对应包含动画参数。因此为了将包含多个属性动画的视图对象作为一个整体注册一个对应的VSync信号回调函数,可以先将该视图对象的多个属性动画的动画参数存储到一个统一的数据结构中,然后针对该数据结构创建一个唯一的VSync信号回调函数。如图5所示,在上述S402之前,上述方法还包括S501和S502,其中:
S501.应用层创建数据结构。
S502.应用层将多个属性动画的动画参数存储至数据结构。
在一些实施例中,应用层将各属性动画参数集合中的动画参数推送(push)到数据结构进行存储。
进一步的,上述S402具体可以包括:应用层基于数据结构向系统框架层发送回调函数注册请求。
在本申请实施例提供的技术方案中,手机的应用层创建一个数据结构用于存储视图对象的多个属性动画的动画参数,便于针对该数据结构创建唯一一个VSync信号回调函数。
进一步的,在一些实施例中,在上述数据结构中可以以键值对的方式存储多个属性动画的动画参数。示例性的,将上述属性动画的属性动画标识作为键值对中的键(key),将属性动画对应的动画参数作为键值对中的值(value),进行存储。其中,属性动画的属性动画标识用于区分不同属性动画;例如属性动画标识可以用属性动画1、属性动画2、属性动画3,或者属性动画A、属性动画B和属性动画C等进行表示。以图1B所示小球的移动为例,表1所示为数据结构中存储的视图对象各属性动画的动画参数。其中,各属性动画的数学模型以数学模型1、数学模型2和数学模型3表示,在实际使用中,value中数学模型存储的信息可以是属性动画对应的实际的数学模型。同样的,第一时间信息以时间信息1、时间信息2和时间信息3表示。
表1
Figure BDA0003919277850000121
在本申请实施例提供的技术方案中,通过在数据结构中以键值对的方式存储视图对象的各类型属性动画及其动画参数,在后续根据属性动画进行计算和渲染时,查询速度快,并且支持高并发。
S403.响应于回调函数注册请求,系统框架层注册VSync信号回调函数,并添加注册记录。
系统框架层在接收到来自应用层发送的回调函数注册请求之后,响应于该回调函数注册请求,需为发起请求应用注册VSync信号回调函数。进一步的,系统框架层在注册VSync信号回调函数之后,在系统框架层中添加该VSync信号回调函数的注册记录。在系统框架层分发VSync信号时,根据已存储的注册记录,向注册成功的VSync信号回调函数分发VSync信号。
在一些实施例中,系统框架层添加VSync信号回调函数的注册之后,系统框架层向应用层发送注册成功的通知。
S404.系统框架层分发VSync信号。
系统框架层分发VSync信号的频率是由当前手机的屏幕刷新频率决定的,例如屏幕刷新频率为60hz时,系统框架层大约间隔16.67毫秒(ms)(≈1/60)分发一个VSync信号。如果屏幕刷新频率为120Hz,那么系统框架层大约间隔33.33ms(≈1/120)分发一个VSync信号。
由上述说明可知,系统框架层添加了VSync信号回调函数的注册记录之后,系统框架层在分发VSync信号时,可以根据注册记录中已注册的VSync信号回调函数分发VSync信号。即,应用层注册了VSync信号回调函数之后,即可通过VSync信号回调函数监听系统框架层分发的VSync信号。
S405.应用层通过VSync信号回调函数接收VSync信号。
应用层接收到来自系统框架层发送的VSync信号之后,即可触发UI对图像的渲染。在本申请实施例中,应用层通过VSync信号回调函数接收到VSync信号之后,应用层即可根据视图对象的多个属性动画对视图对象进行计算和渲染,从而在屏幕上展示当前时刻所需要展示的图像。
S406.响应于VSync信号,应用层获取视图对象对应的目标属性动画的动画参数。
在接收到VSync信号之后,响应于该VSync信号,手机的应用层可以根据视图对象的多个属性动画的动画参数对视图对象进行计算和渲染。在一个VSync信号的周期内,手机通常仅计算并渲染一帧图像。在一些实施例中,应用层获取视图对象的目标属性动画的动画参数,具体可以是通过VSync信号回调函数获取目标属性动画的动画参数。
其中,目标属性动画是指VSync信号对应的显示时刻视图对象中发生变化的属性动画。
在一些实施例中,上述S406,具体可以包括:应用层根据第一时间信息确定第一显示时刻,然后根据第一显示时刻,获取视图对象对应的目标属性动画的动画参数。在本申请实施例提供的技术方案中,根据第一时间信息可以VSync信号对应的第一显示时刻,然后根据该第一显示时刻,确定需要获取哪些目标属性动画的动画参数。
在应用层获取目标属性动画的动画参数之前,手机还可以先从所有属性动画中确定目标属性动画,然后再获取目标属性动画的动画参数。由上述实施例的说明可知,第一时间信息用于指示下一VSync信号对应的显示时刻。第二时间信息用于指示属性动画在视图对象的动画中开始变化的时间。因此,结合第一时间信息和第二时间信息可以确定下一VSync信号对应的显示时刻哪些属性动画是发生变化的,也就是上述目标属性动画。在一些实施例中,手机的应用层根据第一时间信息和第二时间信息从视图对象的所有属性动画中确定目标属性动画。
进一步的,在一些实施例中,手机的应用层根据第一时间信息和第二时间信息确定目标属性动画,具体可以包括:应用层判断第一时间信息到达第二时间信息指示的时刻时,确定属性动画为目标属性动画。
以第一时间信息为0为例,即手机开始显示视图对象的动画的时间点,也即动画起始时刻。在一些实施例中,如果检测到各属性动画的动画参数中均不包含第二时间信息,或者检测到各属性动画的动画参数中的第二时间信息均为0,即表示在下一VSync信号对应的显示时刻中,视图对象的所有属性动画都发生变化。进一步的,在动画起始时刻,目标属性动画包括视图对象的所有属性动画,即应用层获取视图对象的所有属性动画的动画参数。
仍以第一时间信息为0为例,在另一些实施例中,如果在动画起始时刻手机检测到视图对象的部分属性动画的动画参数中包含第二时间信息,且第二时间信息不为0,即表示这部分属性动画在当前VSync信号对应的显示时刻中不会发生变化。也就是说,在当前VSync信号对应的显示时刻,应用层不需要对这部分属性动画进行计算和渲染。因此需要结合第二时间信息筛选出需要进行计算和渲染的属性动画。具体的,手机可以筛选出动画参数不包含第二时间信息或者第二时间信息为0的属性动画,作为动画起始时刻需要进行计算和渲染的目标属性动画。
以图1B中的a所示小球的移动为例,由上述实施例的说明可知,该实例中小球的属性动画3(颜色变化)是从动画起始时刻开始延迟2s开始发生变化的,也就是说,小球的属性动画3的第二时间信息为从动画起始时刻开始延迟2s。而小球的属性动画1和属性动画2的动画属性均不包含第二时间信息,或者第二时间信息为0。
当第一时间信息为0(动画起始时刻)时,结合第二时间信息可以确定下一VSync信号对应的显示时刻,属性动画1和属性动画2会发生变化,而属性动画3不会发生变化。因此在第一时间信息为0时,手机可以确定属性动画1和属性动画2为目标属性动画,且属性动画3不属于目标属性动画。
当第一时间信息变为从动画起始时刻开始的第2s时,小球的属性动画1和2不包含第二时间信息或者第二时间信息为0,因此小球的属性动画2和属性动画3在第2s会发生变化。而属性动画3的第二时间信息为从动画起始时刻开始延迟2s,因此在第一时间信息为从动画起始时刻开始的第2s时,属性动画3也会发生变化。此时,手机可以确定属性动画1、属性动画2和属性动画3均为目标属性动画。
在本申请实施例提供的技术方案中,在计算渲染之前,根据第一时间信息和第二时间信息确定目标属性动画,也就是需要进行计算和渲染的属性动画,准确的计算并渲染当前时刻待显示的图像,确保手机可以准确的显示视图对象的动画。
在创建数据结构来存储视图对象的多个属性动画的动画参数的实施例中,请继续参照图5,上述S406具体可以是S406a。
S406a.响应于VSync信号,应用层从数据结构中获取目标属性动画的动画参数。
在本申请实施例提供的技术方案中,将视图对象的多个属性动画的动画参数都存储在一个数据结构中,因此手机的应用层可以直接从数据结构中获取到目标属性动画的动画参数,便于手机对视图对象进行渲染。
在一些实施例中,由应用层的VSync信号回调函数获取目标属性动画的动画参数,并根据目标属性动画的动画参数进行计算和渲染对应的图像。
S407.应用层根据目标属性动画的动画参数,计算并渲染视图对象在第一显示时刻待显示的第一图像。
在一些实施例中,属性动画的动画参数可以包括属性动画的类型、数学模型和第一时间信息,手机的应用层可以在通过VSync信号回调函数接收到VSync信号之后,根据属性动画的类型、第一时间信息和数学模型进行计算和渲染,得到第一图像。在另一些实施例中,属性动画的动画参数包括属性动画的类型、第一时间信息、第二时间信息和数学模型,手机的应用层在通过VSync信号回调函数接收到VSync信号,并且根据第一时间信息、第二时间信息确定目标属性动画之后,根据属性动画的类型、第一时间信息和数学模型进行计算和渲染,得到第一图像。
在一些实施例中,上述S407具体可以是应用层通过VSync信号回调函数根据目标属性动画的动画参数,计算并渲染视图对象在第一显示时刻待显示的第一图像。
进一步的,结合上述实施例的描述可知,数学模型用于描述属性动画的变化方式,数学模型与第一时间信息关联。在不同的第一时间信息(VSync信号对应的显示时刻),可以计算得到不同的数学模型的运算结果。根据每个属性动画的第一时间信息和数学模型计算对应的运算结果,可以得到第一时间信息对应的时刻视图对象各属性动画的状态,如小球在X轴上的位置、Y轴上的位置以及颜色等等。
S408.应用层在第一显示时刻显示第一图像。
本申请实施例提供的技术方案中,将视图对象的多个属性动画作为一个整体,为其创建一个唯一的VSync信号回调函数。由在通过VSync信号回调函数接收VSync信号之后,手机可以通过这一个VSync信号回调函数对该视图对象中的多个属性动画同时进行计算和渲染。即,对于包含多个属性动画的视图对象而言,可以确保多个属性动画在同一个VSync信号的显示周期内进行计算并渲染。从而避免本应在一个VSync信号中执行的部分属性动画被阻塞或抛弃,导致的视觉上的动画效果发生卡顿的问题,保证动画效果显示的流畅性。
进一步的,对于为属性动画设置的动画参数可以在手机计算并渲染视图对象的过程中实时更新。例如属性动画的动画参数中的第一时间信息,可以根据当前视图对象的动画显示进度进行更新。在一些实施例中,如图6所示,在上述S407之后,上述方法还包括S601和S602。
其中:
S601.应用层获取电子设备当前的屏幕刷新频率。
S602.应用层根据屏幕刷新频率,更新多个属性动画的动画参数。
由上述实施例中的说明可知,属性动画的第一时间信息是指示下一VSync信号对应的显示时刻。因此,在一些实施例中,应用层根据屏幕刷新频率更新动画参数具体可以包括根据屏幕刷新率更新属性动画的第一时间信息。应理解,上述S601和S602可以与上述S408同时执行。或者,上述S601和S602也可以在上述S408之前执行。或者,上述S601和S602还可以在上述S408之后执行。对于上述S601和S602的执行顺序在本申请实施例中不予限定。
在一些实施例中,上述S602具体可以包括:根据屏幕刷新频率确定屏幕刷新的时间间隔;在多个属性动画中的第一时间信息的基础上,加上时间间隔,得到更新后的多个属性动画的第一时间信息。应理解,更新后的第一时间信息用于收集在接收到下一VSync信号时,根据更新后的多个属性动画的动画参数,计算并渲染下一VSync信号对应的第二显示时刻待显示的第二图像。
由上述说明可知,屏幕刷新频率指示屏幕在每秒钟能刷新的次数,因此根据屏幕刷新频率可以确定手机显示动画效果时,相邻两次屏幕刷新之间的时间间隔。以屏幕刷新频率是60Hz为例,相邻两次屏幕刷新之间的时间间隔约为16.67ms;屏幕刷新频率是120Hz时,相相邻两次屏幕刷新之间的时间间隔约为8.33ms。
进一步的,上述实施例中在手机显示视图对象对应的动画时,在计算并渲染VSync信号对应的显示时刻视图对象待显示的第一图像之后,如果显示的第一图像并非动画的最后一帧图像,那么对于该第一时间信息需要对存储的属性动画的第一时间信息进行更新。即上述在第一时间信息的基础上加上时间间隔得到更新后的第一时间信息,具体是在确定当前渲染的图像非视图对象的动画效果的最后一帧图像之后执行的。但如果当前时刻显示的图像是视图对象的动画的最后一帧图像,即表示该动画显示结束。此时对于第一时间信息不再以加上时间间隔的方式更新,而是将第一时间信息更新为零,即重置第一时间信息。
进一步的,在更新动画参数之后,手机的应用层在通过VSync信号回调函数接收到下一VSync信号时,即可获取更新后的目标属性动画的动画参数。然后应用层根据更新后的目标属性动画的动画参数,计算并渲染下一VSync信号对应的显示时刻视图对象待显示的第二图像。
本申请实施例提供的技术方案中,基于屏幕刷新率对各属性动画中的动画参数进行更新,可以确保下一VSync信号对应的显示时刻手机计算并渲染的图像是准确的图像,保证手机可以准确的显示视图对象对应的动画。
如果视图对象的动画显示结束,且不再自动重复显示该视图对象的动画,也就是说该视图对象不再需要监听来自系统框架层分发的VSync信号。此时,手机可以注销VSync信号回调函数。
在一些实施例中,在手机的应用层检测到视图对象的动画显示结束之后,应用层向系统框架层发送注销请求。系统框架层响应于注销请求,注销与视图对象对应的VSync信号回调函数,并删除该VSync信号回调函数的注册记录。
在本申请实施例提供的技术方案中,如果视图对象的动画显示结束,且不再自动重复显示该视图对象的动画,则应用层将会注销VSync信号回调函数,避免系统框架层继续向该VSync信号回调函数分发VSync信号,减少系统框架层分发事件的负担。
另外,在创建数据结构用于存储视图对象的各属性动画的动画参数的实施例中,如果视图对象的动画显示结束,且不再自动重复显示该视图对象的动画,那么系统也不再需要这一个数据结构。手机的应用层可以清空该数据结构。这样,可以避免占用手机系统的存储空间。
以下以一个具体的实施例介绍上述视图对象的处理方法的技术实现细节。如图7所示为本申请实施例中提供的视图对象的处理方法流程示意图。在该实施例中,手机的应用层包括UI、统一调度单元和统一回调单元。上述方法包括S701-S722,其中:
S701.响应于第一事件,UI获取待显示的视图对象。
S702.UI向统一调度单元发送第一通知消息。
其中,第一通知消息用于指示统一调度单元创建视图对象的属性动画。
S703.统一调度单元分别对每一个属性动画创建对应的属性动画参数集合。
其中,属性动画参数集合用于存储对应属性动画的动画参数。
S704.统一调度单元创建数据结构。
S705.统一调度单元将多个属性动画的动画参数存储至数据结构。
S706.统一调度单元向统一回调单元发送第二通知消息。
其中,第二通知消息用于指示统一调度单元注册VSync信号回调函数。
S707.统一回调单元向系统框架层发送回调函数注册请求。
其中,回调函数注册请求用于请求注册与视图对象对应的一个VSync信号回调函数。
S708.响应于回调函数注册请求,系统框架层注册VSync信号回调函数,并添加注册记录。
其中,注册请求即统一回调单元发送的请求,用于请求注册于视图对象对应的一个VSync信号回调函数。
S709.系统框架层向统一回调单元发送注册响应。
其中,注册响应用于向统一回调对应通知注册成功。
S710.系统框架层分发VSync信号。
S711.统一回调单元通过VSync信号回调函数接收VSync信号。
S712.响应于VSync信号,统一回调单元向统一调度单元发送数据获取请求。
其中,数据获取请求用于请求获取数据结构中视图对象的多个属性动画的动画参数。
S713.响应于数据获取请求,统一调度单元向统一回调单元发送多个属性动画的数学模型和时间信息。
其中,时间信息可以包括上述第一时间信息和第二时间信息。
S714.统一回调单元根据数学模型和时间信息,计算当前时刻视图对象的运算结果。
在一些实施例中,统一回调单元先根据时间信息中的第一时间信息和第二时间信息,确定VSync信号对应的显示时刻需要计算并渲染的目标属性动画,然后仅对目标属性动画进行计算和渲染。
在另一些实施例中,统一调度单元也可以先向统一回调单元仅发送时间信息(第一时间信息和第二时间信息)。统一回调单元在根据第一时间信息和第二时间信息确定目标属性动画之后,再向统一调度单元获取目标属性动画的数学模型,并进行计算和渲染。
S715.统一回调单元根据运算结果向UI发送第三通知消息。
其中,第三通知消息用于指示UI渲染图像。
S716.UI接收第三通知消息之后,根据运算结果渲染当前时刻视图对象中待显示的图像。
在S714之后,还包括S717和S718。
S717.统一回调单元向统一调度单元发送运算结果。
S718.统一调度单元接收运算结果,并基于运算结果更新数据结构。
进一步的,统一回调单元可以在接收到下一个VSync信号时,从统一调度单元的数据结构中获取更新后的时间信息和数学模型进行计算,并通知UI渲染下一时刻的图像。
当视图对象的动画效果显示结束之后,上述方法还包括:
S719.统一回调单元向统一调度单元发送第四通知消息。
S720.响应于第四通知消息,统一调度单元清空数据结构。
数据结构被清空之后,UI停止显示动画效果。
S721.统一回调单元向系统框架层发送第五通知消息。
S722.系统框架层响应于第五通知消息,注销VSync信号回调函数。
具体的,系统框架层删除VSync信号回调函数的注册记录。
如图8所示为本申请一实施例中提供的视图对象的处理方法的模块示意图。
上述实施例提供的技术方案中,在使用第三方提供的动画效果库实现动画效果时,针对一个包含多个属性动画的view对象,创建一个数据结构,将view对象的所有属性动画的动画参数都存储在数据结构中。然后基于该数据结构创建一个唯一的VSync信号回调函数。在接收到VSync信号时,通过该唯一的VSync信号回调函数,可以对该view对象中的所有需要计算和渲染的属性动画同时进行计算和渲染。这样,可以避免多个属性动画不能在一个VSync信号统一执行的问题。进而解决该场景下的动画卡顿和不流畅问题。
本申请另一些实施例提供了一种计算机设备,该计算机设备可以是上述电子设备(如手机)。该计算机设备可以包括:存储器和一个或多个处理器。该存储器与处理器耦合。该存储器还用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,计算机设备可执行上述方法实施例中手机1执行的各个功能或者步骤。该计算机设备是电子设备时,其结构可以参考图2所示的电子设备100的结构。
本申请实施例还提供一种芯片系统,如图9所示,该芯片系统90包括至少一个处理器901和至少一个接口电路902。处理器901和接口电路902可通过线路互联。例如,接口电路902可用于从其它装置(例如计算机设备的存储器)接收信号。又例如,接口电路902可用于向其它装置(例如处理器901)发送信号。示例性的,接口电路902可读取存储器中存储的指令,并将该指令发送给处理器901。当指令被处理器901执行时,可使得计算机设备执行上述实施例中的各个步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当计算机指令在上述电子设备(如手机)上运行时,使得该电子设备执行上述方法实施例中手机执行的各个功能或者步骤。
本申请实施例还提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述方法实施例中手机执行的各个功能或者步骤。其中,该计算机可以是电子设备,如手机。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (12)

1.一种视图对象的处理方法,其特征在于,所述方法应用于电子设备,所述方法包括:
基于垂直同步VSync信号回调函数接收VSync信号,并获取待显示的视图对象对应的目标属性动画的动画参数;所述视图对象包括多个属性动画,所述目标属性动画为在所述VSync信号对应的第一显示时刻所述视图对象中发生变化的一个或多个属性动画;一个视图对象对应一个VSync信号回调函数;
根据所述目标属性动画的动画参数,计算并渲染所述视图对象在所述第一显示时刻待显示的第一图像;
在所述第一显示时刻显示所述第一图像。
2.根据权利要求1所述的方法,其特征在于,在所述基于垂直同步VSync信号回调函数接收VSync信号之前,所述方法还包括:
获取待显示的视图对象;
分别针对所述视图对象的每一个属性动画创建一个对应的属性动画参数集合;所述属性动画参数集合用于存储所述属性动画的动画参数;
注册与所述视图对象对应的一个所述VSync信号回调函数。
3.根据权利要求1或2所述的方法,其特征在于,在所述根据所述目标属性动画的动画参数,计算并渲染所述视图对象在所述第一显示时刻待显示的第一图像之后,所述方法还包括:
获取所述电子设备当前的屏幕刷新频率;
根据所述屏幕刷新频率,更新所述视图对象的多个属性动画的动画参数;更新后的所述视图对象的多个属性动画的动画参数用于所述电子设备在接收到下一VSync信号时,根据更新后的所述视图对象的多个属性动画的动画参数,计算并渲染所述下一VSync信号对应的第二显示时刻待显示的第二图像。
4.根据权利要求3所述的方法,其特征在于,所述动画参数包括所述属性动画的第一时间信息;所述第一时间信息用于指示下一VSync信号对应的显示时刻;
所述获取待显示的视图对象对应的目标属性动画的动画参数;所述目标属性动画为在所述VSync信号对应的第一显示时刻所述视图对象中发生变化的一个或多个属性动画,包括:
根据所述第一时间信息确定所述第一显示时刻;
根据所述第一显示时刻,获取所述视图对象的目标属性动画的动画参数;所述目标属性动画为在所述第一显示时刻所述视图对象中发生变化的一个或多个属性动画;
所述根据所述屏幕刷新频率,更新所述视图对象的多个属性动画的动画参数,包括:
根据所述屏幕刷新频率确定屏幕刷新的时间间隔;
在所述视图对象的多个属性动画的第一时间信息的基础上,加上所述时间间隔,得到更新后的所述视图对象的多个属性动画的第一时间信息。
5.根据权利要求2至4中任一项所述的方法,其特征在于,在所述分别针对所述视图对象的每一个属性动画创建一个对应的属性动画参数集合之后,在所述注册与所述视图对象对应的一个所述VSync信号回调函数之前,所述方法还包括:
创建数据结构;
将所述视图对象的所述多个属性动画的属性动画参数集合存储至所述数据结构;
其中,所述注册与所述视图对象对应的一个所述VSync信号回调函数,包括:基于所述数据结构注册与所述视图对象对应的一个所述VSync信号回调函数。
6.根据权利要求5所述的方法,其特征在于,所述将所述视图对象的所述多个属性动画的属性动画参数集合存储至所述数据结构,包括:
分别将每一个属性动画的属性动画参数集合存储为一组键值对;其中,所述属性动画参数集合对应的属性动画标识作为所述键值对中的键,所述属性动画参数集合中存储的动画参数作为所述键值对中的值。
7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
在检测到所述视图对象的动画显示结束之后,清空所述数据结构。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述方法还包括:
在检测到所述视图对象的动画显示结束之后,注销所述与所述视图对象对应的所述VSync信号回调函数。
9.根据权利要求1-8中任一项所述的方法,其特征在于,所述动画参数包括:属性动画的类型、数学模型以及第一时间信息;
其中,所述属性动画的类型包括平移、缩放、旋转、透明度以及颜色中的至少一项;
所述数学模型用于描述所述属性动画的变化方式;
所述第一时间信息用于指示下一VSync信号对应的显示时刻。
10.根据权利要求9所述的方法,其特征在于,所述动画参数还包括第二时间信息,所述第二时间信息用于指示所述属性动画在所述视图对象的动画中开始变化的时间;所述获取待显示的视图对象对应的目标属性动画的动画参数,包括:
根据所述第一时间信息和所述第二时间信息从所述视图对象的所有属性动画中确定所述目标属性动画;
获取所述目标属性动画的动画参数。
11.一种电子设备,其特征在于,所述电子设备包括:处理器和存储器;所述存储器中存储有计算机程序代码,所述计算机程序代码包括计算机指令,当所述计算机指令被所述处理器执行时,使得所述电子设备执行如权利要求1-10中任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-10中任一项所述的方法。
CN202211349391.9A 2022-10-31 2022-10-31 一种视图对象的处理方法及电子设备 Active CN115690269B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211349391.9A CN115690269B (zh) 2022-10-31 2022-10-31 一种视图对象的处理方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211349391.9A CN115690269B (zh) 2022-10-31 2022-10-31 一种视图对象的处理方法及电子设备

Publications (2)

Publication Number Publication Date
CN115690269A true CN115690269A (zh) 2023-02-03
CN115690269B CN115690269B (zh) 2023-11-07

Family

ID=85045599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211349391.9A Active CN115690269B (zh) 2022-10-31 2022-10-31 一种视图对象的处理方法及电子设备

Country Status (1)

Country Link
CN (1) CN115690269B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106484348A (zh) * 2016-09-20 2017-03-08 Tcl集团股份有限公司 一种基于同步信号的动画绘制方法及系统
CN106874017A (zh) * 2017-03-10 2017-06-20 广东欧珀移动通信有限公司 一种移动终端的显示场景识别方法、装置及移动终端
CN111586489A (zh) * 2020-06-22 2020-08-25 腾讯科技(深圳)有限公司 弹幕渲染方法、装置、计算机设备及存储介质
GB202018500D0 (en) * 2020-08-12 2021-01-06 Samsung Electronics Co Ltd Controlling rendering of images
CN112347408A (zh) * 2021-01-07 2021-02-09 北京小米移动软件有限公司 渲染方法、装置、电子设备及存储介质
CN113760281A (zh) * 2021-01-29 2021-12-07 北京京东拓先科技有限公司 一种过渡动画的实现方法、装置、终端设备及存储介质
CN114579076A (zh) * 2022-01-30 2022-06-03 荣耀终端有限公司 数据处理方法和相关装置
CN114610255A (zh) * 2022-02-23 2022-06-10 深圳市锐尔觅移动通信有限公司 画面绘制方法、装置、存储介质以及终端
CN114661263A (zh) * 2022-02-25 2022-06-24 荣耀终端有限公司 一种显示方法、电子设备及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106484348A (zh) * 2016-09-20 2017-03-08 Tcl集团股份有限公司 一种基于同步信号的动画绘制方法及系统
CN106874017A (zh) * 2017-03-10 2017-06-20 广东欧珀移动通信有限公司 一种移动终端的显示场景识别方法、装置及移动终端
CN111586489A (zh) * 2020-06-22 2020-08-25 腾讯科技(深圳)有限公司 弹幕渲染方法、装置、计算机设备及存储介质
GB202018500D0 (en) * 2020-08-12 2021-01-06 Samsung Electronics Co Ltd Controlling rendering of images
CN112347408A (zh) * 2021-01-07 2021-02-09 北京小米移动软件有限公司 渲染方法、装置、电子设备及存储介质
CN113760281A (zh) * 2021-01-29 2021-12-07 北京京东拓先科技有限公司 一种过渡动画的实现方法、装置、终端设备及存储介质
CN114579076A (zh) * 2022-01-30 2022-06-03 荣耀终端有限公司 数据处理方法和相关装置
CN114610255A (zh) * 2022-02-23 2022-06-10 深圳市锐尔觅移动通信有限公司 画面绘制方法、装置、存储介质以及终端
CN114661263A (zh) * 2022-02-25 2022-06-24 荣耀终端有限公司 一种显示方法、电子设备及存储介质

Also Published As

Publication number Publication date
CN115690269B (zh) 2023-11-07

Similar Documents

Publication Publication Date Title
CN108415705B (zh) 网页生成方法、装置、存储介质及设备
US10911818B2 (en) Electronic device and method for controlling the same
CN113244614B (zh) 图像画面展示方法、装置、设备及存储介质
CN108462818B (zh) 电子设备及用于在该电子设备中显示360度图像的方法
CN112230914B (zh) 小程序的制作方法、装置、终端及存储介质
CN110928464B (zh) 用户界面的显示方法、装置、设备及介质
EP3566120B1 (en) Electronic device and method for displaying screen by the same
CN111882642A (zh) 三维模型的纹理填充方法及装置
CN111178343A (zh) 基于人工智能的多媒体资源检测方法、装置、设备及介质
CN112204621A (zh) 基于计算设备能力简档的虚拟骨架
CN115018692B (zh) 一种图像渲染方法及电子设备
WO2024188089A1 (zh) 特效信息显示方法、装置、电子设备及存储介质
US10887586B2 (en) Picture encoding method and terminal
CN110889060A (zh) 网页显示方法、装置、计算机设备及存储介质
CN110995842A (zh) 业务数据下载方法、装置、设备及存储介质
CN117111803B (zh) 背景图显示方法和电子设备
WO2024051639A1 (zh) 图像处理方法、装置、设备及存储介质和产品
CN117130516B (zh) 一种显示方法及电子设备
CN113553368A (zh) 多层饼图的标签信息处理方法、装置及终端
CN115690269B (zh) 一种视图对象的处理方法及电子设备
US20220264176A1 (en) Digital space management method, apparatus, and device
CN112596810B (zh) 加载提示信息显示方法、装置、电子设备及存储介质
CN113490052A (zh) 一种终端设备、自由视点视频播放方法和服务器
CN116679855B (zh) 数据处理方法及装置
WO2024051471A1 (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
GR01 Patent grant