显示层级的切换方法、装置、设备及存储介质与流程

文档序号:26101696发布日期:2021-07-30 18:12阅读:118来源:国知局
显示层级的切换方法、装置、设备及存储介质与流程

本申请实施例涉及汽车技术领域,特别涉及一种显示层级的切换方法、装置、设备及存储介质。



背景技术:

目前的很多汽车上都配备有车机设备以及屏幕,可以在车机设备上安装应用程序,启动应用程序之后可以在屏幕上显示应用程序的界面,以使用户可以通过应用程序的界面操控应用程序。

然而,有时候需要根据实际需求动态调节应用程序的界面的显示层级。

例如:对于应用程序kanzi车模,有时候需要将kanzi车模的界面作为屏幕的背景,然后在kanzi车模的界面上悬浮显示应用程序的列表(kanzi车模的界面显示层级低于应用程序的列表的显示层级)。有时需要将kanzi车模的界面悬浮显示在另一个应用程序的界面上(kanzi车模的界面显示层级高于另一个应用程序的界面的显示层级)。

为了能够动态调节应用程序的界面的显示层级,对于任意一个应用程序,事先可以为该应用程序开发多个surface(用于绘制图像的画布),多个surface对应不同的显示层级,在需要将应用程序的界面显示在某一层级的情况下,可以将该应用程序的界面中的数据输入该层级对应的surface,之后可以在该层级对应的surface中对该应用程序的界面中的数据进行渲染,从而可以实现将应用程序的界面显示在该层级上。

之后,在需要将应用程序的界面从该层级切换至另一层级的情况下,可以将该应用程序的界面中的数据不再使用该层级对应的surface渲染,而是切换使用另一层级对应的surface渲染,例如,启动另一层级对应的surface,然后将该应用程序的界面中的数据输入另一层级对应的surface,之后可以在另一层级对应的surface中对该应用程序的界面中的数据进行渲染,从而可以实现将应用程序的界面从该层级切换至另一层级。

然而,发明人发现,在上述方式中,“启动另一层级对应的surface”的过程需要耗费一段时间,因此,将应用程序的界面从该层级切换至另一层级的过程中往往会出现跳帧等现象,会降低用户的观看体验。



技术实现要素:

为了提高用户的观看体验,则可以在将应用程序的界面从该层级切换至另一层级的过程中避免出现跳帧等现象。

为了在将应用程序的界面从该层级切换至另一层级的过程中避免出现跳帧等现象,则可以在需要将应用程序的界面从该层级切换至另一层级的情况下不切换使用另一层级对应的surface渲染,例如,自始至终使用同一surface渲染,具体地,本申请示出了一种显示层级的切换方法、装置、设备及存储介质。技术方案如下:

一方面,本申请实施例提供一种显示层级的切换方法,所述方法包括:

在原生画布surface中写入的数据已经渲染在第一显示层级的情况下,如果需要将所述数据切换至第二显示层级显示,获取所述第二显示层级的标记token信息,以及获取所述原生surface的默认显示层级的token信息;

将所述默认显示层级的token信息与所述第二显示层级的token信息绑定;

在针对所述第二显示层级进行渲染时,根据与所述第二显示层级的token信息绑定的所述默认显示层级的token信息,将在所述原生surface中写入的所述数据在所述第二显示层级上渲染。

在一个可选的实现方式中,所述获取所述第二显示层级的标记token信息,包括:

获取所述第二显示层级对应的画布载体surfaceview的地址;

根据所述surfaceview的地址,在所述第二显示层级对应的surfaceview的画布控制器surfacecontrol中获取所述第二显示层级的token信息。

在一个可选的实现方式中,所述根据与所述第二显示层级的token信息绑定的所述默认显示层级的token信息,将在所述原生surface中写入的所述数据在所述第二显示层级上渲染之后,还包括:

将所述默认显示层级的token信息与所述第二显示层级的token信息解绑定。

在一个可选的实现方式中,所述获取所述第二显示层级的token信息,以及获取所述原生surface的默认显示层级的token信息之前,还包括:

在需要将所述数据显示在所述第一显示层级的情况下,将所述数据写入所述原生surface中;

获取所述第一显示层级的token信息,以及获取所述原生surface的默认显示层级的token信息;

将所述默认显示层级的token信息与所述第一显示层级的token信息绑定;

在针对所述第一显示层级进行渲染时,根据与所述第一显示层级的token信息绑定的所述默认显示层级的token信息,将在所述原生surface中写入的所述数据在所述第一显示层级上渲染。

在一个可选的实现方式中,所述根据与所述第一显示层级的token信息绑定的所述默认显示层级的token信息,将在所述原生surface中写入的所述数据在所述第一显示层级上渲染之后,还包括:

将所述默认显示层级的token信息与所述第一显示层级的token信息解绑定。

在一个可选的实现方式中,所述获取所述第一显示层级的标记token信息,包括:

获取所述第一显示层级对应的surfaceview的地址;

根据所述surfaceview的地址,在所述第一显示层级对应的surfaceview的surfacecontrol中获取所述第一显示层级的标记token信息。

在一个可选的实现方式中,所述获取所述原生surface的默认显示层级的token信息,包括:

在所述原生surface的surfacecontrol中获取所述默认显示层级的token信息。

另一方面,本申请实施例提供一种显示层级的切换装置,所述装置包括:

第一获取模块,用于在原生画布surface中写入的数据已经渲染在第一显示层级的情况下,如果需要将所述数据切换至第二显示层级显示,获取所述第二显示层级的标记token信息;第二获取模块,用于获取所述原生surface的默认显示层级的token信息;

第一绑定模块,用于将所述默认显示层级的token信息与所述第二显示层级的token信息绑定;

第一渲染模块,用于在针对所述第二显示层级进行渲染时,根据与所述第二显示层级的token信息绑定的所述默认显示层级的token信息,将在所述原生surface中写入的所述数据在所述第二显示层级上渲染。

在一个可选的实现方式中,所述第一获取模块包括:

第一获取单元,用于获取所述第二显示层级对应的画布载体surfaceview的地址;

第二获取单元,用于根据所述surfaceview的地址,在所述第二显示层级对应的surfaceview的画布控制器surfacecontrol中获取所述第二显示层级的token信息。

在一个可选的实现方式中,所述装置还包括:

第一解绑定模块,用于将所述默认显示层级的token信息与所述第二显示层级的token信息解绑定。

在一个可选的实现方式中,所述装置还包括:

写入模块,用于在需要将所述数据显示在所述第一显示层级的情况下,将所述数据写入所述原生surface中;

第三获取模块,用于获取所述第一显示层级的token信息,所述第二获取模块还用于获取所述原生surface的默认显示层级的token信息;

第二绑定模块,用于将所述默认显示层级的token信息与所述第一显示层级的token信息绑定;

第二渲染模块,用于在针对所述第一显示层级进行渲染时,根据与所述第一显示层级的token信息绑定的所述默认显示层级的token信息,将在所述原生surface中写入的所述数据在所述第一显示层级上渲染。

在一个可选的实现方式中,所述装置还包括:

第二解绑定模块,用于将所述默认显示层级的token信息与所述第一显示层级的token信息解绑定。

在一个可选的实现方式中,所述第三获取模块包括:

第三获取单元,用于获取所述第一显示层级对应的surfaceview的地址;

第四获取单元,用于根据所述surfaceview的地址,在所述第一显示层级对应的surfaceview的surfacecontrol中获取所述第一显示层级的标记token信息。

在一个可选的实现方式中,所述所述第二获取模块具体用于:在所述原生surface的surfacecontrol中获取所述默认显示层级的token信息。

再一方面,本申请实施例提供一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述方面所述的方法。

又一方面,本申请实施例提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述方面所述的方法。

又一方面,本申请实施例提供一种计算机程序产品,当该计算机程序产品被执行时,其用于执行上述方面所述的方法。

在一种情况中,需要渲染的应用程序的界面中的数据包括特定时长的视频流,视频流包括多帧图像,在需要将需要渲染的数据从该层级切换至另一层级的情况下,需要启动另一层级对应的surface,然后向另一层级对应的surface写入视频流的图像,以使之后可以对在另一层级对应的surface中写入的视频流的图像进行渲染,但是“启动另一层级对应的surface”的过程需要耗费一段时间,然而由于视频流具有特定时长,通常不能延长播放视频流的时长,且由于“启动另一层级对应的surface”的过程中无法渲染视频的图像,也即“启动另一层级对应的surface”的过程中无法播放对应时段的视频流,从而在启动另一层级对应的surface之后,“启动另一层级对应的surface”的过程需要耗费一段时间对应的图像就不会写入另一层级对应的surface,需要将位于这一段时间对应的图像之后的图像写入另一层级对应的surface,以使可以对在另一层级对应的surface中写入的、位于这一段时间对应的图像之后的图像进行渲染,无法对这一段时间对应的图像进行渲染,导致用户无法看到这一段时间对应的图像,也即出现跳帧现象,会降低用户的观看体验。

而在本申请中,在原生surface中写入的数据已经渲染在第一显示层级的情况下,如果需要将该数据切换至第二显示层级显示,可以获取第二显示层级的token信息,以及获取原生surface的默认显示层级的token信息,然后将默认显示层级的token信息与第二显示层级的token信息绑定,如此,在针对第二显示层级进行渲染时,可以根据与第二显示层级的token信息绑定的默认显示层级的token信息,将在原生surface中写入的该数据在第二显示层级上渲染。

通过本申请,可以不向第二显示层级对应的surfaceview中的surface中写入该数据,可以直接将在原生surface中写入的该数据与生成的多个的surfaceview中的第二显示层级对应的surfaceview的显示层级关联,以使在针对第二显示层级进行渲染时,可以将在原生surface中写入的该数据在第二显示层级上渲染。

如此,本申请可以支持将需要渲染的数据仅写入原生surface即可,而不用写入其他surface中,将数据的显示层级的切换操作交由后续渲染时执行,从而可以避免更换写入数据的surface,也即不需要启动其他surface,不需要等待启动其他surface的过程,避免由于等待启动其他surface的过程而耽误时间,从而避免出现由于更换写入数据的surface而带来的时间延迟,进而可以避免跳帧现象发生,从而可以提高用户的观看体验。

附图说明

图1是本申请的一种显示数据的方法的步骤流程图。

图2是本申请的一种显示层级的切换方法的步骤流程图。

图3是本申请的一种显示层级的切换装置的结构框图。

图4是本申请一个实施例提供的计算机设备的结构框图。

具体实施方式

下面将结合附图对本申请实施方式作进一步地详细描述。

在本申请中,车机设备中具有操作系统,例如安卓操作系统等,安卓操作系统的本地框架层提供有原生surfacecontrol(画布控制器,一种组件),在本地框架层基于原生surfacecontrol可以生成原生surfaceview(画布载体),并在原生surfaceview中生成原生surface(画布),原生surface用于绘制画面,以在屏幕上显示画面。

如果需要在屏幕上显示数据,则可以基于原生surface渲染数据,例如,可以将该数据写入原生surface中,以使得可以在本地框架层对在原生surface中写入的该数据渲染。

然而,在本地框架层基于原生surfacecontrol生成的原生surfaceview的显示层级往往很低,如此,原生surfaceview中的原生surface的显示层级往往很低,通常情况下会低于背景图像,如此,通常情况下,对在原生surface中写入的数据渲染之后,数据往往至少被屏幕上的背景图像遮挡的,是无法被用户看到的。

如此,本申请事先可以在安卓操作系统的安卓框架层生成多个不同的显示层级分别对应的surfacecontrol,然后基于各个surfacecontrol分别生成不同的surfaceview,以及在不同的surfaceview中分别生成surface,生成出的不同的surfaceview分别对应不同的显示层级,如此,不同的surfaceview中的surface分别对应不同的显示层级。

如此,在需要在屏幕上某一显示层级上显示数据的情况下,则可以向原生surface中写入该数据,并借助生成的多个surfaceview中的该显示层级对应的surfaceview在该显示层级上显示该数据。

以及,在需要将在屏幕上该某一显示层级上显示的该数据切换至另一显示层级显示的情况下,可以不向其他显示层级对应的surfaceview中的surface中写入该数据,可以直接借助在原生surface中写入的该数据以及生成的多个的surfaceview中的另一显示层级对应的surfaceview的显示层级在另一显示层级上显示该数据。

具体地,参见图1,在需要将某一数据显示在第一显示层级的情况下,可以通过如下流程实现,包括:

在步骤s101中,将该数据写入原生surface中。

在本申请中,可以调用安卓框架层中的surfacerelatemanager,以获取到原生surface的地址,然后根据原生surface的地址向将该数据写入原生surface中。

其中,surfacerelatemanager位于安卓框架层,其可以作为安卓操作系统的应用层与本地框架层之间的接口。

在步骤s102中,获取第一显示层级的token信息。

本步骤可以通过如下流程实现,包括:

1021、获取第一显示层级对应的surfaceview的地址。

在需要将写入原生surface的该数据显示在第一显示层级的情况下,对于电子设备而言,其可以得到至少两个输入数据,包括:该数据,以及,第一显示层级的层级号,例如,层级号“1”代表第1层、层级号“2”代表第2层、层级号“3”代表第3层......层级号“n”代表第n层等,n为安卓操作系统可以支持的层级的数量的最大值等。

在本申请中,基于不同的surfacecontrol生成的surfaceview的地址不同,对于基于不同的surfacecontrol生成的任意一个surfaceview而言,事先可以将该surfaceview对应的显示层级的层级号与该surfaceview的地址绑定。

如此,在本步骤中,可以根据第一显示层级的层级号获取第一显示层级对应的surfaceview的地址等,例如,可以获取与第一显示层级的层级号绑定的、surfaceview的地址,并作为第一显示层级对应的显示对象的surfaceview的地址。

其中,可以在安卓操作系统的应用层确定第一显示层级对应的显示对象的surfaceview的地址,然后将第一显示层级对应的surfaceview的地址传递给位于安卓框架层的surfacerelatemanager。

1022、根据surfaceview的地址,在第一显示层级对应的surfaceview的surfacecontrol中获取第一显示层级的标记token信息。

其中,第一显示层级对应的surfaceview的地址可以存储在第一显示层级对应的surfaceview的surfacecontrol中,因此,可以根据surfaceview的地址查找第一显示层级对应的surfaceview的surfacecontrol,然后在第一显示层级对应的surfaceview的surfacecontrol中获取第一显示层级的token信息。

其中,安卓框架层的surfacerelatemanager可以根据surfaceview的地址,在第一显示层级对应的surfaceview的surfacecontrol中获取第一显示层级的token信息,然后将第一显示层级的token信息传递给安卓操作系统的本地框架层中的surfacerelateservice。

在步骤s103中,获取原生surface的默认显示层级的token信息。

在本申请中,默认显示层级的token信息存储在生成原生surface的原生surfacecontrol中,因此,可以在原生surfacecontrol中获取默认显示层级的token信息。

其中,在安卓操作系统的本地框架层中的surfacerelateservice得到surfacerelatemanager传递的第一显示层级的token信息之后,可以通过位于安卓操作系统的本地框架层中的surfacerelateservice获取在原生surfacecontrol中获取默认显示层级的token信息。

本申请对步骤s102与步骤s103的执行先后顺序不做限定。

在步骤s104中,将默认显示层级的token信息与第一显示层级的token信息绑定。

其中,surfacerelateservice可以将默认显示层级的token信息与第一显示层级的token信息传递给本地框架层的surfaceflinger,以使surfaceflinger存储默认显示层级的token信息与第一显示层级的token信息之间的对应关系,以实现将默认显示层级的token信息与第一显示层级的token信息绑定。

在步骤s105中,在针对第一显示层级进行渲染时,根据与第一显示层级的token信息绑定的默认显示层级的token信息,将在原生surface中写入的该数据在第一显示层级上渲染。

在surfaceflinger在进行渲染工作的过程中,可以对每一个显示层级分别渲染,其中,在针对第一显示层级进行渲染时,可以根据存储的默认显示层级的token信息与第一显示层级的token信息之间的对应关系确定出默认显示层级的token信息与第一显示层级的token信息之间绑定,从而可以确定出需要在默认显示层级渲染的该数据也可以在第一显示层级上渲染,其中,需要在默认显示层级渲染的数据包括在原生surface中写入的该数据,因此,可以将在原生surface中写入的该数据在第一显示层级上渲染,以实现可以在屏幕上的第一显示层级上显示该数据。

其中,在另一个实施例中,在针对原生surface对应的显示层级进行渲染时,可以将在原生surface中写入的该数据在原生surface对应的显示层级上渲染。当然,由于原生surface对应的显示层级很低,其往往至少会被背景层遮挡,原生surface对应的显示层级的渲染的数据往往是无法被用户看到的,因此,为了节省系统资源,也可以不对原生surface对应的显示层级进行渲染。

进一步地,在原生surface中写入的该数据已经渲染在第一显示层级的情况下,如果需要将在原生surface中写入的该数据从第一显示层级切换至第二显示层级显示,可以不向其他显示层级对应的surfaceview中的surface中写入该数据,而可以直接借助在原生surface中写入的该数据以及生成的多个的surfaceview中的另一显示层级对应的surfaceview的显示层级在另一显示层级上显示该数据。

具体地,参见图2,可以通过如下流程实现,包括:

在步骤s201中,获取第二显示层级的token信息。

1021、获取第二显示层级对应的surfaceview的地址。

在需要将在原生surface中写入的该数据从第一显示层级切换至第二显示层级显示的情况下,对于电子设备而言,其可以得到至少两个输入数据,包括:该数据,以及,第二显示层级的层级号,例如,层级号“1”代表第1层、层级号“2”代表第2层、层级号“3”代表第3层......层级号“n”代表第n层等,n为安卓操作系统可以支持的层级的数量的最大值等。

在本申请中,基于不同的surfacecontrol生成的surfaceview的地址不同,对于基于不同的surfacecontrol生成的任意一个surfaceview而言,事先可以将该surfaceview对应的显示层级的层级号与该surfaceview的地址绑定。

如此,在本步骤中,可以根据第二显示层级的层级号获取第二显示层级对应的surfaceview的地址等,例如,可以获取与第二显示层级的层级号绑定的、surfaceview的地址,并作为第二显示层级对应的显示对象的surfaceview的地址。

其中,可以在安卓操作系统的应用层确定第一显示层级对应的显示对象的surfaceview的地址,然后将第二显示层级对应的surfaceview的地址传递给位于安卓框架层的surfacerelatemanager。

1022、根据surfaceview的地址,在第二显示层级对应的surfaceview的surfacecontrol中获取第二显示层级的标记token信息。

其中,第二显示层级对应的surfaceview的地址可以存储在第二显示层级对应的surfaceview的surfacecontrol中,因此,可以根据surfaceview的地址查找第二显示层级对应的surfaceview的surfacecontrol,然后在第二显示层级对应的surfaceview的surfacecontrol中获取第一显示层级的token信息。

其中,安卓框架层的surfacerelatemanager可以根据surfaceview的地址,第二显示层级对应的surfaceview的surfacecontrol中获取第二显示层级的token信息,然后将第二显示层级的token信息传递给安卓操作系统的本地框架层中的surfacerelateservice。

在步骤s202中,获取原生surface的默认显示层级的token信息。

在本申请中,默认显示层级的token信息存储在生成原生surface的原生surfacecontrol中,因此,可以在原生surfacecontrol中获取默认显示层级的token信息。

其中,在安卓操作系统的本地框架层中的surfacerelateservice得到surfacerelatemanager传递的第二显示层级的token信息之后,可以通过位于安卓操作系统的本地框架层中的surfacerelateservice获取在原生surfacecontrol中获取默认显示层级的token信息。

本申请对步骤s201与步骤s202的执行先后顺序不做限定。

在步骤s203中,将默认显示层级的token信息与第二显示层级的token信息绑定。

其中,surfacerelateservice可以将默认显示层级的token信息与第二显示层级的token信息传递给本地框架层的surfaceflinger,以使surfaceflinger存储默认显示层级的token信息与第二显示层级的token信息之间的对应关系,以实现将默认显示层级的token信息与第二显示层级的token信息绑定。

在步骤s204中,在针对第二显示层级进行渲染时,根据与第二显示层级的token信息绑定的默认显示层级的token信息,将在原生surface中写入的该数据在第二显示层级上渲染。

在surfaceflinger在进行渲染工作的过程中,可以对每一个显示层级分别渲染,其中,在针对第二显示层级进行渲染时,可以根据存储的默认显示层级的token信息与第二显示层级的token信息之间的对应关系确定出默认显示层级的token信息与第二显示层级的token信息之间绑定,从而可以确定出需要在默认显示层级渲染的该数据也可以在第二显示层级上渲染,其中,需要在默认显示层级渲染的数据包括在原生surface中写入的该数据,因此,可以将在原生surface中写入的该数据在第二显示层级上渲染,以实现可以在屏幕上的在第二显示层级上显示该数据。

其中,在另一个实施例中,在针对原生surface对应的显示层级进行渲染时,可以将在原生surface中写入的该数据在原生surface对应的显示层级上渲染。当然,由于原生surface对应的显示层级很低,其往往至少会被背景层遮挡,原生surface对应的显示层级的渲染的数据往往是无法被用户看到的,因此,为了节省系统资源,也可以不对原生surface对应的显示层级进行渲染。

在一种情况中,需要渲染的应用程序的界面中的数据包括特定时长的视频流,视频流包括多帧图像,在需要将需要渲染的数据从该层级切换至另一层级的情况下,需要启动另一层级对应的surface,然后向另一层级对应的surface写入视频流的图像,以使之后可以对在另一层级对应的surface中写入的视频流的图像进行渲染,但是“启动另一层级对应的surface”的过程需要耗费一段时间,然而由于视频流具有特定时长,通常不能延长播放视频流的时长,且由于“启动另一层级对应的surface”的过程中无法渲染视频的图像,也即“启动另一层级对应的surface”的过程中无法播放对应时段的视频流,从而在启动另一层级对应的surface之后,“启动另一层级对应的surface”的过程需要耗费一段时间对应的图像就不会写入另一层级对应的surface,需要将位于这一段时间对应的图像之后的图像写入另一层级对应的surface,以使可以对在另一层级对应的surface中写入的、位于这一段时间对应的图像之后的图像进行渲染,无法对这一段时间对应的图像进行渲染,导致用户无法看到这一段时间对应的图像,也即出现跳帧现象,会降低用户的观看体验。

而在本申请中,在原生surface中写入的数据已经渲染在第一显示层级的情况下,如果需要将该数据切换至第二显示层级显示,可以获取第二显示层级的token信息,以及获取原生surface的默认显示层级的token信息,然后将默认显示层级的token信息与第二显示层级的token信息绑定,如此,在针对第二显示层级进行渲染时,可以根据与第二显示层级的token信息绑定的默认显示层级的token信息,将在原生surface中写入的该数据在第二显示层级上渲染。

通过本申请,可以不向第二显示层级对应的surfaceview中的surface中写入该数据,可以直接将在原生surface中写入的该数据与生成的多个的surfaceview中的第二显示层级对应的surfaceview的显示层级关联,以使在针对第二显示层级进行渲染时,可以将在原生surface中写入的该数据在第二显示层级上渲染。

如此,本申请可以支持将需要渲染的数据仅写入原生surface即可,而不用写入其他surface中,将数据的显示层级的切换操作交由后续渲染时执行,从而可以避免更换写入数据的surface,也即不需要启动其他surface,不需要等待启动其他surface的过程,避免由于等待启动其他surface的过程而耽误时间,从而避免出现由于更换写入数据的surface而带来的时间延迟,进而可以避免跳帧现象发生,从而可以提高用户的观看体验。

如果根据业务需求需要将已经在原生surface中写入的该数据从第一显示层级切换至第二显示层级显示的情况下,如果默认显示层级的token信息与第一显示层级的token信息之间还处于绑定的状态,则在针对第一显示层级进行渲染时,除了会“根据与第二显示层级的token信息绑定的默认显示层级的token信息,将写入原生surface的数据在第二显示层级上渲染”,还会再次“根据与第一显示层级的token信息绑定的默认显示层级的token信息,将写入原生surface的数据在第一显示层级上渲染”,这就导致电子设备会在第一显示层级与第二显示层级均渲染该数据。

而实际上根据业务需求只需要在第二显示层级渲染该数据即可,如此,上述方式会耗费电子设备的系统资源,降低画面的渲染效率。

因此,为了节省电子设备的系统资源以及提高画面的渲染效率,在本申请另一个实施例中,在执行步骤s105“根据与第一显示层级的token信息绑定的默认显示层级的token信息,将写入原生surface的数据在第一显示层级上渲染”之后,可以将默认显示层级的token信息与第一显示层级的token信息解绑定。

以及,在执行步骤s204“根据与第二显示层级的token信息绑定的默认显示层级的token信息,将写入原生surface的数据在第二显示层级上渲染”之后,可以将默认显示层级的token信息与第二显示层级的token信息解绑定,以避免之后再会在第一显示层级与第二显示层级均渲染该数据。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作并不一定是本申请所必须的。

下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

请参考图3,其示出了本申请一个实施例提供的显示层级的切换装置的框图。该装置具有实现上述方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。

该装置可以包括:

第一获取模块11,用于在原生画布surface中写入的数据已经渲染在第一显示层级的情况下,如果需要将所述数据切换至第二显示层级显示,获取所述第二显示层级的标记token信息;第二获取模块12,用于获取所述原生surface的默认显示层级的token信息;

第一绑定模块13,用于将所述默认显示层级的token信息与所述第二显示层级的token信息绑定;

第一渲染模块14,用于在针对所述第二显示层级进行渲染时,根据与所述第二显示层级的token信息绑定的所述默认显示层级的token信息,将在所述原生surface中写入的所述数据在所述第二显示层级上渲染。

在一个可选的实现方式中,所述第一获取模块包括:

第一获取单元,用于获取所述第二显示层级对应的画布载体surfaceview的地址;

第二获取单元,用于根据所述surfaceview的地址,在所述第二显示层级对应的surfaceview的画布控制器surfacecontrol中获取所述第二显示层级的token信息。

在一个可选的实现方式中,所述装置还包括:

第一解绑定模块,用于将所述默认显示层级的token信息与所述第二显示层级的token信息解绑定。

在一个可选的实现方式中,所述装置还包括:

写入模块,用于在需要将所述数据显示在所述第一显示层级的情况下,将所述数据写入所述原生surface中;

第三获取模块,用于获取所述第一显示层级的token信息,所述第二获取模块还用于获取所述原生surface的默认显示层级的token信息;

第二绑定模块,用于将所述默认显示层级的token信息与所述第一显示层级的token信息绑定;

第二渲染模块,用于在针对所述第一显示层级进行渲染时,根据与所述第一显示层级的token信息绑定的所述默认显示层级的token信息,将在所述原生surface中写入的所述数据在所述第一显示层级上渲染。

在一个可选的实现方式中,所述装置还包括:

第二解绑定模块,用于将所述默认显示层级的token信息与所述第一显示层级的token信息解绑定。

在一个可选的实现方式中,所述第三获取模块包括:

第三获取单元,用于获取所述第一显示层级对应的surfaceview的地址;

第四获取单元,用于根据所述surfaceview的地址,在所述第一显示层级对应的surfaceview的surfacecontrol中获取所述第一显示层级的标记token信息。

在一个可选的实现方式中,所述所述第二获取模块具体用于:在所述原生surface的surfacecontrol中获取所述默认显示层级的token信息。

在一种情况中,需要渲染的应用程序的界面中的数据包括特定时长的视频流,视频流包括多帧图像,在需要将需要渲染的数据从该层级切换至另一层级的情况下,需要启动另一层级对应的surface,然后向另一层级对应的surface写入视频流的图像,以使之后可以对在另一层级对应的surface中写入的视频流的图像进行渲染,但是“启动另一层级对应的surface”的过程需要耗费一段时间,然而由于视频流具有特定时长,通常不能延长播放视频流的时长,且由于“启动另一层级对应的surface”的过程中无法渲染视频的图像,也即“启动另一层级对应的surface”的过程中无法播放对应时段的视频流,从而在启动另一层级对应的surface之后,“启动另一层级对应的surface”的过程需要耗费一段时间对应的图像就不会写入另一层级对应的surface,需要将位于这一段时间对应的图像之后的图像写入另一层级对应的surface,以使可以对在另一层级对应的surface中写入的、位于这一段时间对应的图像之后的图像进行渲染,无法对这一段时间对应的图像进行渲染,导致用户无法看到这一段时间对应的图像,也即出现跳帧现象,会降低用户的观看体验。

而在本申请中,在原生surface中写入的数据已经渲染在第一显示层级的情况下,如果需要将该数据切换至第二显示层级显示,可以获取第二显示层级的token信息,以及获取原生surface的默认显示层级的token信息,然后将默认显示层级的token信息与第二显示层级的token信息绑定,如此,在针对第二显示层级进行渲染时,可以根据与第二显示层级的token信息绑定的默认显示层级的token信息,将在原生surface中写入的该数据在第二显示层级上渲染。

通过本申请,可以不向第二显示层级对应的surfaceview中的surface中写入该数据,可以直接将在原生surface中写入的该数据与生成的多个的surfaceview中的第二显示层级对应的surfaceview的显示层级关联,以使在针对第二显示层级进行渲染时,可以将在原生surface中写入的该数据在第二显示层级上渲染。

如此,本申请可以支持将需要渲染的数据仅写入原生surface即可,而不用写入其他surface中,将数据的显示层级的切换操作交由后续渲染时执行,从而可以避免更换写入数据的surface,也即不需要启动其他surface,不需要等待启动其他surface的过程,避免由于等待启动其他surface的过程而耽误时间,从而避免出现由于更换写入数据的surface而带来的时间延迟,进而可以避免跳帧现象发生,从而可以提高用户的观看体验。

需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

请参考图4,其示出了本申请一个实施例提供的计算机设备的结构框图。该计算机设备可用于实施上述实施例中提供的显示层级的切换方法。该计算机设备可以是pc或者服务器,或者其它具备数据处理和存储能力的设备。具体来讲:

所述计算机设备1000包括中央处理单元(cpu)1001、包括随机存取存储器(ram)1002和只读存储器(rom)1003的系统存储器1004,以及连接系统存储器1004和中央处理单元1001的系统总线1005。所述计算机设备1000还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(i/o系统)1006,和用于存储操作系统1013、应用程序1014和其他程序模块1015的大容量存储设备1007。

所述基本输入/输出系统1006包括有用于显示信息的显示器1008和用于用户输入信息的诸如鼠标、键盘之类的输入设备1009。其中所述显示器1008和输入设备1009都通过连接到系统总线1005的输入输出控制器1010连接到中央处理单元1001。所述基本输入/输出系统1006还可以包括输入输出控制器1010以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1010还提供输出到显示屏、打印机或其他类型的输出设备。

所述大容量存储设备1007通过连接到系统总线1005的大容量存储控制器(未示出)连接到中央处理单元1001。所述大容量存储设备1007及其相关联的计算机可读介质为计算机设备1000提供非易失性存储。也就是说,所述大容量存储设备1007可以包括诸如硬盘或者cd-rom驱动器之类的计算机可读介质(未示出)。

不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、eprom、eeprom、闪存或其他固态存储其技术,cd-rom、dvd或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1004和大容量存储设备1007可以统称为存储器。

根据本申请的各种实施例,所述计算机设备1000还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1000可以通过连接在所述系统总线1005上的网络接口单元1011连接到网络1012,或者说,也可以使用网络接口单元1011来连接到其他类型的网络或远程计算机系统(未示出)。

所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于执行上述显示层级的切换方法的指令。

在示例中实施例中,还提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集。所述至少一条指令、至少一段程序、代码集或指令集经配置以由一个或者一个以上处理器执行,以实现上述显示层级的切换方法。

在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被计算机设备的处理器执行时实现上述显示层级的切换方法。

可选地,上述计算机可读存储介质可以是rom、ram、cd-rom、磁带、软盘和光数据存储设备等。

在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被执行时,其用于实现上述显示层级的切换方法。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种显示层级的切换方法、装置、设备及存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1