CN115408071A - 一种动效计算方法及装置 - Google Patents
一种动效计算方法及装置 Download PDFInfo
- Publication number
- CN115408071A CN115408071A CN202110616940.3A CN202110616940A CN115408071A CN 115408071 A CN115408071 A CN 115408071A CN 202110616940 A CN202110616940 A CN 202110616940A CN 115408071 A CN115408071 A CN 115408071A
- Authority
- CN
- China
- Prior art keywords
- image frame
- parameter information
- electronic device
- frame
- dynamic effect
- 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
- 230000000694 effects Effects 0.000 title claims abstract description 460
- 238000004364 calculation method Methods 0.000 title claims abstract description 59
- 238000012545 processing Methods 0.000 claims abstract description 82
- 238000000034 method Methods 0.000 claims abstract description 70
- 239000000203 mixture Substances 0.000 claims abstract description 64
- 230000009471 action Effects 0.000 claims description 125
- 230000015654 memory Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 7
- 230000002194 synthesizing effect Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 27
- 238000009877 rendering Methods 0.000 abstract description 22
- 239000010410 layer Substances 0.000 description 124
- 238000004422 calculation algorithm Methods 0.000 description 65
- 230000015572 biosynthetic process Effects 0.000 description 34
- 238000003786 synthesis reaction Methods 0.000 description 34
- 238000010586 diagram Methods 0.000 description 31
- 238000007726 management method Methods 0.000 description 20
- 238000004891 communication Methods 0.000 description 17
- 239000011230 binding agent Substances 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 230000001133 acceleration Effects 0.000 description 10
- 238000007667 floating Methods 0.000 description 9
- 238000010295 mobile communication Methods 0.000 description 6
- 230000005236 sound signal Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 210000000988 bone and bone Anatomy 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- AFWTZXXDGQBIKW-UHFFFAOYSA-N C14 surfactin Natural products CCCCCCCCCCCC1CC(=O)NC(CCC(O)=O)C(=O)NC(CC(C)C)C(=O)NC(CC(C)C)C(=O)NC(C(C)C)C(=O)NC(CC(O)=O)C(=O)NC(CC(C)C)C(=O)NC(CC(C)C)C(=O)O1 AFWTZXXDGQBIKW-UHFFFAOYSA-N 0.000 description 1
- 208000003028 Stuttering Diseases 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000013016 damping Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000005484 gravity 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
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- NJGWOFRZMQRKHT-UHFFFAOYSA-N surfactin Natural products CC(C)CCCCCCCCCC1CC(=O)NC(CCC(O)=O)C(=O)NC(CC(C)C)C(=O)NC(CC(C)C)C(=O)NC(C(C)C)C(=O)NC(CC(O)=O)C(=O)NC(CC(C)C)C(=O)NC(CC(C)C)C(=O)O1 NJGWOFRZMQRKHT-UHFFFAOYSA-N 0.000 description 1
- NJGWOFRZMQRKHT-WGVNQGGSSA-N surfactin C Chemical compound CC(C)CCCCCCCCC[C@@H]1CC(=O)N[C@@H](CCC(O)=O)C(=O)N[C@@H](CC(C)C)C(=O)N[C@H](CC(C)C)C(=O)N[C@@H](C(C)C)C(=O)N[C@@H](CC(O)=O)C(=O)N[C@H](CC(C)C)C(=O)N[C@@H](CC(C)C)C(=O)O1 NJGWOFRZMQRKHT-WGVNQGGSSA-N 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/80—2D [Two Dimensional] animation, e.g. using sprites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供了一种动效计算方法,方法包括:电子设备在***服务侧的图层合成模块新建一个动效处理线程。电子设备将所有应用程序UI线程处理的动效计算均解耦到图层合成模块侧的动效处理线程,由图层合成模块侧的动效处理线程处理所有的所有应用程序UI线程处理的动效计。这样,可以防止应用程序的UI线程在固定周期内没处理完图像帧的绘制和渲染,导致图像帧丢弃的问题。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种动效计算方法及装置。
背景技术
随着信息技术的不断发展,电子设备已经成为人们生活中不可或缺的工具。例如,用户可以在电子设备中安装各种不同的应用程序(application,APP)。不同的APP可以给用户提供不同的服务功能。
目前,为了使得应用程序在启动阶段或退出阶段,给用户带来较好的用户体验,电子设备会在应用程序的启动阶段或退出阶段会播放一段动效。但是,目前,动效均在应用程序的UI线程中执行,在UI线程进行动效计算的同时,还会处理其他的事项。若其他的事项的处理时间比较久,占用了动效计算的时间,UI线程会丢弃部分动效中的图像帧,导致播放的动效出现卡顿的现象。因此,解决动效播放时出现卡顿的问题是亟待解决的问题。
发明内容
本申请提供了一种动效计算方法及装置。实现了在图层合成(surface flinger,SF)模块中新建一个动效处理线程,该动效处理线程专门做动效计算。解决了动效计算在UI线程中计算时得不到及时调度导致动效中部分图像帧丢弃的问题,从而导致动效播放时出现卡顿的情况,使得动效播放更加流畅。
第一方面,本申请提供了一种动效计算方法,电子设备接收用户的第一操作,第一操作用于启动播放第一应用程序的第一动效;根据第一操作,电子设备显示第一动效中的第一图像帧,并通过图层合成模块surfaceflinger基于第一图像帧的第一参数信息确定第一动效中第二图像帧的第二参数信息;电子设备通过surfaceflinger基于第二参数信息合成第二图像帧;电子设备显示第二图像帧。
其中,第一动效可以为启动动效或退出动效;当第一动效为启动动效时,第一操作为播放启动动效的操作,第一操作可以是点击第一应用的图标的操作;当第一动效为退出动效时,第一操作为播放退出动效的操作,第一操作可以是作用于电子设备的下边沿下屏幕的上方的滑动操作。
通过第一方面提供的方法,电子设备在surface flinger中新建一个动效处理线程,该动效处理线程专门做动效计算。解决了动效计算在UI线程中计算时得不到及时调度导致动效中部分图像帧丢弃的问题,从而导致动效播放时出现卡顿的情况,使得动效播放更加流畅。
结合第一方面,在一种可能的实现方式中,在电子设备显示第一动效中的第一图像帧之前,电子设备在surfaceflinger中新建动效处理线程;电子设备通过图层合成模块surfaceflinger基于第一图像帧的第一参数信息确定出第一动效中第二图像帧的第二参数信息,包括:电子设备通过动效处理线程根据第一图像帧的第一参数信息确定出第二图像帧的第二参数信息。这样,电子设备在surfaceflinger侧新建动效处理线程,可以将电子设备中的所有应用程序的动效计算的任务事项放在surfaceflinger侧的动效处理线程区处理,一方面,可以集中调度电子设备中所有应用程序的动效计算的任务事项;另一方面,解决了动效计算在UI线程中计算时得不到及时调度导致动效中部分图像帧丢弃的问题,从而导致动效播放时出现卡顿的情况,使得动效播放更加流畅。
结合第一方面,在一种可能的实现方式中,电子设备通过surfaceflinger根据第一图像帧的第一参数信息得到第二图像帧的第二参数信息,包括:电子设备通过surfaceflinger基于第一参数信息插值运算出第二参数信息。即surfaceflinger按照插值算法根据启动动效或退出动效中当前显示的图像帧的初始参数信息来计算下一帧图像帧的参数信息的。这样,电子设备使用插值算法得到图像帧的参数信息合成的图像帧播放动效时,电子设备显示的动效效果会更加流畅。
插值算法可以通过如下公式根据动效中当前图像帧的参数信息得到下一帧图像帧的参数信息:
a=k*x/m 公式(1)
V=v+a*t 公式(2)
P=p+V*t 公式(3)
如公式(1)、公式(2)和公式(3)所示,插值算法可以通过公式(1)、公式(2)和公式(3)根据图像帧的预设参数信息得到目标参数信息。在公式(1)、公式(2)和公式(3),a表示加速度,k表示刚性,根据弹簧的胡可定理,得到k=-F/x,其中,x表示弹簧形变的长度,F表示使弹簧发生形变的长度为x时收到的力,根据牛顿力学公式,F可以表示为F=m*a,其中,m为物体的指令。根据公式k=-F/x和公式F=m*a,可以的带加速度a=-k*x/m。
v表示物体的初始速度,V表示物体的下一时刻的速度,P表示物体的初始位置,p表示物体的下一时刻的位置,t表示当前电子设备100计算的是启动动效或者退出动效中的第几帧图像帧的参数信息。需要说明的是,当电子设备100在计算启动动效中的图像帧的参数信息时,公式(3)中的v为正数;当电子设备100在计算退出动效中的图像帧的参数信息时,公式(3)中的v为负数。
结合第一方面,在一种可能的实现方式中,第一图像帧为第一动效中的首帧图像帧;在电子设备通过surfaceflinger基于第一图像帧的第一参数信息确定出第一动效中第二图像帧的第二参数信息之前,方法还包括:surfaceflinger通过第一应用程序获取第一参数信息。电子设备通过插值算法实时确定出下一时刻图像帧的参数信息时,需要知道第一动效中初始图像帧的参数信息。这里,第一图像帧为第一动效中的初始图像帧,电子设备100可以根据第一图像帧的第一参数信息得到第二图像帧的第二参数信息,以此类推。
结合第一方面,在一种可能的实现方式中,在电子设备显示第二图像帧之后,方法还包括:电子设备接收用户的第二操作,第二操作用于启动播放第一应用程序的第二动效;根据第二操作,电子设备通过surfaceflinger基于第二参数信息确定出第三图像的第三参数信息;其中,第三图像帧为第二动效中的首帧图像帧。
电子设备通过surfaceflinger基于第三参数信息合成第三图像帧;电子设备显示第三图像帧。
这里,第一操作为播放启动动效的操作,第二操作为播放退出动效的操作,第三图像帧为第二动效中的首帧图像帧。电子设备根据第二图像帧的第二参数信息确定第三图像帧的第三参数信息,即退出动效的首帧图像帧的参数信息是根据启动动效中显示的最后一帧图像帧得到的。启动动效中显示的最后一帧图像帧可以是启动动效中的最后一帧图像帧,也可以是启动动效中的最后一帧图像帧之前的任意一帧图像帧。这样,电子设备使用插值算法得到图像帧的参数信息合成的图像帧播放动效时,电子设备显示的退出动效的效果会更加流畅。
结合第一方面,在一种可能的实现方式中,第二图像帧为第一动效的最后一帧图像帧;在电子设备接收用户的第二操作之前,方法还包括:电子设备在播放完第一动效后,显示第一应用程序的第一用户界面。也即,启动动效中显示的最后一帧图像帧可以是启动动效中的最后一帧图像帧。
在另一种可能的实现方式中,当电子设备显示第二图像帧时,电子设备接收用户的第二操作。也即,电子设备在播放启动动效的过程中,接收用户的第二操作。这里,第二图像帧可以是启动动效中的最后一帧图像帧,也可以是启动动效中的最后一帧图像帧之前的任意一帧图像帧。
结合第一方面,在一种可能的实现方式中,第一参数信息包括以下任意一项或多项:第一图像帧的中心点的位置、第一图像帧的窗口尺寸、第一图像帧的透明度、第一图像帧的圆角大小;第二参数信息包括以下任意一项或多项:第二图像帧的中心点的位置、第二图像帧的窗口尺寸、第二图像帧的透明度、第二图像帧的圆角大小;第三参数信息包括以下任意一项或多项:第三图像帧的中心点的位置、第三图像帧的窗口尺寸、第三图像帧的透明度、第三图像帧的圆角大小。
第二方面,本申请提供了一种电子设备,电子设备包括:一个或多个处理器、一个或多个存储器;一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,一个或多个处理器调用计算机指令以使得电子设备执行:接收用户的第一操作,第一操作用于启动播放第一应用程序的第一动效;根据第一操作,显示第一动效中的第一图像帧,并通过图层合成模块surfaceflinger基于第一图像帧的第一参数信息确定第一动效中第二图像帧的第二参数信息;通过surfaceflinger基于第二参数信息合成第二图像帧;显示第二图像帧。其中,第一动效可以为启动动效或退出动效;当第一动效为启动动效时,第一操作为播放启动动效的操作,第一操作可以是点击第一应用的图标的操作;当第一动效为退出动效时,第一操作为播放退出动效的操作,第一操作可以是作用于电子设备的下边沿下屏幕的上方的滑动操作。
通过第一方面提供的方法,电子设备在surface flinger中新建一个动效处理线程,该动效处理线程专门做动效计算。解决了动效计算在UI线程中计算时得不到及时调度导致动效中部分图像帧丢弃的问题,从而导致动效播放时出现卡顿的情况,使得动效播放更加流畅。
结合第二方面,在一种可能的实现方式中,在电子设备显示第一动效中的第一图像帧之前,一个或多个处理器具体用于调用计算机指令以使得电子设备执行:
在surfaceflinger中新建动效处理线程;通过动效处理线程根据第一图像帧的第一参数信息确定出第二图像帧的第二参数信息。这样,电子设备在surfaceflinger侧新建动效处理线程,可以将电子设备中的所有应用程序的动效计算的任务事项放在surfaceflinger侧的动效处理线程区处理,一方面,可以集中调度电子设备中所有应用程序的动效计算的任务事项;另一方面,解决了动效计算在UI线程中计算时得不到及时调度导致动效中部分图像帧丢弃的问题,从而导致动效播放时出现卡顿的情况,使得动效播放更加流畅。
结合第二方面,在一种可能的实现方式中,一个或多个处理器具体用于调用计算机指令以使得电子设备执行:通过surfaceflinger基于第一参数信息插值运算出第二参数信息。这样,电子设备使用插值算法得到图像帧的参数信息合成的图像帧播放动效时,电子设备显示的动效效果会更加流畅。
插值算法可以通过如下公式根据动效中当前图像帧的参数信息得到下一帧图像帧的参数信息:
a=k*x/m 公式(1)
V=v+a*t 公式(2)
P=p+V*t 公式(3)
如公式(1)、公式(2)和公式(3)所示,插值算法可以通过公式(1)、公式(2)和公式(3)根据图像帧的预设参数信息得到目标参数信息。在公式(1)、公式(2)和公式(3),a表示加速度,k表示刚性,根据弹簧的胡可定理,得到k=-F/x,其中,x表示弹簧形变的长度,F表示使弹簧发生形变的长度为x时收到的力,根据牛顿力学公式,F可以表示为F=m*a,其中,m为物体的指令。根据公式k=-F/x和公式F=m*a,可以的带加速度a=-k*x/m。
v表示物体的初始速度,V表示物体的下一时刻的速度,P表示物体的初始位置,p表示物体的下一时刻的位置,t表示当前电子设备100计算的是启动动效或者退出动效中的第几帧图像帧的参数信息。需要说明的是,当电子设备100在计算启动动效中的图像帧的参数信息时,公式(3)中的v为正数;当电子设备100在计算退出动效中的图像帧的参数信息时,公式(3)中的v为负数。
结合第二方面,在一种可能的实现方式中,第一图像帧为第一动效中的首帧图像帧;在电子设备通过surfaceflinger基于第一图像帧的第一参数信息确定出第一动效中第二图像帧的第二参数信息之前,一个或多个处理器具体用于调用计算机指令以使得电子设备执行:surfaceflinger通过第一应用程序获取第一参数信息。电子设备通过插值算法实时确定出下一时刻图像帧的参数信息时,需要知道第一动效中初始图像帧的参数信息。这里,第一图像帧为第一动效中的初始图像帧,电子设备100可以根据第一图像帧的第一参数信息得到第二图像帧的第二参数信息,以此类推。
结合第二方面,在一种可能的实现方式中,在电子设备显示第二图像帧之后,一个或多个处理器具体用于调用计算机指令以使得电子设备执行:电子设备接收用户的第二操作,第二操作用于启动播放第一应用程序的第二动效;根据第二操作,电子设备通过surfaceflinger基于第二参数信息确定出第三图像的第三参数信息;其中,第三图像帧为第二动效中的首帧图像帧;电子设备通过surfaceflinger基于第三参数信息合成第三图像帧;电子设备显示第三图像帧。
这里,第一操作为播放启动动效的操作,第二操作为播放退出动效的操作,第三图像帧为第二动效中的首帧图像帧。电子设备根据第二图像帧的第二参数信息确定第三图像帧的第三参数信息,即退出动效的首帧图像帧的参数信息是根据启动动效中显示的最后一帧图像帧得到的。启动动效中显示的最后一帧图像帧可以是启动动效中的最后一帧图像帧,也可以是启动动效中的最后一帧图像帧之前的任意一帧图像帧。这样,电子设备使用插值算法得到图像帧的参数信息合成的图像帧播放动效时,电子设备显示的退出动效的效果会更加流畅。
结合第二方面,在一种可能的实现方式中,第二图像帧为第一动效的最后一帧图像帧;在电子设备接收用户的第二操作之前,一个或多个处理器具体用于调用计算机指令以使得电子设备执行:在播放完第一动效后,显示第一应用程序的第一用户界面。也即,启动动效中显示的最后一帧图像帧可以是启动动效中的最后一帧图像帧。
在另一种可能的实现方式中,一个或多个处理器具体用于调用计算机指令以使得电子设备执行:当电子设备显示第二图像帧时,电子设备接收用户的第二操作。也即,电子设备在播放启动动效的过程中,接收用户的第二操作。这里,第二图像帧可以是启动动效中的最后一帧图像帧,也可以是启动动效中的最后一帧图像帧之前的任意一帧图像帧。
结合第二方面,在一种可能的实现方式中,第一参数信息包括以下任意一项或多项:第一图像帧的中心点的位置、第一图像帧的窗口尺寸、第一图像帧的透明度、第一图像帧的圆角大小;第二参数信息包括以下任意一项或多项:第二图像帧的中心点的位置、第二图像帧的窗口尺寸、第二图像帧的透明度、第二图像帧的圆角大小;第三参数信息包括以下任意一项或多项:第三图像帧的中心点的位置、第三图像帧的窗口尺寸、第三图像帧的透明度、第三图像帧的圆角大小。
第三方面,本申请提供了一种计算机可读存储介质,包括指令,当指令在电子设备上运行时,使得电子设备执行上述任一方面任一可能的实现方式中提供的一种动效计算方法。
第四方面,本申请提供了一种包含指令的计算机程序产品质,当计算机程序产品在电子设备上运行时,使得电子设备执行上述任一方面任一可能的实现方式中提供的一种动效计算方法。
附图说明
图1A-图1M为本申请实施例提供的一组启动动效的UI图;
图2A-图2M为本申请实施例提供的另一组启动动效的UI图;
图3A-图3E为本申请实施例提供的另一组启动动效的UI图;
图4A-图4B为本申请实施例提供的一组动效中图像帧的中心点的运动轨迹示意图;
图5为本申请实施例提供的一种电子设备100播放启动动效和播放退出动效的示意图;
图6为本申请实施例提供的一种第一应用程序的UI线程处理动效计算的工作原理图;
图7为本申请实施例提供的一种UI线程处理图像帧导致丢帧的示意图;
图8为本申请实施例提供的一种电子设备100的结构示意图;
图9为本申请实施例提供的一种电子设备100的软件结构框图;
图10为本申请实施例提供的一种图层合成模块多线性运行的示意图;
图11为本申请实施例提供的几种插值算法的动效曲线的效果示意图;
图12为本申请实施例提供的另一种电子设备100播放启动动效和播放退出动效的示意图;
图13为本申请实施例提供的一种动效计算方法流程图;
图14为本申请实施例提供的一种图层合成模块中的动效线程图像帧的参数计算、合成动效中的图像帧和显示图像帧的示意图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清除、详尽地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请的说明书和权利要求书及附图中的术语“用户界面(user interface,UI)”,是应用程序或操作***与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。应用程序的用户界面是通过java、可扩展标记语言(extensible markup language,XML)等特定计算机语言编写的源代码,界面源代码在终端设备上经过解析,渲染,最终呈现为用户可以识别的内容,比如图像、文本、按钮等控件。控件(control)也称为部件(widget),是用户界面的基本元素,典型的控件有工具栏(toolbar)、菜单栏(menu bar)、输入框、按钮(button)、滚动条(scrollbar)、图像和文本。界面中的控件的属性和内容是通过标签或者节点来定义的,比如XML通过<Textview>、<ImgView>、<VideoView>等节点来规定界面所包含的控件。一个节点对应界面中一个控件或属性,节点经过解析和渲染之后呈现为用户可视的内容。此外,很多应用程序,比如混合应用(hybrid application)的界面中通常还包含有网页。网页,也称为页面,可以理解为内嵌在应用程序界面中的一个特殊的控件,网页是通过特定计算机语言编写的源代码,例如超文本标记语言(hyper text markup language,HTML),层叠样式表(cascading stylesheets,CSS),java脚本(JavaScript,JS)等,网页源代码可以由浏览器或与浏览器功能类似的网页显示组件加载和显示为用户可识别的内容。网页所包含的具体内容也是通过网页源代码中的标签或者节点来定义的,比如HTML通过<p>、<img>、<video>、<canvas>来定义网页的元素和属性。
用户界面常用的表现形式是图形用户界面(graphic user interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的一个窗口、控件等界面元素。
首先对本申请实施例涉及到的技术术语进行解释。
1、动效
动效即M帧图像帧按照预定顺序变换位置、大小和显示形式等等,使用户感觉到电子设备显示的用户界面的层次更加丰富。
本申请实施例涉及的动效包括启动动效和退出动效。其中,从应用程序接收用户触发应用程序启动操作开始,至电子设备100显示该应用程序的主界面之前,这个阶段称为应用程序的启动阶段,启动阶段花费的时间称为启动时间。由于在应用程序的启动阶段,电子设备100需要对应用程序进行初始化和预加载的工作,启动时间较长,为了给用户带来更好的用户体验,电子设备100会在应用程序的启动阶段播放一段启动动效,启动功效可以是由N帧图像帧按照预定的顺序按照预设窗口大小、预设显示时间、预设显示位置和预设透明度和预设的显示元素等悬浮显示在电子设备100的用户界面上。从应用程序启动之后,电子设备100接收用户退出应用程序的操作,至电子设备100显示主界面为止,这个阶段称为应用程序的退出阶段,退出阶段花费的时间称为退出时间。由于在应用程序的退出时间较长,为了给用户带来更好的用户体验,电子设备100会在应用程序的退出阶段播放一段退出动效,退出功效可以是由N帧图像帧按照预定的顺序按照预设窗口大小、预设显示时间、预设显示位置和预设透明度和预设的显示元素等悬浮显示在电子设备100的用户界面上。
可以理解的是,启动动效和退出动效可以是互逆的动效,也可以是互不相同的两段动效,本身请在此不做限定。
(1)、启动动效
图1A-图1M、图2A-图2M、图3A-图3E示例性示出了几种启动动效的UI示例图。
如图1A-图1M,在一些实施例中,每一帧图像帧的尺寸从预设最小尺寸逐渐变大到预设最大尺寸。
在一种可能的实现方式中,启动动效中的图像帧的中心点与电子设备100的显示屏的中心点重合,每一帧图像帧的尺寸随着时间的推移可以先从预设最小尺寸逐渐成比例变大至预设最大尺寸。
如图1A所示,图1A示例性了一种启动动效中图像帧的尺寸变化的示意图。
例如在t1时刻,电子设备100接收并响应用户点击应用图标的操作,该应用程序的图标的尺寸不变,应用程序的原始尺寸可以称为预设最小尺寸;之后,在t2时刻,应用程序的图标的尺寸逐渐增大;在t3时刻,应用程序的图标的尺寸不再变大,电子设备100显示矩形框,该矩形框的尺寸如t3时刻所示的矩形框尺寸;在t4时刻,矩形框的尺寸由t3时刻增大到t4时刻的矩形框的尺寸;在t5时刻,矩形框的尺寸由t4时刻增大到t4时刻的矩形框的尺寸,将t5时刻的矩形框的尺寸称为预设最大尺寸。
如图1B所示,启动动效中,第一帧图像帧1001的尺寸大小与应用程序的图标的尺寸大小一致,并且该第一帧图像帧1001的中心点与应用程序的图标的中心点处于同一位置,即都处于位置1002。第一帧图像帧1001的尺寸为最小尺寸(即宽为a,高为b)。第一帧图像帧1001可以从预设最小尺寸逐渐变大至图像帧1003的预设最大尺寸,预设最大尺寸为宽为A,长为B。
如图1C所示,启动动效中,第一帧图像帧1001从预设最小尺寸逐渐变大至图像帧1004,并且图像帧1004的中心点与应用程序的图标的中心点处于同一位置,即都处于位置1002。图像帧1004的尺寸为宽为c,高为d。c大于a,d大于b。
如图1D所示,启动动效中,图像帧1004的尺寸逐渐变大至图像帧1005,并且图像帧1005的中心不再与应用程序的图标的中心点1002处于同一位置,而是与图像帧1003的中心点处于同一位置,即都处于位置1006。图像帧1005的尺寸为宽为e,高为f。f大于d。
如图1E所示,启动动效中,图像帧1005的尺寸逐渐变大至图像帧1007,并且图像帧1007的中心不再与应用程序的图标的中心点1002处于同一位置,而是与图像帧1003的中心点处于同一位置,即都处于位置1006。图像帧1007的尺寸为宽为g,高为h。g大于e,h大于f。
如图1F所示,启动动效中,图像帧1007的尺寸逐渐变大至图像帧1008,并且图像帧1008的中心不再与应用程序的图标的中心点1002处于同一位置,而是与图像帧1003的中心点处于同一位置,即都处于位置1006。图像帧1007的尺寸为宽为i,高为j。i大于g,j大于h。i等于A,j等于B。
当应用程序启动时,电子设备100可以在应用程序的启动阶段播放启动动效,启动动效包括多帧图像帧,每帧图像帧的显示位置和尺寸可以不同。电子设备100按照顺序依次显示多帧图像帧。
示例性的,如图1G所示,图1G示例性地示出电子设备100的用户界面10。该用户界面10可以包括一些应用程序的图标。例如,文件管理的图标1009、电子邮件的图标1010、音乐的图标1011、运动健康的图标1012、华为视频的图标1013、天气的图标1014、相机的图标1015、通讯录的图标1016、电话的图标1017、信息的图标1018。在一些实施例中,用户界面10可以包括更多或更少的应用程序的图标。在一些实施例中,用户界面10中可以包括一些与图1G示出的应用程序不同的应用程序的图标,此处不作限定。
电子设备100可以接收并响应于作用于用户界面10上的华为视频的图标1013上的用户操作(例如单击),华为视频应用程序将会启动。
如图1H所示,第一帧图像帧1001的图像内容与华为视频应用程序的图标的图像内容一样,第一帧图像帧1001的尺寸大小与华为视频应用程序的图标的尺寸大小一致,并且该第一帧图像帧1001的中心点与华为视频应用程序的图标的中心点处于同一位置。
如图1I所示,第一帧图像帧1001从预设最小尺寸逐渐变大至图像帧1004,图像帧1004的图像内容与华为视频应用程序的图标的图像内容一样,并且图像帧1004的中心点与华为视频应用程序的图标的中心点处于同一位置。
如图1J所示,图像帧1004的尺寸逐渐变大至图像帧1005,图像帧1005的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。并且图像帧1005的中心不再与华为视频应用程序的图标的中心点1002处于同一位置,而是与电子设备100的显示屏的中心点处于同一位置。
如图1K所示,图像帧1005的尺寸逐渐变大至图像帧1007,图像帧1007的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。并且图像帧1007的中心不再与华为视频应用程序的图标的中心点1002处于同一位置,而是与电子设备100的显示屏的中心点处于同一位置。
如图1L所示,图像帧1007的尺寸逐渐变大至图像帧1008,图像帧1008的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定,如图1L所示,图像帧1008的图像内容包括华为视频的图标以及文字“华为视频”和“看遍全世界”。并且图像帧1008的中心不再与华为视频应用程序的图标的中心点1002处于同一位置,而是与电子设备100的显示屏的中心点处于同一位置。
如图1M所示,电子设备100的启动动效播放完毕之后,电子设备100显示华为视频应用程序的主界面。华为视频应用程序的主界面包括有一个或多个视频图像。视频的图像可以是动态的,也可以是静态的。此外,主界面还可以显示有底部菜单栏、搜索框、子频道入口等,本申请实施例对此不作限制。
如图2A-图2M,在一些实施例中,启动动效中,图像帧的中心点是实时变化的,每一帧图像帧的尺寸从预设最小尺寸逐渐变大到预设最大尺寸,且图像帧任一条边框与预设最大尺寸图像帧的边框相接触。
如图2A所示,图2A示例性了另一种启动动效中图像帧的尺寸变化的示意图。
例如在t1时刻,电子设备100接收并响应用户点击应用图标的操作,该应用程序的图标的尺寸不变,应用程序图标的原始尺寸可以称为预设最小尺寸;之后,在t2时刻,应用程序的图标的尺寸逐渐增大;在t3时刻,应用程序的图标的尺寸不再变大,电子设备100显示矩形框,该矩形框的尺寸如t3时刻所示的矩形框尺寸;在t4时刻,矩形框的尺寸由t3时刻增大到t4时刻的矩形框的尺寸,并且t4时刻的矩形框的一条边框(例如下边框)与预设最大尺寸的矩形框的边框(力图下边框重合);在t5时刻,矩形框的尺寸由t4时刻增大到t5时刻的矩形框的尺寸,并且t5时刻的矩形框的另一条边框(例如左边框)与预设最大尺寸的矩形框的另一条边框(例如左边框)重合;在t6时刻,矩形框的尺寸由t5时刻增大到t6时刻的矩形框的尺寸,将t6时刻的矩形框的尺寸称为预设最大尺寸。
如图2B所示,启动动效中,第一帧图像帧2004的尺寸大小与应用程序的图标的尺寸大小一致,并且该第一帧图像帧2004的中心点与应用程序的图标的中心点处于同一位置,即都处于位置2001,第一帧图像帧2004的中心点与电子设备100的显示屏的中心点2002不重合。第一帧图像帧2004的尺寸为最小尺寸(即宽为a,高为b)。第一帧图像帧2004可以从预设最小尺寸逐渐变大至图像帧2003的预设最大尺寸,预设最大尺寸为宽为A,长为B。
如图2C所示,启动动效中,第一帧图像帧2004从预设最小尺寸逐渐变大至图像帧2005,并且图像帧2005的中心点与应用程序的图标的中心点处于同一位置,即都处于位置2001,图像帧2005的中心点与电子设备100的显示屏的中心点2002不重合。图像帧2005的尺寸为宽为c,高为d。c大于a,d大于b。
如图2D所示,启动动效中,图像帧2005的尺寸逐渐变大至图像帧2006,并且图像帧2006的中心点2007不再与应用程序的图标的中心点2001处于同一位置,同时也不与图像帧2003的中心点2002处于同一位置。图像帧2006的尺寸为宽为e,高为f。f大于d。
如图2E所示,启动动效中,图像帧2006的尺寸逐渐变大至图像帧2008,图像帧2008的任意一个边框(例如下边框)与图像帧2003的边框(例如下边框)重合。并且图像帧2008的中心点2009不再与应用程序的图标的中心点2001处于同一位置,同时也不与图像帧2006的中心点2007处于同一位置,也不与图像帧2003的中心点2002处于同一位置。图像帧2008的尺寸为宽为g,高为h。g大于e,h大于f。
如图2F所示,启动动效中,图像帧2008的尺寸逐渐变大至图像帧2010,图像帧2010的任意一个边框(例如下边框)与图像帧2003的边框(例如下边框)重合。同时图像帧2010的任意另一个边框(例如左边框)与图像帧2003的另一个边框(例如左边框)重合。并且图像帧2010的中心点2011不再与应用程序的图标的中心点2001处于同一位置,同时也不与图像帧2006的中心点2007处于同一位置,也不与图像帧2008的中心点2009处于同一位置,也不与图像帧2003的中心点2002处于同一位置。图像帧2010的尺寸为宽为i,高为j。i大于g,j大于h。
如图2G所示,启动动效中,图像帧2010的尺寸逐渐变大至图像帧2012,图像帧2012的所有边框与图像帧2003的所有边框重合。并且图像帧2012的中心点2013不与应用程序的图标的中心点2001处于同一位置,同时也不与图像帧2006的中心点2007处于同一位置,也不与图像帧2008的中心点2009处于同一位置,也不与图像帧2010的中心点2011处于同一位置,而是与图像帧2003的中心点2002处于同一位置。图像帧2012的尺寸为宽为k,高为l。k大于i,l大于j。k等于A,j等于B。
当应用程序启动时,电子设备100可以在应用程序的启动阶段播放启动动效,启动动效包括多帧图像帧,每帧图像帧的显示位置和尺寸可以不同。电子设备100按照顺序依次显示多帧图像帧。
示例性的,如图1G所示,图1G示例性地示出电子设备100的用户界面10。该用户界面10可以包括一些应用程序的图标。例如,文件管理的图标1009、电子邮件的图标1010、音乐的图标1011、运动健康的图标1012、华为视频的图标1013、天气的图标1014、相机的图标1015、通讯录的图标1016、电话的图标1017、信息的图标1018。在一些实施例中,用户界面10可以包括更多或更少的应用程序的图标。在一些实施例中,用户界面10中可以包括一些与图1G示出的应用程序不同的应用程序的图标,此处不作限定。
电子设备100可以接收并响应于作用于用户界面10上的华为视频的图标1013上的用户操作(例如单击),华为视频应用程序将会启动。
如图2H所示,第一帧图像帧2004的图像内容与华为视频应用程序的图标的图像内容一样,第一帧图像帧2004的尺寸大小与华为视频应用程序的图标的尺寸大小一致,并且该第一帧图像帧204的中心点2001与华为视频应用程序的图标的中心点处于同一位置。
如图2I所示,第一帧图像帧2004从预设最小尺寸逐渐变大至图像帧2005,图像帧2005的图像内容与华为视频应用程序的图标的图像内容一样,并且图像帧2005的中心点与华为视频应用程序的图标的中心点2001处于同一位置,与电子设备100的显示屏的中心点2002不处于同一位置。
如图2J所示,图像帧2005的尺寸逐渐变大至图像帧2006,图像帧2006的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。并且图像帧2006的中心点2007不再与华为视频应用程序的图标的中心点2001处于同一位置,也不与电子设备100的显示屏的中心点2002处于同一位置。
如图2K所示,图像帧2006的尺寸逐渐变大至图像帧2008,图像帧2008的一个边框(例如下边框)与电子设备100的显示屏的边框(例如下边框)重合,图像帧2008的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。并且图像帧2008的中心点2009不再与华为视频应用程序的图标的中心点2001处于同一位置,与图像帧2006的中心点2007也不处于同一位置,与电子设备100的显示屏的中心点2002不处于同一位置。
如图2L所示,图像帧2008的尺寸逐渐变大至图像帧2010,图像帧2010的另一个边框(例如左边框)与电子设备100的显示屏的另一个边框(例如左边框)重合,图像帧2008的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。并且图像帧2010的中心点2011不再与华为视频应用程序的图标的中心点2001处于同一位置,与图像帧2006的中心点2007也不处于同一位置,与图像帧2008的中心点2009也不处于同一位置,与电子设备100的显示屏的中心点2002不处于同一位置。
如图2M所示,图像帧2010的尺寸逐渐变大至图像帧2012,图像帧2012的所有边框与电子设备100的显示屏的所有边框重合,图像帧2012的图像内容可以不显示任何元素,也可以显示一个或多个元素,本申请在此不做限定。如图2M所示,图像帧2012的图像内容包括华为视频的图标以及文字“华为视频”和“看遍全世界”。并且图像帧2012的中心点2013不再与华为视频应用程序的图标的中心点2001处于同一位置,与图像帧2006的中心点2007也不处于同一位置,与图像帧2008的中心点2009也不处于同一位置,与图像帧2010的中心点2011也不处于同一位置,而是与电子设备100的显示屏的中心点2002处于同一位置。
如图3A-图3E,在一些实施例中,启动动效中,每一帧图像帧的尺寸是固定的,每一帧图像帧的中心点按照预设轨迹移动。其中,每一帧图像帧的形状可以是圆形、也可以为矩形的,本申请在此不做限定。
电子设备100接收并响应用户点击应用图标的操作,应用程序的图标的尺寸逐渐变大,当应用程序的图标的尺寸变大到预设尺寸之后,应用程序的图标的尺寸不再变化,电子设备100的用户界面悬浮显示图像帧,该图像帧可以按照按照预设轨迹移动。具体的,应用程序的图标变化的UI图请参考图1G-图1I的实施例,本申请在此不再赘述。图像帧按照按照预设轨迹移动的UI图请参考下述图3A-图3E的实施例。
示例性的,如图3A所示,图像帧3004的中心点3001可以在位置3002和位置3003之间以直线轨迹左右移动。当图像帧3004的中心点3001处于位置3002时,图像帧3004的左边框可以与电子设备100显示屏的左边框重合。当图像帧3004的中心点3001处于位置3003时,图像帧3004的右边框可以与电子设备100显示屏的右边框重合。图像帧3004的图像内容可以包括一个或多个元素,也可以不包括任何元素,本申请在此不做限定。
示例性的,如图3B所示,图像帧3004的中心点3001可以在位置3005和位置3006之间以直线轨迹上下移动。当图像帧3004的中心点3001处于位置3005时,图像帧3004的上边框可以与电子设备100显示屏的上边框重合。当图像帧3004的中心点3001处于位置3006时,图像帧3004的下边框可以与电子设备100显示屏的下边框重合。图像帧3004的图像内容可以包括一个或多个元素,也可以不包括任何元素,本申请在此不做限定。
示例性的,如图3C所示,图像帧3004的中心点3001可以在位置3007和位置3008之间以直线轨迹向右上和左下移动。当图像帧3004的中心点3001处于位置3007时,图像帧3004的上边框可以与电子设备100显示屏的上边框重合,同时图像帧3004的右边框可以与电子设备100显示屏的右边框重合。当图像帧3004的中心点3001处于位置3008时,图像帧3004的下边框可以与电子设备100显示屏的下边框重合,同时图像帧3004的左边框可以与电子设备100显示屏的左边框重合。图像帧3004的图像内容可以包括一个或多个元素,也可以不包括任何元素,本申请在此不做限定。
示例性的,如图3D所示,图像帧3004的中心点3001可以在位置3009和位置3010之间以直线轨迹向左上和右下移动。当图像帧3004的中心点3001处于位置3009时,图像帧3004的上边框可以与电子设备100显示屏的上边框重合,同时图像帧3004的左边框可以与电子设备100显示屏的左边框重合。当图像帧3004的中心点3001处于位置3010时,图像帧3004的下边框可以与电子设备100显示屏的下边框重合,同时图像帧3004的右边框可以与电子设备100显示屏的右边框重合。图像帧3004的图像内容可以包括一个或多个元素,也可以不包括任何元素,本申请在此不做限定。
如图3E所示,图像帧3004的中心点3001的运动轨迹961可以为心形图形,其中,图像帧3004可以在该运动轨迹3011上按照顺时针或者逆时针运动。
需要说明的是,上述图像帧3004的中心点3001在电子设备100中的运动轨迹不限于上述图形,还可以有其他图形,例如,圆形、横“8”曲线图形、贝塞尔曲线图形、圆弧曲线图形,等等,本申请在此不做限定。
(2)退出特效
电子设备100接收用户启动应用程序的操作之后,电子设备100再接收用户退出应用程序的操作,至电子设备100显示主界面为止,这个阶段称为应用程序的退出阶段,退出阶段花费的时间称为退出时间。由于在应用程序的退出时间较长,为了给用户带来更好的用户体验,电子设备100会在应用程序的退出阶段播放一段退出动效,退出功效可以是由N帧图像帧按照预定的顺序按照预设窗口大小、预设显示时间、预设显示位置和预设透明度和预设的显示元素等悬浮显示在电子设备100的用户界面上。
在一些实施例中,当应用程序已经显示应用程序的主界面时,电子设备100接收用户退出该应用程序的操作。此时,在退出动效中,每一帧图像帧的尺寸从预设最大尺寸逐渐变小到预设最小尺寸。其中,预设最大尺寸可以为与电子设备100的显示屏的尺寸大小一样,预设最小尺寸可以与应用程序的图标的尺寸大小一致。
具体的,在一种可能的现方式中,退出动效中,图像帧的显示顺序可以是按照图1L、图1K、图1J、图1I、图1H的顺序依次显示。
在另一种可能的现方式中,退出动效中,图像帧的显示顺序可以是按照图2M、图2L、图2K、图2J、图2I、图2H的顺序依次显示。
退出特效中,图像帧还可以按照其他的规则依次显示,本申请在此不做限定。
在另一些实施例中,当应用程序已经启动,在显示应用程序的主界面之前,电子设备100接收用户退出该应用程序的操作。假设该应用程序的启动动效包括M帧图像帧,退出动效也包括M帧图像帧。当启动动效播放至第N帧时,N小于M,此时,在电子设备100在播放退出动效中,有以下两种实现方式。
方式一:
当启动动效播放至第N帧时,N小于M,电子设备100接收用户退出该应用程序的操作,则电子设备100启动退出动效,并停止播放启动动效中的图像帧,并且电子设备100开始从退出动效的第M帧开始播放,一直播放到退出动效中的第1帧图像帧。
需要说明的是,启动动效包括M帧图像帧,启动动效的播放顺序为第1帧图像帧、第2帧图像帧、…第N帧图像帧、…、第M帧图像帧。
退出动效包括M帧图像帧,退出动效的播放顺序为第M帧图像帧、第M-1帧图像帧、…第N帧图像帧、…、第1帧图像帧。
示例性的,若某应用程序的启动动效包括30帧图像帧,退出动效也包括30帧图像帧。应用程序启动之后,该应用程序的启动动效播放到了第8帧,电子设备100已播放的图像帧为第1帧图像帧至第8帧图像帧,第1帧图像帧至第8帧图像帧可以是图1H至图1K所示的UI图。可以理解的是,图1H至图1K中省略了部分附图。
示例性的,如图4A所示,图4A示例性示出了启动动效中从第1帧播放至第8帧的每帧图像帧的中心点的运动轨迹示意图。
当启动动效播放至第8帧时,电子设备100接收用户退出该应用程序的操作,则电子设备100启动退出动效,并且电子设备100开始从退出动效的第8帧图像帧开始播放,一直播放至退出动效的第1帧图像帧。第8帧图像帧至第1帧图像帧可以是图1K至图1H所示的UI图。可以理解的是,图1K至图1H中省略了部分附图。
需要说明的是,退出动效中每一帧图像帧的图像信息与启动动效中每一帧图像帧的图像信息可以相同,也可以不相同,本申请在此不做限定,图像信息但不仅限于:图像帧的尺寸、图像帧的显示元素、图像帧的透明度、图像帧的显示时间、图像帧的圆角信息等等。
如图4A所示,以电子设备100的页面显示区域的下边框指向右方向为X轴的正方向,以电子设备100的页面显示区域的左边框向上方向为Y轴的正方向,以X轴和Y轴的交点为原点建立直角坐标系。
首先,初始位置为启动动效中第1帧图像帧的中心点,第1帧图像帧的中心点为启动动效每帧图像帧的中心点的运动轨迹的初始位置。之后,启动动效中每帧图像帧的中心点按照运动轨迹4001的方向依次移动,当启动动效中第8帧图像帧的中心点移动到运动轨迹的最终位置时,电子设备100接收用户退出应用程序的操作,电子设备100执行退出动效。
如图4B所示,初始位置为启动动效中第8帧图像帧的中心点,电子设备100将启动退出动效,并且依次播放退出动效中的第8帧图像帧至第1帧图像帧。可以理解的是,退出动效中第8帧的图像帧的中心点与启动动效中第8帧图像帧的中心点重合。退出动效中的第8帧图像帧的中心点为退出动效中每帧图像帧的中心点的运动轨迹的初始位置。之后,退出动效中每帧图像帧的中心点按照运动轨迹4002的方向依次移动,当启动动效中第1帧图像帧的中心点移动到运动轨迹的最终位置时,电子设备100退出该应用程序,并显示主界面。
需要说明的是,运动轨迹4001与运动轨迹4002可以相同,也可以不相同,本申请在此不做限定。
方式二:
当启动动效播放至第N帧时,N小于M,电子设备100接收用户退出该应用程序的操作,则电子设备100启动退出动效,但是电子设备100并不停止播放启动动效中的图像帧,电子设备100将启动动效中的第N+1帧图像帧至第M帧图像帧与退出动效中第1帧图像帧至第M-N帧图像帧分别对应叠加,得到新的M-N帧图像帧。电子设备100将播放新的M-N帧图像帧和退出动效中的第M-N+1帧图像帧至第M帧图像帧。
示例性的,若某应用程序的启动动效包括30帧图像帧,退出动效也包括30帧图像帧。应用程序启动之后,该应用程序的启动动效播放到了第8帧,电子设备100已播放的图像帧为第1帧图像帧至第8帧图像帧,第1帧图像帧至第8帧图像帧可以是图1H至图1K所示的UI图。可以理解的是,图1H至图1K中省略了部分附图。
之后,电子设备100将启动动效中的第9帧图像帧至第30帧图像帧分别与退出动效中的第1帧图像帧和第22帧图像帧分别进行叠加运算,得到新的21帧图像帧。电子设备100将依次播放该新的21帧图像帧和退出动效中的第23帧图像帧至第30帧图像帧。
2、动效计算
动效计算包括启动动效计算和退出动效计算。
其中,电子设备100在播放启动动效时,需要计算启动动效中每一帧图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等参数信息,并根据每一帧图像帧的参数信息合成图像帧。这里,将启动动效中每一帧图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等信息称为图像帧的参数信息。图像帧的参数信息还可以包括其他更多的信息,本申请在此不做限定。
同时,电子设备100在播放退出动效时,也需要计算退出动效中每一帧图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等信息,并根据每一帧图像帧的参数信息合成图像帧。
可以理解的是,每一帧图像帧的窗口大小为图像帧的长和宽的值;每一帧图像帧的显示时间为图像帧在电子设备100的用户界面上悬浮显示的时间;每一帧图像帧的显示位置为图像帧的中心点在电子设备100的显示屏上的位置坐标;每一帧图像帧的透明度为图像帧颜色的深度、图像帧的颜色越深,则该图像帧的透明度越小;每一帧图像帧的显示元素为图像帧中显示的文字信息和/或图像信息等等。
3、UI线程:一个Android程序默认情况只有一个进程,但是一个进程可以有多个线程。其中有一个线程为UI线程,UI线程也称为UI主线程,UI线程在程序运行的时候就被创建,主要是负责控制UI界面的显示、更新和控件交互。所有的应用程序组件----包括activity、service、broadcast receiver都在应用程序的主线程中运行。因此,任何组件中的费时操作处理都可能阻塞所有其他的组件、包括service和可见的activity。
4、图层合成(surface flinger,SF)模块:图层合成模块的作用是接受多个来源的图形显示数据,将它们合成,然后发送到显示设备显示。比如打开应用,常见的有三层显示,顶部的statusbar底部或者侧面的导航栏以及应用的界面,每个层是单独更新和渲染,这些界面都是由图层合成模块合成一个帧缓存区(Frame Buffer),电子设备的显示器可以从Frame Buffer中读数据,并显示该数据对应的页面。在显示过程中使用到了bufferqueue(缓存队列),图层合成模块作为合成方,比如窗口管理的图层作为生产方通过GPU产生的页面,交由图层合成模块进行合成。
如图5所示,图5示例性示出了一种电子设备100播放启动动效和播放退出动效的示意图。
图5示所述的流程图包含第一应用程序、AMS(activitity管理服务)模块和WMS(窗口管理服务)模块。
其中,AMS用于电子设备100中所有activity生命周期的管理服务。
WMS用于管理窗口的显示顺序、尺寸、位置、窗口动画等等。
首先,电子设备100接收用户开启第一应用程序的操作,响应于用户开启第一应用程序的操作,电子设备100通过AMS模块和WMS模块创建第一annimation leash对象。之后,WMS模块将第一annimation leash对象的标识发送至第一应用程序,第一应用程序接收到第一annimation leash对象的标识之后,第一应用程序开始做启动动效。
具体的,S501-S507描述了AMS模块和WMS模块创建第一annimation leash对象的方法流程。需要说明的是,AMS模块和WMS模块创建第一annimation leash对象的方法流程可以包括比S501-S507更多或更少的步骤,本申请在此不做限定。并且,本申请对于S501-S507中每个步骤的执行顺序不做限定。
S501、第一应用程序启动。
电子设备100接收用户启动第一应用程序的操作,第一应用程序启动。
示例性的,第一应用程序可以是华为视频应用程序。启动第一应用程序的操作可以是如图1G所示的点击华为视频应用程序的图标的操作。
S502、第一应用程序启动activity。
Activity是第一应用程序中的核心主件。电子设备100接收用户启动第一应用程序的操作之后,第一应用程序启动,第一应用程序启动activity。
S503、第一应用程序向AMS(activitity manager service,activitity管理服务)模块发送binder指令。
AMS模块是负责activity生命周期的管理服务。
AMS模块位于第一应用程序的应用程序框架层,在应用程序框架层中,AMS是一个非常重要的接口,它不但负责启动activity和service,还负责管理sctivity和service。
第一应用程序启动activity之后,通过binder指令进程间通信进入到***的AMS进程中,并且调用AMS.start activity接口。
S504、AMS模块设置activity为可见的。
S505、AMS模块设置activity的生命周期。
S506、AMS模块向窗口管理服务(window manager service,WMS)模块发送准备开启启动动效的通知。
S507、WMS模创建第一animation leash对象。
具体的,WMS模块调用apply animation locked函数准备开始动画。WMS模块获取app window token对应的父节点Task对象,使用Task的surface animator做动画。其中,app window token对应一个activity,即activity在***里的实际对象,用于AMS模块和WMS模块对activity的操作。surface animator负责对窗口做动画,管理窗口动画的生命周期。
WMS模块通过surface animator创建第一animation leash对象。第一animationleash对象是surface animator创建出来的临时对象,可以控制有哪些窗口要动,并且第一应用程序可以通过第一animation leash对象来控制启动动效中每一帧图像帧的参数信息。
第一应用程序接收到第一annimation leash对象的标识之后,第一应用程序开始做启动动效。第一应用程序确定出启动动效中每一帧图像帧的参数信息,之后,第一应用程序根据启动动效中每一帧图像帧的参数信息改变第一animation leash对象绘制的窗口的属性,第一应用程序将启动动效中每一帧图像帧的参数信息发送至SF模块,由SF模块合成图像帧,之后,SF模块将合成的图像帧显示在第一animation leash对象绘制的窗口中。
具体的,S508-S510描述了第一应用程序如何播放启动动效的方法流程。需要说明的是,第一应用程序如何播放启动动效的方法流程可以包括比S508-S510更多或更少的步骤,本申请在此不做限定。并且,本申请对于S508-S510中每个步骤的执行顺序不做限定。
S508、WMS模块将第一animation leash对象发送至第一应用程序。
S509、第一应用程序获取启动动效中图像帧的初始参数信息,并根据启动动效中图像帧的初始参数信息得到下一帧图像帧的目标参数信息,并根据下一帧图像帧的目标参数信息改变第一animation leash对象的属性值。
即第一应用程序获取到启动动效中图像帧的初始参数信息,根据启动动效中图像帧的初始参数信息计算得到下一帧图像帧的目标参数信息。第一animation leash对象绘制第一窗口,第一应用程序根据下一帧图像帧的目标参数信息改变第一animation leash对象绘制的第一窗口的属性值。第一animation leash对象绘制的第一窗口的属性值与下一帧图像帧的目标参数信息相同。例如,下一帧图像帧的目标参数信息包括下一帧图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等信息,则第一animation leash对象绘制的第一窗口的属性值也包括窗口大小、显示时间、显示位置、透明度和显示元素等信息。
可以理解的是,第一animation leash对象绘制的第一窗口可以是悬浮显示在电子设备100的用户界面之上的一个窗口。之后,图层合成模块根据启动动效中图像帧的初始参数信息,对该“窗口”的属性进行设置,使得该窗口可以按照启动动效中预设图像帧的显示顺序和显示状态显示图像。
S510、第一应用程序将启动动效发送至显示器进行播放。
电子设备100如何播放启动动效的,可以参考图1A-图1L、图2A-图2M、图3A-图3E所示的实施例,本申请在此不再赘述。
电子设备100接收用户退出第一应用程序的操作,电子设备100可以在播放启动动效的过程中接收用户退出第一应用程序的操作,也可以在播放完启动动效之后接收用户退出第一应用程序的操作,本申请在此不做限定。响应于用户退出第一应用程序的操作,电子设备100通过AMS模块和WMS模块创建第二annimation leash对象。之后,WMS模块将第二annimation leash对象的标识发送至第一应用程序,第一应用程序接收到第二annimationleash对象的标识之后,第一应用程序开始做退出动效。
具体的,S511-S513描述了AMS模块和WMS模块创建第二annimation leash对象的方法流程。需要说明的是,AMS模块和WMS模块创建第二annimation leash对象的方法流程可以包括比S511-S513更多或更少的步骤,本申请在此不做限定。并且,本申请对于S511-S513中每个步骤的执行顺序不做限定。
S511、第一应用程序退出。
在第一应用程序启动之后,电子设备100开始播放启动动效,这时,电子设备100可以接收并响应于用户退出第一应用程序的操作,第一应用程序退出。
在第一应用程序退出时,电子设备100会播放退出动效。
S512、第一应用程序向WMS模块发送binder指令。
当第一应用程序退出时,第一应用程序会向WMS模块发送binder指令,该binder指令用于指示WMS模块开始做退出动效。
S513、WMS模块接收并响应binder指令,创建第二animation leash对象。
同样的,WMS模块通过surface animator创建第二animation leash对象。第二animation leash对象是surface animator创建出来的临时对象,可以控制有哪些窗口要动,并且第一应用程序可以通过第二animation leash对象来控制退出动效中每一帧图像帧的参数信息。
第一应用程序接收到第二annimation leash对象的标识之后,第一应用程序开始做退出动效。第一应用程序确定出退出动效中每一帧图像帧的参数信息,之后,第一应用程序根据退出动效中每一帧图像帧的参数信息改变第二animation leash对象绘制的窗口的属性,第一应用程序将退出动效中每一帧图像帧的参数信息发送至SF模块,由SF模块合成图像帧,之后,SF模块将合成的图像帧显示在第二animation leash对象绘制的窗口中。
具体的,S514-S516描述了第一应用程序如何播放退出动效的方法流程。需要说明的是,第一应用程序如何播放退出动效的方法流程可以包括比S514-S516更多或更少的步骤,本申请在此不做限定。并且,本申请对于S514-S516中每个步骤的执行顺序不做限定。
S514、WMS模块将第二animation leash对象发送至第一应用程序。
S515、第一应用程序接收WMS模块发送的第二animation leash对象,获取获取退出动效中图像帧的初始参数信息,根据退出动效中图像帧的初始参数信息得到下一帧图像帧的目标参数信息,并根据下一帧图像帧的目标参数信息改变第二animation leash对象的属性值。
第一应用程序接收WMS模块发送的第二animation leash对象,第一应用程序开始做退出动效,在第一应用程序开始做退出动效之前,第一应用程序需要获取到退出动效中图像帧的初始参数信息。
可以理解的是,不用应用程序的退出动效可以是不相同的,即不同的应用程序中的图像帧的初始参数信息也不同。
第一应用程序获取到退出动效中图像帧的初始参数信息,根据退出动效中图像帧的初始参数信息计算得到下一帧图像帧的目标参数信息。第二animation leash对象绘制第二窗口,第一应用程序根据下一帧图像帧的目标参数信息改变第二animation leash对象绘制的第二窗口的属性值。第二animation leash对象绘制的第二窗口的属性值与下一帧图像帧的目标参数信息相同。例如,下一帧图像帧的目标参数信息包括下一帧图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等信息,则第二animation leash对象绘制的第二窗口的属性值的属性值也包括窗口大小、显示时间、显示位置、透明度和显示元素等信息。
可以理解的是,第二animation leash对象绘制的第二窗口可以是悬浮显示在电子设备100的用户界面之上的一个窗口。之后,图层合成模块根据启动动效中图像帧的初始参数信息,对该“窗口”的属性进行设置,使得该窗口可以按照启动动效中预设图像帧的显示顺序和显示状态显示图像。
S516、图层合成模块将退出动效发送至显示器进行播放。
电子设备100如何播放退出动效的,在前述的技术术语解释中已解释,请参考前述实施例,本申请在此不再赘述。
前述分析可知,启动动效或退出动效可以由N帧图像帧组成的。由图5分析可知,启动动效或退出动效中涉及的动效计算(例如图像帧处理)均是在应用程序内(应用程序的UI线程)完成的。
但是,若应用程序的UI线程处理的消息队列中待处理的任务事项除了处理动效计算之外,还会处理其他的任务事项,例如触屏事件、界面布局等等,若其他任务事项的处理时间较长导致UI线程来不及处理动效计算,将会导致启动动效或退出动效中某些来不及处理的图像帧丢失,从而导致电子设备100播放的启动动效或退出动效出现卡顿的情况。
为了便于理解,接下来对应用程序的UI线程处理启动动效或退出动效中涉及的动效计算的机制进行介绍。
如图6所示,图6示例性示出了第一应用程序的UI线程处理动效计算的工作原理图。
UI线程的消息队列中待处理的任务事项仅包括动效计算。例如处理启动动效的第1帧图像帧、…、处理启动动效的第m-1帧图像帧处理启动动效的第m帧图像帧、处理启动动效的第m+1帧图像帧、处理启动动效的第m+2帧图像帧、…、处理启动动效的第n帧图像帧等等。UI线程是根据消息对列中的任务事项的先后顺序依次执行的。
可以理解的是,UI线程在处理第m-1帧图像帧时,UI线程调用CPU绘制第m-1帧图像帧,CPU绘制第m-1帧图像帧之后,UI线程调用GPU对CPU绘制的第m-1帧图像帧进行渲染,在GPU对CPU绘制的第m-1帧图像帧渲染完成之后,UI线程将第m-1帧图像帧送到显示器进行显示。
如图6所示,UI线程在显示第m-1帧图像帧时,在UI线程即将处理第m帧图像帧时,UI线程会发出Vsync信号,并且,UI线程需要调用CPU和GPU在固定周期(例如11.1ms)内完成第m帧图像帧的绘制和渲染。UI线程将Vsync信号发出后,UI线程开始调用CPU绘制第m帧图像帧,CPU绘制第m帧图像帧之后,UI线程调用GPU对CPU绘制的第m帧图像帧进行渲染。若UI线程在固定周期内完成第m帧图像帧的绘制和渲染,UI线程将第m帧图像帧送到显示器进行显示。
以此类推,后续UI线程处理每一帧图像帧时,均会发出Vsync信号,并且UI线程在固定周期内处理完该帧图像帧,则UI线程将该图像帧送到显示器进行显示。可以理解的是,只有UI线程发出Vsync信号之后,UI线程才会调用CPU绘制下一帧图像。
值得注意的是,若UI线程调用CPU/GPU可以在固定周期内完成指定图像帧的绘制和渲染,则指定图像帧可以在显示器上显示。若若UI线程调用CPU/GPU不能在固定周期内完成指定图像帧的绘制和渲染,就会发生“丢帧”现象。
示例性的,如图7所示,图7示例性示出了UI线程处理图像帧导致丢帧的示意图。
如图7所示,UI线程的消息队列中待处理的任务事项除了包括动效计算之外,还包括触屏事件的任务事项。UI线程的任务事项的处理事项为:处理启动动效的第1帧图像帧、…、处理启动动效的第m-1帧图像帧处理启动动效的第m帧图像帧、界面布局、处理启动动效的第m+1帧图像帧、处理启动动效的第m+2帧图像帧、…、处理启动动效的第n帧图像帧等等。UI线程是根据消息对列中的任务事项的先后顺序依次执行的。
图7所示的UI线程绘制、渲染和显示图像帧的方法与图6中介绍的一致,本申请在次不再赘述。
不同的是,如图7所示,当显示器显示第m帧图像帧时,UI线程会发出Vsync信号,UI线程需要调用CPU和GPU在固定周期(例如11.1ms)内完成第m+1帧图像帧的绘制和渲染。但是在UI线程的消息队列中,触屏事件的时间先于处理启动动效的第m+1帧图像帧的时间。因此,UI线程需要在固定周期内,先处理完界面布局任务事项之后,在处理m+1帧图像帧的绘制和渲染的任务事项。若在固定周期内,UI线程处理完界面布局任务事项,但是在固定周期的时间到达之后,UI线程调用CPU/GPU绘制/渲染第m+1帧图像帧的任务事项没有完成。为了不影响下一个Vsync信号的固定周期内,其他任务事项的处理,UI线程会将第m+1帧图像帧丢弃。UI线程发出Vsync信号,进入下一个固定周期内任务事项的处理,在新的固定收期内,由于第m+1帧图像帧没有绘制和渲染完成,UI线程获取到第m帧图像帧,而非第m+1帧图像帧。因此,下一个Vsync信号的固定周期内依旧显示第m帧图像,这种现象被称为“丢帧”。若显示器持续多个周期内显示同一帧图像帧,给用户的感受是电子设备100显示的界面出现卡顿现象,严重影响用户体验。
因此,本申请提供了一种动效计算方法,方法包括:在***服务侧的图层合成模块新建一个动效处理线程。电子设备100将所有应用程序UI线程处理的动效计算均解耦到图层合成模块侧的动效处理线程,由图层合成模块侧的动效处理线程处理所有的所有应用程序UI线程处理的动效计。这样,可以防止应用程序的UI线程在固定周期内没处理完图像帧的绘制和渲染,导致图像帧丢弃的问题。
在一些实施例中,图层合成模块侧的动效处理线程在进行动效计算的同时,可以根据启动动效或退出动效中当前显示图像帧的参数信息通过插值算法得到下一帧图像帧的参数信息,并根据下一帧图像帧的参数信息合成下一帧图像帧,并发送至显示器进行显示。这样,图层合成模块侧的动效处理线程通过插值算法得到下一帧图像的参数信息,可以使得电子设备100显示的动效(即图像切换)更加流畅。
图层合成模块侧的动效处理线程如何根据插值算法得到下一帧图像的参数信息,将在后续实施中详细介绍,请参考后续实施例中的描述。
接下来,介绍本申请实施例的提及的电子设备100的硬件架构。
图8示出了电子设备100的结构示意图。
下面以电子设备100为例对实施例进行具体说明。电子设备100的设备类型可以包括手机、平板电脑、智慧屏、桌面型计算机、膝上计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,等。本申请实施例对电子设备100的设备类型不做特殊限制。
应该理解的是,图8所示电子设备100仅是一个范例,并且电子设备100可以具有比图8中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
在一些实施例中,处理器110可以包括softAP配网模块。该softAP配网模块可集成在AP或NPU或其他芯片中。当确认NAN配网失败,电子设备100可以唤醒该softAP配网模块,利用softAP配网的方法为电子设备100配网。在另一些实施例中,处理器110可以包括蓝牙配网模块、声波配网模块等等。本申请实施例对集成上述不同类型的配网模块的芯片不作限定。上述不同类型的配网模块可以在电子设备100确认NAN配网失败后被唤醒。电子设备100可以利用上述不同类型的配网模块为电子设备100提供对应的配网服务。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与***设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
充电管理模块140用于从充电器接收充电输入。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。
移动通信模块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通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。
耳机接口170D用于连接有线耳机。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。
陀螺仪传感器180B可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。
气压传感器180C用于测量气压。
磁传感器180D包括霍尔传感器。
加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别电子设备100姿态,应用于横竖屏切换,计步器等应用。
距离传感器180F,用于测量距离。电子设备100可以通过红外或激光测量距离。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备100附近有物体。当检测到不充分的反射光时,电子设备100可以确定电子设备100附近没有物体。
环境光传感器180L用于感知环境光亮度。
指纹传感器180H用于采集指纹。
温度传感器180J用于检测温度。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。
骨传导传感器180M可以获取振动信号。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过***SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。在一些实施例中,电子设备100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在电子设备100中,不能和电子设备100分离。
电子设备100的软件***可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android***为例,示例性说明电子设备100的软件结构。
图9是本发明实施例提供的一种电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android***分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和***库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图9所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图9所示,应用程序框架层可以包括窗口管理器,内容提供器,视图***,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图***包括可视控件,例如显示文字的控件,显示图片的控件等。视图***可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备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绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
下面结合捕获拍照场景,示例性说明电子设备100软件以及硬件的工作流程。
当触摸传感器180K接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的控件。以该触摸操作是触摸单击操作,该单击操作所对应的控件为相机应用图标的控件为例,相机应用调用应用框架层的接口,启动相机应用,进而通过调用内核层启动摄像头驱动,通过摄像头193捕获静态图像或视频。
如图10所示,图10示例性示出了图层合成模块多线性运行的示意图。
图层合成模块的作用在于接收多个来源的图形显示数据,将它们合成,然后发送到显示设备。比如打开应用,常见的有三层显示,顶部的statusbar底部或者侧面的导航栏以及应用的界面,每个层是单独更新和渲染。
示例性的,图层合成模块在启动的过程中,一共涉及到了三种类型的线程,它们分别是线程1(例如Binder线程)、线程2(例如UI渲染线程)和线程3(例如控制台事件监控线程)。Binder线程是为了让其它进程,例如应用程序进程,可以与,图层合成模块进行binder进程间通信的,有一部分通信所执行的操作便是让UI渲染线程更新***的UI。控制台事件监控线程是为了监控硬件帧缓冲区的睡眠/唤醒状态切换事件。一旦硬件帧缓冲区要进入睡眠或者唤醒状态,控制台事件监控线程都需要通知UI渲染线程,以便UI渲染线程可以执行关闭或者启动显示屏的操作。
可以理解的是,图层合成模块中的多线程之间是并行运行的。
如图10所示,图层合成模块侧现有线程1、线程2和线程3。为了解决电子设备100将动效计算的任务事项放置在各个应用程序的UI线程中处理,导致应用程序处理不及时导致丢帧的问题,电子设备100在图层合成模块侧新建了一个线程(动效处理线程)。该动效处理线程的作用在于,电子设备100中所有应用程序的UI线程将动效计算的任务事项耦合至图层合成模块侧的动效处理线程,图层合成模块侧的动效处理线程处理电子设备100中所有应用程序的动效计算的任务事项。
可以理解的是,动效处理线程、线程1、线程2和线程3是并行运行的,并且动效处理线程只用于动效计算,不会出现如图7所示的实施例中描述的由于处理不及时导致丢帧的问题。一方面,极大地改善了目前UI线程处理动效计算时出现的丢帧问题;另一方面,电子设备100播放启动动效或退出动效时,不会出现卡顿的问题,提高了用户体验。
接下来,介绍,图层合成模块如何进行动效计算的。
前述术语解释中提及过,动效计算即计算启动动效或退出动效中每一帧图像帧的参数信息。本申请实施例总,图层合成模块是按照插值算法根据启动动效或退出动效中图像帧的初始参数信息来计算下一帧图像帧的参数信息的。
首先介绍图层合成模块按照插值算法根据启动动效中图像帧的初始参数信息来计算启动动效中下一帧图像帧的参数信息的。
假设该应用程序的启动动效包括M帧图像帧,启动动效中图像帧的初始参数信息是预设好的,示例性的,启动动效中图像帧的初始参数信息为启动动效中第1帧图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等参数信息,图像帧的初始参数信息还可以包括其他更多的信息,本身请在此不做限定。
在一些实施例中,第1帧图像帧的参数信息可以与第一应用程序的图标的参数信息一致。即第1帧图像帧的窗口大小与第一应用程序的图标大小一样,第1帧图像帧的显示位置为第一应用程序的图标的显示位置,第1帧图像帧的显示元素与第一应用程序的图标的显示元素相同。
在另一些实施例中,第1帧图像帧的参数信息也可以与第一应用程序的图标的参数信息不一致,本申请在此不做限定。
电子设备100接收用户开启第一应用程序的操作,电子设备100开始播放第一应用程序的启动动效。图层合成模块可以按照插值算法根据当前图像帧的参数信息得到下一帧图像帧的参数信息。
具体的,图层合成模块获取到启动动效的图像帧的初始参数信息,该启动动效的图像帧的初始参数信息可以是启动动效中第1帧图像帧的参数信息。图层合成模块可以根据差值算法根据启动动效中第1帧图像帧的参数信息得到启动动效中第2帧图像帧的参数信息,以此类推,图层合成模块可以根据差值算法根据启动动效中第2帧图像帧的参数信息得到启动动效中第3帧图像帧的参数信息,图层合成模块可以根据差值算法根据启动动效中第N-1帧图像帧的参数信息得到启动动效中第N帧图像帧的参数信息等等,直至图层合成模块根据插值算法根据启动动效中第M-1帧图像帧的参数信息得到启动动效中第M帧图像帧的参数信息。
接下来介绍图层合成模块按照插值算法根据退出动效中图像帧的初始参数信息来计算启动动效中下一帧图像帧的参数信息的。
假设该应用程序的退出动效包括M帧图像帧,若电子设备100将启动动效播放完成之后,再接收用户退出第一应用程序的操作,则退出动效中图像帧的初始参数信息是图层合成模块已计算得到的启动动效中第M帧图像帧的参数信息。若电子设备100在启动动效播放完成之前(例如启动动效播放到了第N帧图像帧,N小于M),再接收用户退出第一应用程序的操作,则退出动效中图像帧的初始参数信息是电子设备100当前显示的启动动效中的第N帧图像帧的参数信息。
若电子设备100在启动动效播放完成之前(例如启动动效播放到了第N帧图像帧),接收用户退出第一应用程序的操作,电子设备100开始播放第一应用程序的退出动效。图层合成模块可以按照插值算法根据当前图像帧的参数信息得到下一帧图像帧的参数信息。
具体的,图层合成模块获取到退出动效的图像帧的初始参数信息,该退出动效的图像帧的初始参数信息可以是退出动效中第1帧图像帧的参数信息,退出动效的图像帧的初始参数信息可以是启动动效中第N帧图像帧的参数信息。图层合成模块可以通过差值算法根据退出动效的图像帧的初始参数信息得到退出动效中图像帧的第2帧图像帧信息,以此类推,图层合成模块可以根据差值算法根据退出动效中图像帧的第2帧图像帧信息得到退出动效中图像帧的第3帧图像帧信息,直至图层合成模块通过差值算法根据退出动效中图像帧的第N-1帧图像帧信息得到退出动效中图像帧的第N帧图像帧信息。
下面,将介绍差值算法的原理。即图层合成模块如何根据插值算法实现根据动效中当前图像帧的参数信息得到下一帧图像帧的参数信息。
差值算法中参数的值不同,图层合成模块根据动效中当前图像帧的参数信息得到下一帧图像帧的参数信息的值也不同。那么电子设备100播放的动效得到的动效曲线也不同。
示例性的,如图11所示,图11示例性示出了几种插值算法的动效曲线的效果示意图。
如图11中的(a)所示,图11中的(a)示例性示出了第一种匀速的动效曲线。即电子设备100播放的启动动效或退出动效中任意相邻两帧图像帧之间的切换时间是相等的。
如图11中的(b)所示,图11中的(b)示例性示出了第二种减速的动效曲线。即电子设备100播放的启动动效或退出动效中按顺序从前往后相邻两帧图像帧之间的切换时间依次减少。
如图11中的(c)所示,图11中的(c)示例性示出了第三种加速的动效曲线。即电子设备100播放的启动动效或退出动效中按顺序从前往后相邻两帧图像帧之间的切换时间依次增加。
动效曲线还可以包括其他的类型,例如渐入渐出的运动曲线等等,本申请在此不在一一列举。a=k*x/m
插值算法可以通过如下公式根据动效中当前图像帧的参数信息得到下一帧图像帧的参数信息:
a=k*x/m 公式(1)
V=v+a*t 公式(2)
P=p+V*t 公式(3)
如公式(1)、公式(2)和公式(3)所示,物理引擎可以通过公式(1)、公式(2)和公式(3)根据图像帧的预设参数信息得到目标参数信息。在公式(1)、公式(2)和公式(3),a表示加速度,k表示刚性,根据弹簧的胡可定理,得到k=-F/x,其中,x表示弹簧形变的长度,F表示使弹簧发生形变的长度为x时收到的力,根据牛顿力学公式,F可以表示为F=m*a,其中,m为物体的指令。根据公式k=-F/x和公式F=m*a,可以的带加速度a=-k*x/m。
v表示物体的初始速度,V表示物体的下一时刻的速度,P表示物体的初始位置,p表示物体的下一时刻的位置,t表示当前电子设备100计算的是启动动效或者退出动效中的第几帧图像帧的参数信息。
需要说明的是,当电子设备100在计算启动动效中的图像帧的参数信息时,公式(3)中的v为正数;当电子设备100在计算退出动效中的图像帧的参数信息时,公式(3)中的v为负数。
这样,差值算法可以通过将当前图像帧的参数信息作为公式(3)的输入p,通过公式(3)输出P,得到下一帧图像帧的参数信息。
示例性的,电子设备100正在显示启动动效中的第1帧图像帧,电子设备100需要在固定时间内根据第1帧图像帧的参数信息,得到第2帧图像帧的参数信息,电子设备100根据第2帧图像帧的参数信息合成第2图像帧。
若第1帧图像帧的预设位置信息为(x,y),其中,x为第1帧图像帧的长度,y为第1帧图像帧的宽度。电子设备100将第1帧图像帧的位置信息(x,y)输入上述公式(3),上述公式(3)输出第2帧图像帧的位置信息(x1,y1),其中,x1=x+v+k*x/m,y1=y+v+k*x/m。其中,v为正数。
为了便于理解本申请,本申请实施例以匀速的动效曲线对插值算法的执行效果进行说明。
当动效曲线为匀速的动效曲线时,公式(1)、公式(2)和公式(3)的a=0,v为固定值。当电子设备100在计算启动动效中的图像帧的参数信息时,v为正数;当电子设备100在计算退出动效中的图像帧的参数信息时,v为负数。
则插值算法可以通过如下公式根据当前图像帧的参数信息得到下一帧图像帧的参数信息:
P=p+v*t 公式(4)
如公式(4)所示,P表示物体的初始位置,p表示物体的下一时刻的位置,t表示时间。这样,物理引擎可以通过将当前图像帧的参数信息作为公式(3)的输入p,通过公式(3)输出P,得到下一帧图像帧的参数信息。
示例性的,电子设备100正在显示启动动效中的第1帧图像帧,电子设备100需要在固定时间内根据第1帧图像帧的参数信息,得到第2帧图像帧的参数信息,电子设备100根据第2帧图像帧的参数信息合成第2图像帧。
若第1帧图像帧的位置信息为(x,y),其中,x为第1帧图像帧的预设长度,y为第1帧图像帧的预设宽度。图层合成模块将第2帧图像帧的位置信息(x,y)输入上述公式(3),上述公式(3)输出第2帧图像帧的目标位置信息(x1,y1),其中,x1=x+v,y1=y+v。
这样,图层合成模块可以通过插值算法根据当前显示的图像帧的参数信息得到启动动效或瑞出动效中下一帧图像帧的参数信息。图层合成模块根据启动动效或瑞出动效中下一帧图像帧的参数信息合成下一帧图像帧,并在显示器上显示。电子设备100使用插值算法得到图像帧的参数信息合成的图像帧播放动效时,电子设备100显示的动画效果会更加流畅。
如图12所示,图12示例性示出了另一种电子设备100播放启动动效和播放退出动效的示意图。
图12示所述的流程图包含第一应用程序、AMS(activitity管理服务)模块和WMS(窗口管理服务)模块、SF(surface flinger,图层合成模块)模块。
首先,电子设备100接收用户开启第一应用程序的操作,响应于用户开启第一应用程序的操作,电子设备100通过AMS模块和WMS模块创建第一annimation leash对象。之后,WMS模块将第一annimation leash对象的标识发送至第一应用程序,第一应用程序接收到第一annimation leash对象的标识之后,第一应用程序开始做启动动效。
具体的,S1201-S1207描述了AMS模块和WMS模块创建第一annimation leash对象的方法流程。需要说明的是,AMS模块和WMS模块创建第一annimation leash对象的方法流程可以包括比S1201-S1207更多或更少的步骤,本申请在此不做限定。并且,本申请对于S1201-S1207中每个步骤的执行顺序不做限定。
S1201、第一应用程序启动。
S1202、第一应用程序启动activity。
S1203、第一应用程序向AMS(activitity manager service,activitity管理服务)模块发送binder指令。
S1204、AMS模块设置activity为可见的。
S1205、AMS模块设置activity的生命周期。
S1206、AMS模块向窗口管理服务(window manager service,WMS)模块发送准备开启启动动效的通知。
S1207、WMS模块接收并响应AMS模块发送的准备开启启动动效的通知,WMS模块准备开始做动画,并创建第一animation leash对象。
第一应用程序接收到第一annimation leash对象的标识之后,第一应用程序告知SF模块开始做启动动效。第一应用程序确定出启动动效中图像帧的初始参数信息,之后,第一应用程序将启动动效中图像帧的初始参数信息发送至SF模块,SF模块根据启动动效中图像帧的初始参数信息确定出启动动效中每一帧图像帧的参数信息,并根据启动动效中每一帧图像帧的参数信息合成图像帧,SF模块根据启动动效中每一帧图像帧的参数信息改变第一animation leash对象绘制的窗口的属性,SF模块将合成的图像帧显示在第一animationleash对象绘制的窗口中。
具体的,S1208-S1212描述了SF模块如何播放启动动效的方法流程。需要说明的是,SF模块如何播放启动动效的方法流程可以包括比S1208-S1212更多或更少的步骤,本申请在此不做限定。并且,本申请对于S1208-S1212中每个步骤的执行顺序不做限定。
S1208、WMS模块将第一animation leash对象发送至第一应用程序。
对于S1201-S1208的具体描述,可以参考图5中S501-S508的相关描述,本申请在此不再赘述。
S1209、第一应用程序获取启动动效中图像帧的初始参数信息。
可以理解的是,不同应用程序的启动动效可以是不一样的,对应的启动动效中图像帧的初始参数信息也是不一样的。
启动动效中图像帧的初始参数信息包括图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等信息,图像帧的参数信息还可以包括其他更多的信息,本身请在此不做限定。
S1210、第一应用程序将启动动效中图像帧的初始参数信息发送至图层合成模块。
S1211、图层合成模块根据启动动效中图像帧的初始参数信息得到下一帧图像帧的目标参数信息,并根据下一帧图像帧的目标参数信息改变第一animation leash对象的属性值。
通过S1210和S1211,第一应用程序将动效计算的任务事项发送至图层合成模块,由图层合成模块去做动效计算。这样,可以极大地改善目前UI线程处理动效计算时出现的丢帧问题。
具体的,图层合成模块在原有线程的基础上,新建了一个动效处理线程,该线程的任务为计算电子设备100中所有UI线程处理的动效计算的任务事项。
具体的,图层合成模块接收到第一应用程序发送的启动动效中图像帧的初始参数信息,根据启动动效中图像帧的初始参数信息计算得到下一帧图像帧的目标参数信息。第一animation leash对象绘制第一窗口,图层合成模块根据下一帧图像帧的目标参数信息改变第一animation leash对象绘制的第一窗口的属性值。第一animation leash对象的属性值与下一帧图像帧的目标参数信息相同。例如,下一帧图像帧的目标参数信息包括下一帧图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等信息,则第一animationleash对象绘制的第一窗口的属性值的属性值也包括窗口大小、显示时间、显示位置、透明度和显示元素等信息。
可以理解的是,第一animation leash对象绘制的第一窗口可以是悬浮显示在电子设备100的用户界面之上的一个窗口。之后,图层合成模块根据启动动效中图像帧的初始参数信息,对该“窗口”的属性进行设置,使得该窗口可以按照启动动效中预设图像帧的显示顺序和显示状态显示图像。
S1212、图层合成模块将启动动效发送至显示器进行播放。
第一应用程序如何播放启动动效的,可以参考图1A-图1L、图2A-图2M、图3A-图3E所示的实施例,本申请在此不再赘述。
电子设备100接收用户退出第一应用程序的操作,电子设备100可以在播放启动动效的过程中接收用户退出第一应用程序的操作,也可以在播放完启动动效之后接收用户退出第一应用程序的操作,本申请在此不做限定。响应于用户退出第一应用程序的操作,电子设备100通过AMS模块和WMS模块创建第二annimation leash对象。之后,WMS模块将第二annimation leash对象的标识发送至第一应用程序,第一应用程序接收到第二annimationleash对象的标识之后,第一应用程序开始做退出动效。
具体的,S1213-S1216描述了AMS模块和WMS模块创建第二annimation leash对象的方法流程。需要说明的是,AMS模块和WMS模块创建第二annimation leash对象的方法流程可以包括比S1213-S1216更多或更少的步骤,本申请在此不做限定。并且,本申请对于S1213-S1216中每个步骤的执行顺序不做限定。
S1213、第一应用程序退出。
在第一应用程序启动之后,电子设备100开始播放启动动效,这时,电子设备100可以接收并响应于用户退出第一应用程序的操作,第一应用程序退出。
在第一应用程序退出时,电子设备100会播放退出动效。
S1214、第一应用程序向WMS模块发送binder指令。
当第一应用程序退出时,第一应用程序会向WMS模块发送binder指令,该binder指令用于指示WMS模块开始做退出动效。
S1215、WMS模块接收并响应binder指令,新建第二animation leash对象。
同样的,WMS模块通过surface animator创建第二animation leash对象。第二animation leash对象是surface animator创建出来的临时对象,可以控制有哪些窗口要动,并且第一应用程序可以通过第二animation leash对象来控制退出动效中每一帧图像帧的参数信息。
S1216、WMS模块将第二animation leash对象发送至第一应用程序。
第一应用程序接收到第二annimation leash对象的标识之后,第一应用程序告知SF模块开始做退出动效。第一应用程序确定出退出动效中图像帧的初始参数信息,之后,第一应用程序将退出动效中图像帧的初始参数信息发送至SF模块,SF模块根据退出动效中图像帧的初始参数信息确定出退出动效中每一帧图像帧的参数信息,并根据退出动效中每一帧图像帧的参数信息合成图像帧,SF模块根据退出动效中每一帧图像帧的参数信息改变第一animation leash对象绘制的窗口的属性,SF模块将合成的图像帧显示在第一animationleash对象绘制的窗口中。
具体的,S1217-S1220描述了SF模块如何播放退出动效的方法流程。需要说明的是,SF模块如何播放退出动效的方法流程可以包括比S1217-S1220更多或更少的步骤,本申请在此不做限定。并且,本申请对于S1217-S1220中每个步骤的执行顺序不做限定。
S1217、第一应用程序获取退出动效中图像帧的初始参数信息。
可以理解的是,不同应用程序的退出动动效可以是不一样的,对应的退出动效中图像帧的初始参数信息也是不一样的。
退出动效中图像帧的初始参数信息包括图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等信息,图像帧的参数信息还可以包括其他更多的信息,本身请在此不做限定。
S1218、第一应用程序将退出动效中图像帧的初始参数信息发送至图层合成模块。
S1219、图层合成模块根据退出动效中图像帧的初始参数信息得到下一帧图像帧的目标参数信息,并根据下一帧图像帧的目标参数信息改变第二animation leash对象的属性值。
通过S1218和S1219,第一应用程序将退出动效计算的任务事项发送至图层合成模块,由图层合成模块去做动效计算。这样,可以极大地改善目前UI线程处理动效计算时出现的丢帧问题。
具体的,图层合成模块在原有线程的基础上,新建了一个动效处理线程,该线程的任务为计算电子设备100中所有UI线程处理的动效计算的任务事项。
具体的,图层合成模块接收到第一应用程序发送的退出动效中图像帧的初始参数信息,根据退出动效中图像帧的初始参数信息计算得到下一帧图像帧的目标参数信息。第二animation leash对象绘制第二窗口,图层合成模块根据下一帧图像帧的目标参数信息改变第二animation leash对象绘制的第二窗口的属性值。第二animation leash对象绘制的第二窗口的属性值与下一帧图像帧的目标参数信息相同。例如,下一帧图像帧的目标参数信息包括下一帧图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等信息,则第二animation leash对象的属性值的属性值也包括窗口大小、显示时间、显示位置、透明度和显示元素等信息。
可以理解的是,第二animation leash对象绘制的第二窗口可以是悬浮显示在电子设备100的用户界面之上的一个窗口。之后,图层合成模块根据启动动效中图像帧的初始参数信息,对该“窗口”的属性进行设置,使得该窗口可以按照启动动效中预设图像帧的显示顺序和显示状态显示图像。
需要说明的是,第一animation leash对象和第二animation leash对象时两个对效对象。
S1220、图层合成模块将退出动效发送至显示器进行播放。
图层合成模块根据更新后的图像帧的参数信息合成图像帧之后,将合成的图像帧发送至显示器进行显示。
电子设备100如何播放退出动效的,在前述的技术术语解释中已解释,请参考前述实施例,本申请在此不再赘述。
如图13所示,图13示例性示出了本申请实施例提供的一种动效计算方法流程图。
S1301、电子设备100接收用户的第一操作启动第一应用程序的动效播放的任务事项。
这里,动效可以是第一应用程序的启动动效或者第一应用程序的退出动效。
当第一操作为开启第一应用时,则动效对应的是第一应用程序的启动动效。第一操作可以是点击第一应用程序的图标的操作。示例性的,第一操作可以是图1G所示的点击华为视频应用程序1013的图标的操作。
开启第一应用的第一操作还可以是其他的操作,本申请在此不做限定。
当第一操作为退出第一应用时,则动效对应的是第一应用程序的退出动效。第一操作可以是作用于电子设备100的显示屏的向上滑动操作,第一操作还可以是作用于三键导航中的返回主界面键的点击操作,三键导航中的返回主界面键可以是实体按键,也可以是虚拟按键,本身请在此不做限定。
退出第一应用的第一操作还可以是其他的操作,本申请在此不做限定。
S1302、电子设备100通过图层合成模块根据第一图像帧的第一参数信息得到第二图像帧的第二参数信息。
在图层合成模块根据第一图像帧的第一参数信息得到第二图像帧的第二参数信息之前,电子设备100需要在图层合成模块新建一个动效处理线程。具体的,可以参考图10所示的实施例。
在一些实施例中,图层合成模块可以插值算法通过根据第一帧图像帧的第一参数信息得到第二图像帧的第二参数信息。不仅限于插值算法,图层合成模块可以通过其他的方法根据第一帧图像帧的第一参数信息得到第二图像帧的第二参数信息。
在图层合成模块根据第一图像帧的第一参数信息得到第二图像帧的第二参数信息之前,需要获取到插值算法的参数信息。插值算法的参数信息包括:动效类型、弹性力度、等等。动效类型可以是例如匀速的动效类型、渐入渐出的动效类型、加速的动效类型等等。弹性系数即图11中所述的刚性k。插值算法的参数信息还可以包括其他更多的参数信息,例如阻尼系数等等,本身请在此不做限定。
第一应用程序确定出插值算法的参数信息之后,第一应用程序将插值算法的参数信息发送至图层合成模块。图层合成模块接收第一应用程序发送的插值算法的参数信息,并通过插值算法根据第一图像帧的第一参数信息得到第二图像帧的第二参数信息。
可以理解的是,不同的应用程序确定出的插值算法的参数信息可以是相同的,也可以不相同,本申请在此不做限定。
同时,在图层合成模块根据第一图像帧的第一参数信息得到第二图像帧的第二参数信息之前,图层合成模块还需获取到动效中图像帧的额初始参数信息。因为,图层合成模块是通过插值算法根据当前显示的图像帧的参数信息计算得到下一帧图像帧的参数信息的。因此,图层合成模块需要获取到启动动效或退出动效中图像帧的初始参数信息。
电子设备100通过第一应用程序将启动动效或退出动效中图像帧的初始参数信息发送至图层合成模块。图层合成模块获取到第一应用程序发送的启动动效或退出动效中图像帧的初始参数信息。启动动效或退出动效中图像帧的初始参数信息包括图像帧的窗口大小、显示时间、显示位置、透明度和显示元素等信息。
在一些实施例中,电子设备100获取到启动动效中图像帧的初始参数信息,启动动效中图像帧的初始参数信息可以理解为启动动效中第1帧图像帧的参数信息,在一些实施例中,第一图像帧可以为第一启动动效中的首帧图像帧。电子设备100可以根据差值算法根据启动动效中第1帧图像帧的参数信息得到启动动效中第2帧图像帧的参数信息,以此类推,电子设备100可以根据差值算法根据启动动效中第2帧图像帧的参数信息得到启动动效中第3帧图像帧的参数信息,电子设备100可以根据差值算法根据启动动效中第N-1帧图像帧的参数信息得到启动动效中第N帧图像帧的参数信息等等,直至电子设备100根据插值算法根据启动动效中第M-1帧图像帧的参数信息得到启动动效中第M帧图像帧的参数信息。启动动效包括M帧图像帧。也即电子设备100是按照插值算法根据当前显示的图像帧的参数信息得到下一帧图像帧的参数信息的。
这部分内容在前述实施例中已详细介绍请参考前述实施例的描述,本申请在此不再赘述。
在另一些实施例中,电子设备100获取到退出动效中图像帧的初始参数信息。
在一种可能的实现方式中,电子设备100已播放完启动动效,电子设备100显示的是第一应用程序的主界面,电子设备100接收到退出第一应用程序的第二操作,这时,电子设备100获取到退出动效中图像帧的初始参数信息为启动动效中的第M帧图像帧的参数信息。启动动效中的第M帧图像帧为启动动效中的最后一帧图像帧。
在一些实施例中,第二图像帧为所述第一动效的最后一帧图像帧。电子设备通过surfaceflinger基于第二参数信息确定出第三图像的第三参数信息,第三图像帧为第二动效中的首帧图像帧。电子设备通过surfaceflinger基于第三参数信息合成第三图像帧;电子设备显示第三图像帧。
首先,电子设备100获取到退出动效中图像帧的初始参数信息,退出动效中图像帧的初始参数信息是退出动效中第1帧图像帧的参数信息。电子设备100可以根据差值算法根据退出动效中第1帧图像帧的参数信息得到退出动效中第2帧图像帧的参数信息,以此类推,电子设备100可以根据差值算法根据退出动效中第2帧图像帧的参数信息得到退出动效中第3帧图像帧的参数信息,电子设备100可以根据差值算法根据退出动效中第N-1帧图像帧的参数信息得到退出动效中第N帧图像帧的参数信息等等,直至电子设备100根据插值算法根据退出动效中第M-1帧图像帧的参数信息得到退出动效中第M帧图像帧的参数信息。退出动效包括M帧图像帧。也即电子设备100是按照插值算法根据当前显示的图像帧的参数信息得到下一帧图像帧的参数信息的。
在另一种可能的实现方式中,电子设备100在播放启动动效的过程中,例如电子设备100当前显示的是启动动效中的第N帧图像帧(例如第二图像帧),电子设备100接收到退出第一应用程序的第二操作,这时,电子设备100获取到退出动效中图像帧的初始参数信息为启动动效中的第N帧图像帧的参数信息。
首先,电子设备100获取到退出动效中图像帧的初始参数信息,退出动效中图像帧的初始参数信息是退出动效中第1帧图像帧的参数信息。电子设备100可以根据差值算法根据退出动效中第1帧图像帧的参数信息得到退出动效中第2帧图像帧的参数信息,以此类推,电子设备100可以根据差值算法根据退出动效中第2帧图像帧的参数信息得到退出动效中第3帧图像帧的参数信息,电子设备100可以根据差值算法根据退出动效中第N-1帧图像帧的参数信息得到退出动效中第N帧图像帧的参数信息等等,启动动效中第N帧图像帧为退出动效中的最后一帧图像帧。也即电子设备100是按照插值算法根据当前显示的图像帧的参数信息得到下一帧图像帧的参数信息的。
这部分内容在前述实施例中已详细介绍请参考前述实施例的描述,本申请在此不再赘述。
S1303、电子设备100通过图层合成模块根据第二帧图像帧的第二参数信息合成第二图像帧。
S1304、电子设备100通过图层合成模块将第二图像帧发送至显示器显示。
在图层合成模块根据第二帧图像帧的第二参数信息合成第二图像帧时,电子设备100显示的是启动动效或退出动效中的第二帧图像帧。
图层合成模块接收到第一应用程序发送的插值算法的参数信息以及第一帧图像帧的第一参数信息,图层合成模块可以通过插值算法根据第一帧图像帧的第一参数信息得到第二图像帧的第二参数信息。图层合成模块根据第二图像帧的第二参数信息合成第二图像帧,并将第二图像帧发送至显示器进行显示。
图层合成模块如何根据插值算法根据第一帧图像帧的第一参数信息得到第二图像帧的第二参数信息,可以参考前述图11所述的实施例,本申请在此不再赘述。
如图14所示,图14示例性示出了图层合成模块中的动效线程图像帧的参数计算、合成动效中的图像帧和显示图像帧的示意图。
动效线程的消息队列中待处理的任务事项仅包括动效计算。例如处理启动动效的第1帧图像帧、…、处理启动动效的第m-1帧图像帧处理启动动效的第m帧图像帧、处理启动动效的第m+1帧图像帧、处理启动动效的第m+2帧图像帧、…、处理启动动效的第n帧图像帧等等。动效线程是根据消息对列中的任务事项的先后顺序依次执行的。
可以理解的是动效线程在处理第m-1帧图像帧时,动效线程调用CPU绘制第m-1帧图像帧,动效线程调用CPU根据第m-2帧图像帧的参数信息得到第m-1帧图像帧的参数信息以及绘制完第m-1帧图像帧之后,动效线程调用GPU对CPU绘制的第m-1帧图像帧进行渲染,在GPU对CPU绘制的第m-1帧图像帧渲染完成之后,动效线程将第m-1帧图像帧送到显示器进行显示。
如图14所示,动效线程在显示第m-1帧图像帧时,在动效线程即将处理第m帧图像帧时,动效线程会发出Vsync信号,并且,动效线程需要调用CPU和GPU在固定周期(例如11.1ms)内完成第m帧图像帧的参数计算、绘制和渲染。动效线程将Vsync信号发出后,动效线程开始调用CPU根据第m-1帧图像帧的参数信息得到第m帧图像帧的参数信息以及绘制第m帧图像帧,CPU绘制完第m帧图像帧之后,动效线程调用GPU对CPU绘制的第m帧图像帧进行渲染。若动效线程在固定周期内完成第m帧图像帧的参数计算、绘制和渲染第m帧图像帧,动效线程将第m帧图像帧送到显示器进行显示。
以此类推,后续动效线程处理每一帧图像帧时,均会发出Vsync信号,并且动效线程在固定周期内处理完该帧图像帧的参数计算、绘制和渲染,则动效线程将该图像帧送到显示器进行显示。可以理解的是,只有动效线程发出Vsync信号之后,UI线程才会调用CPU根据当前图像帧的参数信息计算下一帧图像的参数信息、绘制和渲染下一帧图像,绘制下一帧图像。
值得注意的是,若发出Vsync信号调用CPU/GPU可以在固定周期内完成指定图像帧的参数信息和绘制和渲染指定图像帧,则指定图像帧可以在显示器上显示。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (16)
1.一种动效计算方法,其特征在于,所述方法包括:
电子设备接收用户的第一操作,所述第一操作用于启动播放第一应用程序的第一动效;
根据所述第一操作,所述电子设备显示所述第一动效中的第一图像帧,并通过图层合成surfaceflinger模块基于所述第一图像帧的第一参数信息确定所述第一动效中第二图像帧的第二参数信息;
所述电子设备通过所述surfaceflinger基于所述第二参数信息合成所述第二图像帧;
所述电子设备显示所述第二图像帧。
2.根据权利要求1所述的方法,其特征在于,在所述电子设备显示所述第一动效中的第一图像帧之前,所述方法还包括:
所述电子设备在所述surfaceflinger中新建动效处理线程;
所述电子设备通过图层合成模块surfaceflinger基于所述第一图像帧的第一参数信息确定出所述第一动效中第二图像帧的第二参数信息,包括:
所述电子设备通过所述动效处理线程根据所述第一图像帧的所述第一参数信息确定出所述第二图像帧的所述第二参数信息。
3.根据权利要求1-2任一项所述的方法,其特征在于,所述电子设备通过所述surfaceflinger根据所述第一图像帧的所述第一参数信息得到所述第二图像帧的所述第二参数信息,包括:
所述电子设备通过所述surfaceflinger基于所述第一参数信息插值运算出所述第二参数信息。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述第一图像帧为所述第一动效中的首帧图像帧;
在所述电子设备通过所述surfaceflinger基于所述第一图像帧的第一参数信息确定出所述第一动效中第二图像帧的第二参数信息之前,所述方法还包括:
所述surfaceflinger通过所述第一应用程序获取所述第一参数信息。
5.根据权利要求1所述的方法,其特征在于,在所述电子设备显示所述第二图像帧之后,所述方法还包括:
所述电子设备接收用户的第二操作,所述第二操作用于启动播放所述第一应用程序的第二动效;
根据所述第二操作,所述电子设备通过所述surfaceflinger基于所述第二参数信息确定出第三图像的第三参数信息;其中,所述第三图像帧为所述第二动效中的首帧图像帧;
所述电子设备通过所述surfaceflinger基于所述第三参数信息合成所述第三图像帧;
所述电子设备显示所述第三图像帧。
6.根据权利要求5所述的方法,其特征在于,所述第二图像帧为所述第一动效的最后一帧图像帧;在所述电子设备接收用户的所述第二操作之前,所述方法还包括:
所述电子设备在播放完所述第一动效后,显示所述第一应用程序的第一用户界面。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述第一参数信息包括以下任意一项或多项:所述第一图像帧的中心点的位置、所述第一图像帧的窗口尺寸、所述第一图像帧的透明度、所述第一图像帧的圆角大小;
所述第二参数信息包括以下任意一项或多项:所述第二图像帧的中心点的位置、所述第二图像帧的窗口尺寸、所述第二图像帧的透明度、所述第二图像帧的圆角大小;
所述第三参数信息包括以下任意一项或多项:所述第三图像帧的中心点的位置、所述第三图像帧的窗口尺寸、所述第三图像帧的透明度、所述第三图像帧的圆角大小。
8.一种电子设备,为第一电子设备,其特征在于,所述电子设备包括:一个或多个处理器、一个或多个存储器;
所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:
接收用户的第一操作,所述第一操作用于启动播放第一应用程序的第一动效;
根据所述第一操作,显示所述第一动效中的第一图像帧,并通过图层合成模块surfaceflinger基于所述第一图像帧的第一参数信息确定所述第一动效中第二图像帧的第二参数信息;
通过所述surfaceflinger基于所述第二参数信息合成所述第二图像帧;
显示所述第二图像帧。
9.根据权利要求8所述的电子设备,其特征在于,在所述电子设备显示所述第一动效中的第一图像帧之前,所述一个或多个处理器具体用于调用所述计算机指令以使得所述电子设备执行:
在所述surfaceflinger中新建动效处理线程;
通过所述动效处理线程根据所述第一图像帧的所述第一参数信息确定出所述第二图像帧的所述第二参数信息。
10.根据权利要求8-9任一项所述的电子设备,其特征在于,所述一个或多个处理器具体用于调用所述计算机指令以使得所述电子设备执行:
通过所述surfaceflinger基于所述第一参数信息插值运算出所述第二参数信息。
11.根据权利要求8-10任一项所述的电子设备,其特征在于,所述第一图像帧为所述第一动效中的首帧图像帧;
在所述电子设备通过所述surfaceflinger基于所述第一图像帧的第一参数信息确定出所述第一动效中第二图像帧的第二参数信息之前,所述一个或多个处理器具体用于调用所述计算机指令以使得所述电子设备执行:
所述surfaceflinger通过所述第一应用程序获取所述第一参数信息。
12.根据权利要求8所述的电子设备,其特征在于,在所述电子设备显示所述第二图像帧之后,所述一个或多个处理器具体用于调用所述计算机指令以使得所述电子设备执行:
所述电子设备接收用户的第二操作,所述第二操作用于启动播放所述第一应用程序的第二动效;
根据所述第二操作,所述电子设备通过所述surfaceflinger基于所述第二参数信息确定出第三图像的第三参数信息;其中,所述第三图像帧为所述第二动效中的首帧图像帧;
所述电子设备通过所述surfaceflinger基于所述第三参数信息合成所述第三图像帧;
所述电子设备显示所述第三图像帧。
13.根据权利要求12所述的电子设备,其特征在于,所述第二图像帧为所述第一动效的最后一帧图像帧;在所述电子设备接收用户的所述第二操作之前,所述一个或多个处理器具体用于调用所述计算机指令以使得所述电子设备执行:
在播放完所述第一动效后,显示所述第一应用程序的第一用户界面。
14.根据权利要求8-13任一项所述的电子设备,其特征在于,所述第一参数信息包括以下任意一项或多项:所述第一图像帧的中心点的位置、所述第一图像帧的窗口尺寸、所述第一图像帧的透明度、所述第一图像帧的圆角大小;
所述第二参数信息包括以下任意一项或多项:所述第二图像帧的中心点的位置、所述第二图像帧的窗口尺寸、所述第二图像帧的透明度、所述第二图像帧的圆角大小;
所述第三参数信息包括以下任意一项或多项:所述第三图像帧的中心点的位置、所述第三图像帧的窗口尺寸、所述第三图像帧的透明度、所述第三图像帧的圆角大小。
15.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行权利要求1至7任一项所述的方法。
16.一种包含指令的计算机程序产品,其特征在于,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行如权利要求1至7任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP22810275.2A EP4325355A1 (en) | 2021-05-26 | 2022-04-22 | Dynamic effect calculating method and apparatus |
PCT/CN2022/088524 WO2022247542A1 (zh) | 2021-05-26 | 2022-04-22 | 一种动效计算方法及装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2021105805967 | 2021-05-26 | ||
CN202110580596 | 2021-05-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115408071A true CN115408071A (zh) | 2022-11-29 |
Family
ID=84156613
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110616940.3A Pending CN115408071A (zh) | 2021-05-26 | 2021-06-02 | 一种动效计算方法及装置 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4325355A1 (zh) |
CN (1) | CN115408071A (zh) |
WO (1) | WO2022247542A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049257B (zh) * | 2012-12-07 | 2016-08-24 | 深圳天珑无线科技有限公司 | 一种开机显示动画的方法及电子设备 |
CN105979332A (zh) * | 2015-12-04 | 2016-09-28 | 乐视致新电子科技(天津)有限公司 | 一种视频数据的检测方法和装置 |
US10049625B1 (en) * | 2016-12-21 | 2018-08-14 | Amazon Technologies, Inc. | Context-based rendering |
CN111803960B (zh) * | 2017-03-03 | 2024-01-19 | 网易(杭州)网络有限公司 | 用于启动预设流程的方法及设备 |
CN108776572A (zh) * | 2018-05-28 | 2018-11-09 | 北京小米移动软件有限公司 | 窗口处理方法及装置 |
CN109389547B (zh) * | 2018-09-30 | 2023-05-09 | 北京小米移动软件有限公司 | 图像显示方法及装置 |
-
2021
- 2021-06-02 CN CN202110616940.3A patent/CN115408071A/zh active Pending
-
2022
- 2022-04-22 WO PCT/CN2022/088524 patent/WO2022247542A1/zh active Application Filing
- 2022-04-22 EP EP22810275.2A patent/EP4325355A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022247542A1 (zh) | 2022-12-01 |
EP4325355A1 (en) | 2024-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110119296B (zh) | 切换父页面和子页面的方法、相关装置 | |
CN114579075B (zh) | 数据处理方法和相关装置 | |
CN112558825A (zh) | 一种信息处理方法及电子设备 | |
CN113254120B (zh) | 数据处理方法和相关装置 | |
CN113132526B (zh) | 一种页面绘制方法及相关装置 | |
WO2022247541A1 (zh) | 一种应用程序动效衔接的方法及装置 | |
CN112383664B (zh) | 一种设备控制方法、第一终端设备、第二终端设备及计算机可读存储介质 | |
CN112527174A (zh) | 一种信息处理方法及电子设备 | |
CN113778574A (zh) | 卡片分享方法、电子设备及通信*** | |
CN112068907A (zh) | 一种界面显示方法和电子设备 | |
CN115048012A (zh) | 数据处理方法和相关装置 | |
CN113536866A (zh) | 一种人物追踪显示方法和电子设备 | |
CN115016706A (zh) | 一种线程的调度方法及电子设备 | |
WO2022068522A1 (zh) | 一种目标跟踪方法及电子设备 | |
CN111437600A (zh) | 剧情展示方法、装置、设备及存储介质 | |
WO2021254113A1 (zh) | 一种三维界面的控制方法和终端 | |
CN111312207B (zh) | 文本转音频方法、装置、计算机设备及存储介质 | |
CN114201978A (zh) | 一种对应用程序的界面进行翻译的方法及相关设备 | |
CN115408071A (zh) | 一种动效计算方法及装置 | |
CN115994006A (zh) | 动画效果显示方法及电子设备 | |
CN116700555B (zh) | 动效处理方法及电子设备 | |
WO2024046010A1 (zh) | 一种界面显示方法、设备及*** | |
WO2023066177A1 (zh) | 动画效果显示方法及电子设备 | |
WO2023241544A1 (zh) | 组件预览的方法和电子设备 | |
WO2024139934A1 (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 |