System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种生成界面图像的方法及电子设备技术_技高网

一种生成界面图像的方法及电子设备技术

技术编号:40701877 阅读:2 留言:0更新日期:2024-03-22 11:00
本申请提供了一种生成界面图像的方法及电子设备,涉及终端技术领域。在SurfaceFlinger服务生成图层之前的第一时刻提前根据图层的属性信息申请图层对应的缓存。在SurfaceFlinger服务响应于Vsync信号生成图层时,直接将提前申请好的缓存绑定至该图层对应的缓冲队列,不需要在生成图层时实时申请内存。由于图层的缓存是提前申请好的,在生成图层时仅做缓存与缓冲队列的绑定,绘制图层的时长不受申请内存时长的影响,避免了下一个Vsync信号到来时界面图像未准备好的问题,降低了显示画面丢帧的概率。

【技术实现步骤摘要】

本申请涉及终端,尤其涉及一种生成界面图像的方法及电子设备


技术介绍

1、电子设备的显示画面由一帧一帧的界面图像组成,每个界面图像通常包括至少一个图层。电子设备的系统和应用准备好各个图层的资源,生成各个图层,并经过渲染、合成后,就可以在屏幕上显示一帧一帧的界面图像。在生成图层过程中,需要为各个图层分别申请内存,用于生成图层的相关处理。在图层变化较大的场景,有一定概率会出现申请内存时间较长,导致准备界面图像时长较长的问题。如果电子设备刷新屏幕时有的界面图像未准备好,就会产生显示画面丢帧的问题。


技术实现思路

1、本申请实施例提供一种生成界面图像的方法及电子设备,可以解决生成界面图像的图层时间过长的问题,降低电子设备显示画面丢帧的概率。

2、为达到上述目的,本申请的实施例采用如下技术方案:

3、第一方面,提供了一种生成界面图像的方法,应用于电子设备,电子设备上安装有第一应用,所述电子设备的操作系统包括表面合成服务和合成渲染组件,该方法包括:表面合成服务获取第一应用的第一界面图像的第一图层的属性信息;比如,属性信息可以包括图层宽度、图层高度和界面图像的像素信息中至少一项。表面合成服务在第一时刻根据第一图层的属性信息申请第一缓存;表面合成服务在第二时刻(接收到第一垂直同步vsync信号的时刻)将第一缓存绑定至第一图层对应的缓冲队列;表面合成服务根据第一界面图像包含的全部图层对应的缓冲队列生成全部图层;合成渲染组件对全部图层进行渲染与合成,生成第一界面图像。

<p>4、其中,第一时刻早于第二时刻。由于在第一时刻提前根据第一图层的属性信息申请了第一图层对应的缓存(buffercache)。在表面合成服务(surfaceflinger服务)接收到第一vsync信号生成第一图层时,直接将提前申请好的buffercache绑定至第一图层对应的缓冲队列(bufferqueue),然后就可以根据第一图层的图形数据向buffercache填充图层内容。不需要在生成第一图层时实时申请buffer。由于第一图层的buffercache是提前申请好的,在生成第一图层时仅做buffercache与bufferqueue的绑定,然后向buffercache中填充内容;绘制第一图层的时长不受申请内存时长的影响,避免了下一个vsync信号(第二vsync信号)到来时第一界面图像未准备好的问题。

5、结合第一方面,在一种实施方式中,表面合成服务根据第一图层的属性信息申请第一缓存包括:表面合成服务根据第一图层的属性信息确定第一值,第一值为第一缓存占据的空间大小;表面合成服务根据第一值申请第一缓存。

6、图层对应的缓存占据的空间大小是根据图层的属性信息确定,表面合成服务需要获取到图层的属性信息之后才能申请图层buffer。

7、结合第一方面,在一种实施方式中,该方法还包括:在第三时刻,电子设备的屏幕上显示第一界面图像;第三时刻为第二vsync信号下发的时刻,第二vsync信号为第一vsync信号的下一个vsync信号。

8、也就是说,第一vsync信号下发时开始生成图层,第二vsync信号下发前需要准备好界面图像,这样就可以在第二vsync信号下发时显示界面图像,避免出现丢帧现象。

9、结合第一方面,在一种实施方式中,第一时刻为第一界面图像对应的activity被创建或启动的时刻。

10、第一应用冷启动过程中,当检测到第一应用的应用界面对应的activity的oncreate事件或onstart事件时,申请应用界面图层、状态栏图层、导航栏图层、壁纸图层等各个图层对应的buffercache。surfaceflinger服务接收到vsync信号生成图层时,只需要将提前申请好的各个buffercache分别绑定至对应的bufferqueue,不需要在生成图层时实时申请内存。申请内存耗费的时长不会影响生成界面图像的速度。这样就避免了下一个vsync信号到来时界面图像还未准备好的问题,降低了电子设备显示画面丢帧的几率。

11、在一种实现方式中,第一图层为应用界面图层,表面合成服务从第一应用的进程获取第一图层的属性信息。

12、在另一种实现方式中,第一图层为状态栏图层、导航栏图层或壁纸图层,表面合成服务从操作系统的进程获取第一图层的属性信息。

13、其中,在一些实现方式中,当检测到第一应用的应用界面对应的activity的oncreate事件或onstart事件时,第一应用将应用界面图层的属性信息发送给表面合成服务。在一些实现方式中,表面合成服务通过学习获取第一应用的应用界面图层的属性信息。

14、结合第一方面,在一种实施方式中,第一时刻为检测到横屏切换竖屏事件、竖屏切换横屏事件、折叠屏展开事件或折叠屏折叠事件的时刻。

15、应用运行过程中,当电子设备发生横竖屏切换、或者电子设备的折叠屏展开或折叠时,surfaceflinger服务申请发生变化的图层(第一图层)对应的buffercache。surfaceflinger服务接收到vsync信号生成图层时,只需要将提前申请好的各个图层的buffercache分别绑定至对应的bufferqueue,不需要在生成图层时实时申请内存。申请内存耗费的时长不会影响生成界面图像的速度。这样就避免了下一个vsync信号到来时界面图像还未准备好的问题,降低了电子设备显示画面丢帧的几率。

16、在一些实施方式中,第一时刻为检测到横屏切换竖屏事件的时刻,第一图层为应用界面图层,表面合成服务根据电子设备竖屏状态下应用界面图层的属性信息申请第一缓存。

17、在一些实施方式中,第一时刻为检测到竖屏切换横屏事件的时刻,第一图层为应用界面图层,表面合成服务根据电子设备横屏状态下应用界面图层的属性信息申请第一缓存。

18、在一些实施方式中,第一时刻为检测到折叠屏展开事件的时刻,第一图层包括状态栏图层、导航栏图层和壁纸图层中至少一项,表面合成服务根据电子设备的折叠屏展开状态下第一图层的属性信息申请第一缓存。

19、在一些实施方式中,第一时刻为检测到折叠屏折叠事件的时刻,第一图层包括状态栏图层、导航栏图层和壁纸图层中至少一项,表面合成服务根据电子设备的折叠屏折叠状态下第一图层的属性信息申请第一缓存。

20、第二方面,提供了一种电子设备,该电子设备具有实现上述第一方面所述生成界面图像的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。

21、第三方面,提供了一种电子设备,包括:处理器、存储器和显示屏;该存储器用于存储计算机执行指令,当该电子设备运行时,该处理器执行该存储器存储的该计算机执行指令,以使该电子设备执行如上述第一方面中任一项所述的方法。

22、第四方面,提供了一种电子设备,包括:处理器;所述处理器用于与存储器耦合,并读取存储器中的指本文档来自技高网...

【技术保护点】

1.一种生成界面图像的方法,应用于电子设备,所述电子设备上安装有第一应用,所述电子设备的操作系统包括表面合成服务和合成渲染组件,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述表面合成服务根据所述第一图层的属性信息申请第一缓存包括:

3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:

4.根据权利要求1-3中任意一项所述的方法,其特征在于,所述第一时刻为所述第一界面图像对应的Activity被创建或启动的时刻。

5.根据权利要求4所述的方法,其特征在于,所述第一图层为应用界面图层,所述表面合成服务获取第一界面图像的第一图层的属性信息包括:

6.根据权利要求4所述的方法,其特征在于,所述第一图层为状态栏图层、导航栏图层或壁纸图层,所述表面合成服务获取第一界面图像的第一图层的属性信息包括:

7.根据权利要求1-3中任意一项所述的方法,其特征在于,所述第一时刻为检测到横屏切换竖屏事件、竖屏切换横屏事件、折叠屏展开事件或折叠屏折叠事件的时刻。

8.根据权利要求7所述的方法,其特征在于,所述第一时刻为检测到横屏切换竖屏事件的时刻,所述第一图层为应用界面图层,所述表面合成服务根据所述第一图层的属性信息申请第一缓存包括:

9.根据权利要求7所述的方法,其特征在于,所述第一时刻为检测到竖屏切换横屏事件的时刻,所述第一图层为应用界面图层,所述表面合成服务根据所述第一图层的属性信息申请第一缓存包括:

10.根据权利要求7所述的方法,其特征在于,所述第一时刻为检测到折叠屏展开事件的时刻,所述第一图层包括状态栏图层、导航栏图层和壁纸图层中至少一项,所述表面合成服务根据所述第一图层的属性信息申请第一缓存包括:

11.根据权利要求7所述的方法,其特征在于,所述第一时刻为检测到折叠屏折叠事件的时刻,所述第一图层包括状态栏图层、导航栏图层和壁纸图层中至少一项,所述表面合成服务根据所述第一图层的属性信息申请第一缓存包括:

12.一种电子设备,其特征在于,所述电子设备包括:处理器、存储器和显示屏,所述处理器、所述显示屏与所述存储器耦合;所述存储器用于存储计算机程序代码;所述计算机程序代码包括计算机指令,当所述处理器执行上述计算机指令时,使得所述电子设备执行如权利要求1-11中任意一项所述的方法。

13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-11中任意一项所述的方法。

...

【技术特征摘要】

1.一种生成界面图像的方法,应用于电子设备,所述电子设备上安装有第一应用,所述电子设备的操作系统包括表面合成服务和合成渲染组件,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述表面合成服务根据所述第一图层的属性信息申请第一缓存包括:

3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:

4.根据权利要求1-3中任意一项所述的方法,其特征在于,所述第一时刻为所述第一界面图像对应的activity被创建或启动的时刻。

5.根据权利要求4所述的方法,其特征在于,所述第一图层为应用界面图层,所述表面合成服务获取第一界面图像的第一图层的属性信息包括:

6.根据权利要求4所述的方法,其特征在于,所述第一图层为状态栏图层、导航栏图层或壁纸图层,所述表面合成服务获取第一界面图像的第一图层的属性信息包括:

7.根据权利要求1-3中任意一项所述的方法,其特征在于,所述第一时刻为检测到横屏切换竖屏事件、竖屏切换横屏事件、折叠屏展开事件或折叠屏折叠事件的时刻。

8.根据权利要求7所述的方法,其特征在于,所述第一时刻为检测到横屏切换竖屏事件的时刻,所述第一图层为应用界面图层,所述表面合成服务根据所述第一图层的属性信息...

【专利技术属性】
技术研发人员:杨胜利田孝斌
申请(专利权)人:荣耀终端有限公司
类型:发明
国别省市:

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

1