一种动效计算方法及装置制造方法及图纸

技术编号:35765512 阅读:9 留言:0更新日期:2022-12-01 14:01
本申请提供了一种动效计算方法,方法包括:电子设备在系统服务侧的图层合成模块新建一个动效处理线程。电子设备将所有应用程序UI线程处理的动效计算均解耦到图层合成模块侧的动效处理线程,由图层合成模块侧的动效处理线程处理所有的所有应用程序UI线程处理的动效计。这样,可以防止应用程序的UI线程在固定周期内没处理完图像帧的绘制和渲染,导致图像帧丢弃的问题。帧丢弃的问题。帧丢弃的问题。

【技术实现步骤摘要】
一种动效计算方法及装置


[0001]本申请涉及终端
,尤其涉及一种动效计算方法及装置。

技术介绍

[0002]随着信息技术的不断发展,电子设备已经成为人们生活中不可或缺的工具。例如,用户可以在电子设备中安装各种不同的应用程序(application,APP)。不同的APP可以给用户提供不同的服务功能。
[0003]目前,为了使得应用程序在启动阶段或退出阶段,给用户带来较好的用户体验,电子设备会在应用程序的启动阶段或退出阶段会播放一段动效。但是,目前,动效均在应用程序的UI线程中执行,在UI线程进行动效计算的同时,还会处理其他的事项。若其他的事项的处理时间比较久,占用了动效计算的时间,UI线程会丢弃部分动效中的图像帧,导致播放的动效出现卡顿的现象。因此,解决动效播放时出现卡顿的问题是亟待解决的问题。

技术实现思路

[0004]本申请提供了一种动效计算方法及装置。实现了在图层合成(surface flinger,SF)模块中新建一个动效处理线程,该动效处理线程专门做动效计算。解决了动效计算在UI线程中计算时得不到及时调度导致动效中部分图像帧丢弃的问题,从而导致动效播放时出现卡顿的情况,使得动效播放更加流畅。
[0005]第一方面,本申请提供了一种动效计算方法,电子设备接收用户的第一操作,第一操作用于启动播放第一应用程序的第一动效;根据第一操作,电子设备显示第一动效中的第一图像帧,并通过图层合成模块surfaceflinger基于第一图像帧的第一参数信息确定第一动效中第二图像帧的第二参数信息;电子设备通过surfaceflinger基于第二参数信息合成第二图像帧;电子设备显示第二图像帧。
[0006]其中,第一动效可以为启动动效或退出动效;当第一动效为启动动效时,第一操作为播放启动动效的操作,第一操作可以是点击第一应用的图标的操作;当第一动效为退出动效时,第一操作为播放退出动效的操作,第一操作可以是作用于电子设备的下边沿下屏幕的上方的滑动操作。
[0007]通过第一方面提供的方法,电子设备在surface flinger中新建一个动效处理线程,该动效处理线程专门做动效计算。解决了动效计算在UI线程中计算时得不到及时调度导致动效中部分图像帧丢弃的问题,从而导致动效播放时出现卡顿的情况,使得动效播放更加流畅。
[0008]结合第一方面,在一种可能的实现方式中,在电子设备显示第一动效中的第一图像帧之前,电子设备在surfaceflinger中新建动效处理线程;电子设备通过图层合成模块surfaceflinger基于第一图像帧的第一参数信息确定出第一动效中第二图像帧的第二参数信息,包括:电子设备通过动效处理线程根据第一图像帧的第一参数信息确定出第二图像帧的第二参数信息。这样,电子设备在surfaceflinger侧新建动效处理线程,可以将电子
设备中的所有应用程序的动效计算的任务事项放在surfaceflinger侧的动效处理线程区处理,一方面,可以集中调度电子设备中所有应用程序的动效计算的任务事项;另一方面,解决了动效计算在UI线程中计算时得不到及时调度导致动效中部分图像帧丢弃的问题,从而导致动效播放时出现卡顿的情况,使得动效播放更加流畅。
[0009]结合第一方面,在一种可能的实现方式中,电子设备通过surfaceflinger根据第一图像帧的第一参数信息得到第二图像帧的第二参数信息,包括:电子设备通过surfaceflinger基于第一参数信息插值运算出第二参数信息。即surfaceflinger按照插值算法根据启动动效或退出动效中当前显示的图像帧的初始参数信息来计算下一帧图像帧的参数信息的。这样,电子设备使用插值算法得到图像帧的参数信息合成的图像帧播放动效时,电子设备显示的动效效果会更加流畅。
[0010]插值算法可以通过如下公式根据动效中当前图像帧的参数信息得到下一帧图像帧的参数信息:
[0011]a=k*x/m
ꢀꢀꢀ
公式(1)
[0012]V=v+a*t
ꢀꢀꢀ
公式(2)
[0013]P=p+V*t
ꢀꢀꢀ
公式(3)
[0014]如公式(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。
[0015]v表示物体的初始速度,V表示物体的下一时刻的速度,P表示物体的初始位置,p表示物体的下一时刻的位置,t表示当前电子设备100计算的是启动动效或者退出动效中的第几帧图像帧的参数信息。需要说明的是,当电子设备100在计算启动动效中的图像帧的参数信息时,公式(3)中的v为正数;当电子设备100在计算退出动效中的图像帧的参数信息时,公式(3)中的v为负数。
[0016]结合第一方面,在一种可能的实现方式中,第一图像帧为第一动效中的首帧图像帧;在电子设备通过surfaceflinger基于第一图像帧的第一参数信息确定出第一动效中第二图像帧的第二参数信息之前,方法还包括:surfaceflinger通过第一应用程序获取第一参数信息。电子设备通过插值算法实时确定出下一时刻图像帧的参数信息时,需要知道第一动效中初始图像帧的参数信息。这里,第一图像帧为第一动效中的初始图像帧,电子设备100可以根据第一图像帧的第一参数信息得到第二图像帧的第二参数信息,以此类推。
[0017]结合第一方面,在一种可能的实现方式中,在电子设备显示第二图像帧之后,方法还包括:电子设备接收用户的第二操作,第二操作用于启动播放第一应用程序的第二动效;根据第二操作,电子设备通过surfaceflinger基于第二参数信息确定出第三图像的第三参数信息;其中,第三图像帧为第二动效中的首帧图像帧。
[0018]电子设备通过surfaceflinger基于第三参数信息合成第三图像帧;电子设备显示第三图像帧。
[0019]这里,第一操作为播放启动动效的操作,第二操作为播放退出动效的操作,第三图像帧为第二动效中的首帧图像帧。电子设备根据第二图像帧的第二参数信息确定第三图像
帧的第三参数信息,即退出动效的首帧图像帧的参数信息是根据启动动效中显示的最后一帧图像帧得到的。启动动效中显示的最后一帧图像帧可以是启动动效中的最后一帧图像帧,也可以是启动动效中的最后一帧图像帧之前的任意一帧图像帧。这样,电子设备使用插值算法得到图像帧的参数信息合成的图像帧播放动效时,电子设备显示的退出动效的效果会更加流畅。
[0020]结合第一方面,在一种可能的实现方式中,第二图像帧为本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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.一种电子设备,为第一电子设备,其特征在于,所述电子设备包括:一个或多个处理器、一个或多个存储器;所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调...

【专利技术属性】
技术研发人员:周帅王敏陈旭谢冰
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1