一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

调整窗口刷新率的方法及电子设备与流程

2021-12-17 21:05:00 来源:中国专利 TAG:


1.本技术涉及终端技术领域,尤其涉及一种调整窗口刷新率的方法及电子设备。


背景技术:

2.随着多设备协同、分布式场景的大力发展,终端设备上出现多个窗口同时显示的趋势。当前的图形显示系统框架,例如,安卓(android)图形显示系统框架等,在同时显示多个窗口时,每个窗口通常各自按照系统显示设备的刷新频率单独渲染生成界面,然后系统对各个界面进行像素的合成。当窗口的显示区域出现部分重叠时,由于每个窗口都是在独立的进程渲染,自身并不知道有没有被别的窗口遮挡,各个窗口依旧按照各自的刷新率固定地,周期性地刷新渲染出完整的界面,然后最终显示时,再进行叠加处理,甚至裁剪处理。


技术实现要素:

3.本技术实施例提供了一种调整窗口刷新率的方法及电子设备,可以解决多个窗口同时渲染出完整界面导致负载升高,浪费系统资源的技术问题。
4.第一方面,本技术实施例提供了一种调整窗口刷新率的方法,包括:
5.确定处于前台的多个窗口;
6.获取每个所述窗口的属性信息和当前刷新率;
7.根据所述属性信息,确定每个所述窗口的目标刷新率;
8.针对任一所述窗口,若该窗口的所述当前刷新率不同于所述目标刷新率,则将所述目标刷新率通知到该窗口。
9.第一方面的实施例,可以通过各个窗口的属性信息调整窗口的刷新率,避免多个窗口同时渲染导致的系统负载升高。
10.在第一方面的一种可能的实现方式中,所述属性信息包括显示内容、窗口大小、窗口位置、z轴顺序、窗口透明度、应用类型和用户交互数据中的一种或多种。
11.在第一方面的一种可能的实现方式中,所述根据所述属性信息,确定每个所述窗口的目标刷新率,包括:
12.根据每个所述窗口的z轴顺序,确定每个所述窗口的目标刷新率;或,
13.根据每个所述窗口的透明度,确定每个所述窗口的目标刷新率;或,
14.根据每个所述窗口的z轴顺序、窗口大小和窗口位置,确定每个所述窗口的遮挡率,根据每个所述窗口的遮挡率确定每个所述窗口的目标刷新率;或,
15.根据每个所述窗口的z轴顺序、窗口大小和窗口位置,确定每个所述窗口的遮挡率,根据每个所述窗口的所述遮挡率和透明度确定每个所述窗口的目标刷新率;或,
16.根据每个所述窗口的用户交互数据,确定每个所述窗口有无用户交互操作,根据每个所述窗口有无用户交互操作确定每个所述窗口的目标刷新率;或,
17.根据每个所述窗口的应用类型,确定每个所述窗口的目标刷新率;或,
18.根据每个所述窗口的显示内容,确定每个所述窗口的目标刷新率。
19.在本实现方式中,一方面,通过简单的处理就可以获得目标刷新率,使得本技术易于实施;另一方面,可以通过不同的方式获得目标刷新率,使得本技术可以适用于不同的场景,具有更强的环境适应性。
20.在第一方面的一种可能的实现方式中,所述根据每个所述窗口的z轴顺序,确定每个所述窗口的目标刷新率,包括:
21.若任一所述窗口的z轴顺序小于或等于预设值,则确定该窗口的目标刷新率保持当前刷新率;
22.若任一所述窗口的z轴顺序大于所述预设值,则确定该窗口的目标刷新率为第一刷新率,所述第一刷新率小于基准刷新率。
23.在第一方面的一种可能的实现方式中,所述根据每个所述窗口的遮挡率确定每个所述窗口的目标刷新率,包括:
24.针对任一所述窗口,确定该窗口的遮挡率所属的比例区间,获取所述比例区间对应的降比,根据所述降比和基准刷新率确定该窗口的目标刷新率,所述遮挡率越大则其对应的所述降比越大。
25.在第一方面的一种可能的实现方式中,所述根据每个所述窗口的应用类型,确定每个所述窗口的目标刷新率,包括:
26.针对任一所述窗口,确定该窗口的应用类型,获取所述应用类型对应的目标刷新率。
27.在第一方面的一种可能的实现方式中,所述根据每个所述窗口的显示内容,确定每个所述窗口的目标刷新率,包括:
28.针对任一所述窗口,确定该窗口的显示内容,获取所述显示内容对应的目标刷新率。
29.在这些本实现方式中,可以简单快捷获得目标刷新率,使得本技术易于实施。
30.在第一方面的一种可能的实现方式中,所述确定处于前台的多个窗口,包括:
31.接收到用户输入的第一操作,或,监听到系统显示状态发生变化,或,监听到前台应用状态发生变化,确定处于前台的多个窗口。
32.在第一方面的一种可能的实现方式中,还包括:
33.针对任一所述窗口,若根据该窗口的当前刷新率,确定针对当次垂直同步请求vsync不需要刷新该窗口,则在该窗口绘制过程中复用该窗口上一帧的缓存内容。
34.在本实现方式中,多个前台窗口绘制流程,在降低了某一应用刷新率的情形下,该应用可以不用每次收到vsync都进行界面刷新,surfaceflinger可以复用上一帧的缓存内容,通过减少每次刷新的内容,减少了系统的负载和功耗。
35.在第一方面的一种可能的实现方式中,还包括:
36.若根据各个所述窗口的当前刷新率,确定针对当次垂直同步请求vsync不需要刷新的窗口有多个,则将不需要刷新的多个窗口合成一个第一窗口。
37.在本实现方式中,在不影响用户体验的前提下,通过预合成部分频率变低的应用窗口的显示内容到一个图层,达到减少图层处理目的,降低系统整体负载,提升系统的流畅性,延长终端的系统续航时间。
38.在第一方面的一种可能的实现方式中,还包括:
39.若根据各个所述窗口的当前刷新率,确定针对当次vsync不需要刷新的窗口有多个,且不需要刷新的多个窗口已经合成为一个第一窗口,则在不需要刷新的多个窗口的绘制过程中复用该第一窗口上一帧的缓存内容。
40.在第一方面的一种可能的实现方式中,还包括:
41.确定各个所述窗口的显示内容是否变更,确定针对当次垂直同步请求vsync未变更显示内容的窗口有多个,则将未变更显示内容的多个窗口合成一个第一窗口。
42.在第一方面的一种可能的实现方式中,还包括:
43.若根据各个所述窗口的当前刷新率,确定针对当次vsync未变更显示内容的窗口有多个,且未变更显示内容的多个窗口已经合成为一个第一窗口,则在未变更显示内容的多个窗口的绘制过程中复用该第一窗口上一帧的缓存内容。
44.在第一方面的一种可能的实现方式中,所述根据所述属性信息,确定每个所述窗口的目标刷新率之前,还包括:
45.获取显示屏的第二刷新率,作为所述目标刷新率的基准。
46.第二方面,对应于第一方面提供的调整窗口刷新率的方法,提供了一种调整窗口刷新率的装置,所述装置包括:
47.第一确定模块,用于确定处于前台的多个窗口;
48.获取模块,用于获取每个所述窗口的属性信息和当前刷新率;
49.第二确定模块,用于根据所述属性信息,确定每个所述窗口的目标刷新率;
50.通知模块,用于针对任一所述窗口,若该窗口的所述当前刷新率不同于所述目标刷新率,则将所述目标刷新率通知到该窗口。
51.第三方面,本技术实施例提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,使得所述电子设备实现如第一方面和第一方面可能的实现方式中任一所述的方法。
52.第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面和第一方面可能的实现方式中任一所述的方法。
53.第五方面,本技术实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面和第一方面可能的实现方式中任一所述的方法。
54.可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面和第一方面可能的实现方式中的相关描述。
附图说明
55.图1a是本技术一实施例提供的多窗口同时显示的一示意图;
56.图1b是本技术另一实施例提供的多窗口同时显示的另一示意图;
57.图2是本技术一实施例提供的优化前的多窗口绘制流程的示意图;
58.图3a是本技术一实施例提供的优化后的多窗口绘制流程的示意图;
59.图3b是本技术一实施例提供的一应用场景;
60.图3c是本技术一实施例提供的优化前和优化后的多窗口绘制流程的一对比示意
图;
61.图3d是本技术一实施例提供的优化前和优化后的多窗口绘制流程的另一对比示意图;
62.图3e是本技术另一实施例提供的优化后的多窗口绘制流程的示意图;
63.图3f是本技术另一实施例提供的优化后的多窗口绘制流程的示意图;
64.图3g是本技术另一实施例提供的优化后的多窗口绘制流程的示意图;
65.图4是本技术一实施例提供的电子设备的结构示意图;
66.图5a是本技术一实施例提供的调整窗口刷新率的方法的第一个应用场景;
67.图5b是本技术一实施例提供的调整窗口刷新率的方法的第一个应用场景;
68.图6a是本技术一实施例提供的调整窗口刷新率的方法的第二个应用场景;
69.图6b是本技术一实施例提供的调整窗口刷新率的方法的第二个应用场景;
70.图7是本技术一实施例提供的调整窗口刷新率的方法的流程示意图;
71.图8是本技术一实施例提供的两个窗口叠加显示的一应用场景。
具体实施方式
72.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
73.以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本技术的限制。如在本技术的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。
74.还应当理解,在本技术实施例中,“若干个”和“一个或多个”是指一个、两个或两个以上;“和/或”,描述关联对象的关联关系,表示可以存在三种关系;例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a、b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
75.当在本技术说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
76.如在本技术说明书和所附权利要求书中所使用的那样,术语“若”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。
77.在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
78.为了更好的理解本技术的技术方案,先介绍本技术涉及的重要技术名词。
79.窗口或图层
80.每个应用程序可能对应一个或多个图形界面,每个界面可以称之为一个图层(surface),或者说是窗口(window)。例如,图1a所示为多窗口同时显示的显示示意图。图1a中利用不同的线条填充的三个不同区域,分别对应三个不同的surface,即surface a、surface b和surface c。三个surface之间有重叠。在图1a所示的示意图中,surface b覆盖了surface a,而surface c又覆盖了surface a和surface b。
81.图层的大小
82.图层的大小指的是图层的显示面积,反映该图层在显示屏上显示时所占的显示区域大小。图层的大小通常由图层的宽和高这两个参数决定。图层的宽乘以高,可以得到图层的大小。
83.图层的位置
84.图层的位置指的是图层在显示屏上的显示位置。通常情形下,用图层左上角或左下角的坐标来表征图层的起始位置。图层左上角或左下角的坐标通常为像素坐标。
85.需要说明的是,当图层的宽、高和位置确定的时候,图层显示在显示屏的哪个区域(包括所占像素个数以及所占像素的坐标等)就确定了。
86.图层的透明度
87.图层的透明度是指图层的透明程度,影响该图层与其他图层复叠的效果。位于上面的图层为了不完全遮挡位于下面的图层,位于上层的图层可以设置一定的透明度,这样就可以同时看到多个图层叠加显示的效果。透明度通常用百分数表示,取值范围在0至1以内。可以继续参见图1a所示的示意图,surface b和surface c的透明度为0%,surface b和surface c都属于非透明窗口。
88.z轴顺序(z-order)
89.z轴顺序(z-order)简称z序,垂直于显示屏幕的平面方向设置一z轴,不同的图层按照在z轴上的坐标来确定前后顺序,这个顺序就叫做z轴顺序。图层的z轴顺序越小,表示图层在显示时越靠前,即图层在显示时越靠上;图层的z轴顺序越大,表示图层在显示时越靠后,即图层在显示时越靠下。
90.可以继续参见图1a所示的示意图,surface c的z序为0,surface b的z序为1,surface a的z序为2。surface c在显示屏上显示最靠前。surface a在显示屏上显示最靠后,surface b显示在surface a和surface c之间。图形显示系统通过维护surface a、surface b和surface c这三个窗口的z序来控制这三个窗口在显示屏上的显示。
91.应用类型
92.在电子设备中可以使用终端应用程序和网页应用程序,在本技术实施例中,应用程序可以包括终端应用程序或网页应用程序。终端应用程序可以包括系统的原生应用,也可以包括第三方应用。终端应用程序可以在应用市场进行下载、安装或管理等。在本技术一些实施例中,可以按照应用程序所提供的服务类型,对他们进行分类。例如,应用类型包括但不限于:工具、即时通讯、教育、新闻阅读、视频或导航等。又如,应用类型包括但不限于:实用工具、影音娱乐、社交通讯、教育、新闻阅读、拍摄美化、或出行导航等。本技术对应用类型具体分成几个类别不予限定,可以视实际情况不同,采用不同的分类方式。
93.为了说明本技术的技术方案,下面通过具体实施例来进行说明。
94.随着设备性能的提升和应用功能不断增强,游戏、直播、视频通话、会议或视频播放等应用场景也越来越丰富。越来越多的应用开始支持分屏模式、自由模式和画中画等多前台多窗口模式。
95.目前,当窗口的显示区域出现部分重叠时,由于每个窗口都是在独立的进程渲染,自身并不知道有没有被其他窗口遮挡,不管窗口内显示的内容需不需要刷新,或用户对窗口有没有感知等情形下,各个窗口都是按照各自的刷新率固定地,周期性地刷新渲染出完整的界面。然后最终显示时,再进行叠加处理,甚至裁剪处理。多个窗口同时渲染出完整界面导致负载升高,浪费系统资源。
96.作为一非限制性示例,以android图形显示系统框架为例进行说明。
97.android界面通常是由多个区域的图层叠加起来,如导航栏、状态栏、前台应用、浮动窗口等。例如,如图1b所示一android界面,该android界面由图层e、图层f和图层g叠加形成。图层e为系统窗口。图层f为第一应用的窗口。图层g为第二应用的窗口。
98.android系统中一个界面的显示需要经过界面绘制、界面渲染、和显示刷新阶段。如图2所示为android系统中android界面的绘制过程示意图。在该示例中,以android界面包括三个同时显示的应用界面,每个应用界面包括一个图层或窗口为例进行说明。
99.如图2所示,多窗口绘制流程可以包括如下8个关键步骤:
100.1)系统发送垂直同步(vertical synchronization,vsync)信号。
101.2)第n个应用,即app[n],收到vsync之后,将应用自身窗口内容刷新发送给应用自己的渲染线程,即rendthread[n]。其中,n取值为1,2和3。
[0102]
3)每个应用的renderthread[n]根据用户界面(user interface,ui)的内容生成对应的渲染指令集,即rc[n]。
[0103]
4)opengl将第n个应用的渲染指令集转换成opengl指令,并发送给窗口系统(surfaceflinger)。
[0104]
5)surfaceflinger将上述应用界面绘制指令分布缓存,按需刷新,之后将内容重新编排之后发给硬件混合者(hardware composer,hwc)。
[0105]
6)hwc将缓存(buffer)内容发送给显示子系统(multimedia display sub-system,mdss),或图形处理器(graphics processing unit,gpu)。
[0106]
7)mdss或gpu进行渲染操作。
[0107]
8)mdss或gpu将渲染后的内容发生给显示屏或显示设备(fbx)进行显示。
[0108]
可见,每个窗口都是在独立的进程渲染,不管窗口内显示的内容需不需要刷新,或用户对窗口有没有感知等情形下,各个窗口都是按照各自的刷新率固定地,周期性地刷新渲染出完整的界面。
[0109]
由于应用的界面复杂,内容不可控,不同的应用通常会按系统设定的最高刷新率进行刷新,会导致系统的负载变得比较重载。尤其是在界面复杂度较高或用户无感知的刷新绘制等情形下,会导致系统负载过高,绘制耗时较长,也可能导致丢帧卡顿。
[0110]
因此,本技术实施例提供了一种调整窗口刷新率的方法,动态调整多个前台窗口的刷新率以降低显示场景负载,减少界面绘制耗时。
[0111]
利用本技术实施例提供的调整窗口刷新率的方法,可以对多个前台窗口绘制流程进行优化。
[0112]
作为本技术一非限制性示例,优化之后的多个前台窗口绘制流程,以android系统为例,如图3a所示。应理解,其它图像系统也可以适用。
[0113]
如图3a所示,多窗口绘制流程可以包括如下9个关键步骤:
[0114]
1)系统发送vsync信号。
[0115]
2)系统增加了动态调整刷新模块,该模块动态计算各个应用界面调整后的刷新率,该模块将调整后的刷新率通知到相应的应用。有些应用可能按一定的调整策略需要降低刷新频率。针对当次vsync,若根据调整后的刷新率确定某一应用需要或允许刷新界面,该应用执行刷新界面的步骤,即执行步骤3)至步骤5)。针对当次vsync,若根据调整后的刷新率确定某一应用不允许或不需要刷新界面,该应用跳过刷新界面的步骤,即跳过步骤3)至步骤5)。后续的实施例中将详细描述动态调整刷新模块如何动态计算调整后的刷新率,此处不再赘述。
[0116]
3)第n个应用,即app[n],收到包括调整后的刷新率的通知后,判断根据调整后的刷新率,是否需要针对当次vsync刷新界面,若是,将应用自身窗口内容刷新发送给应用自己的渲染线程,即rendthread[n]。其中,n取值为1,2和3。
[0117]
4)第n个应用的renderthread[n]根据用户界面(user interface,ui)的内容生成对应的渲染指令集,即rc[n]。
[0118]
5)opengl将第n个应用的渲染指令集转换成opengl指令,并发送给窗口系统(surfaceflinger)。
[0119]
6)针对允许刷新界面的应用,surfaceflinger重新将三个应用界面绘制指令进行分布缓存,按需刷新;针对不允许刷新界面的应用,surfaceflinger复用应用界面上一帧的缓存内容。之后,surfaceflinger将内容重新编排之后发给硬件混合者(hardware composer,hwc)。
[0120]
7)hwc将缓存(buffer)内容发送给显示子系统(multimedia display sub-system,mdss),或图形处理器(graphics processing unit,gpu)。
[0121]
8)mdss或gpu进行渲染操作。
[0122]
9)mdss或gpu将渲染后的内容发生给显示屏或显示设备(fbx)进行显示。
[0123]
需要说明的是,在其他一些示例中,也可以是应用调用系统接口主动获取动态调整刷新模块的调整结果,确定自身的刷新率是否需要更新,从而判断是否需要执行此次的界面刷新。而非如上述的被动接收该模块的刷新通知。
[0124]
在其他一些示例中,也可以是动态调整刷新模块的将是否需要调整刷新率的结果通知给surfaceflinger,surfaceflinger更新需要调整刷新率的应用的刷新率,需要调整刷新率的应用根据新的刷新率刷新界面。
[0125]
在利用了本技术实施例提供的调整窗口刷新率的方法进行优化之后,多个前台窗口绘制流程,在降低了某一应用刷新率的情形下,该应用可以不用每次收到vsync都进行界面刷新,surfaceflinger可以复用上一帧的缓存内容,减少了系统的负载和功耗。
[0126]
下面以平板电脑上一用户场景为例,说明优化后的绘制方案的原理,以便更好理解本技术实施例所带来的有益效果。
[0127]
如图3b所示,为平板电脑上叠加显示窗口a和窗口b的用户场景。窗口a为即时通讯应用的界面,用户正在使用即时通讯应用与好友聊天。窗口b为视频应用的界面。用户由于
临时与好友约定见面时间,开启聊天窗口a,窗口b被暂时放在窗口a后面,用户稍后可能需要继续浏览窗口b的内容。
[0128]
由于窗口b位于窗口a下层,优化之后的绘制流程中,系统新增的动态调整刷新模块计算出窗口a可以维持当前刷新率,例如60hz,即窗口a不需要调整刷新率;窗口b的刷新率需要调整,窗口b的刷新率需要调整为目标刷新率,例如30hz。动态调整刷新模块将调整后的刷新率通知到视频应用。
[0129]
图3c和图3d所示为优化前和优化后的绘制流程的对比示意图。结合图3c和图3d所示,在第2个刷新周期来的时候,即系统发送第2个vsync的时候,视频应用判断窗口b不需要刷新,即时通讯应用判断窗口a需要刷新。针对窗口b,surfaceflinger的第2帧可以复用第1帧的缓存内容,减少了系统的负载和功耗。而针对窗口a,仍旧保持原来的绘制过程。
[0130]
具体地,继续参见如图3c所示,黑色虚线框中包括窗口b的界面刷新、渲染指令生成、opengl指令转换、surfaceflinger合成等流程。在图3c所示的优化后的示意图中,由于第2帧时窗口b没有刷新,可以使用第1帧中保存的缓存内容,减少了第2帧中cpu和gpu等的处理流程,从而实现整机负载的降低和减少功耗。
[0131]
本技术实施例在不影响用户体验的前提下,通过降低部分应用窗口的刷新率,在系统显示设备刷新率保持不变的情况下,通过减少每次刷新的内容,降低系统整体负载,提升系统的流畅性,延长终端的系统续航时间。
[0132]
在图3a所示实施例的基础上,在本技术其他实施例中,电子设备可以监测自身当前的图层合成负载情况,若确定图层合成负载大于或等于第一阈值,则可以决策触发动态调整刷新模块,动态调整应用窗口的刷新率,以降低负载。若确定图层合成负载小于第一阈值,则可以决策不触发动态调整刷新模块,即不需要动态调整应用窗口的刷新率,电子设备采用原有的多窗口显示流程,即图2所示的多窗口显示流程。
[0133]
需要说明的是,第一阈值可以为经验值。可以由系统默认设置,也可以由用户自定义设置,本技术对此不予限定。
[0134]
作为本技术另一非限制性示例,本示例提供另一多窗口绘制流程,如图3e所示。本示例区别于图3a所示示例,图3e中仅示出本示例与图3a所示示例的不同之处,相同之处请参见前述图3a所示示例。
[0135]
在本示例中,针对当次vsync,若根据调整后的刷新率确定某一应用需要或允许刷新界面,该应用执行刷新界面的步骤,即依次执行图3a所示示例的步骤3)至步骤5)。针对当次vsync,若根据调整后的刷新率确定多个应用不允许或不需要刷新界面,此时与图3a所示示例不同,这几个应用统一合成一个后端窗口。也就是说,将不需要刷新的几个窗口处理成一个图层缓存。
[0136]
如图3e所示示例,针对当次vsync,根据调整后的刷新率,确定应用界面1和应用界面2的窗口都不需要刷新,根据这两个窗口合成后的用户界面的内容生成对应的渲染指令集,opengl再将渲染指令集转换成opengl指令,并发送给surfaceflinger。确定应用界面3的窗口需要刷新,根据应用界面3的用户界面的内容生成对应的渲染指令集,opengl再将渲染指令集转换成opengl指令,并发送给surfaceflinger。surfaceflinger重新将两个opengl绘制指令进行分布缓存,按需刷新。
[0137]
本示例通过动态统计系统中显示窗口的变化情况,在不影响用户体验的前提下,
通过预合成部分频率变低的应用窗口的显示内容到一个图层,达到减少图层处理目的,降低系统整体负载,提升系统的流畅性,延长终端的系统续航时间。
[0138]
需要说明的是,针对下一次vsync,如果不需要刷新的应用还是之前的几个应用,由于这几个应用在收到上一次vsync时已经合成为一个后端窗口,则可以不用再针对这几个应用统一合成一个后端窗口,surfaceflinger可以复用该后端窗口上一帧的缓存内容,进一步减少系统的负载和功耗。可以参见图3a所示示例的相应描述。
[0139]
在图2或图3a所示实施例的基础上,在本技术其他实施例中,电子设备可以监测当前显示的多个窗口的显示内容是否发生变更,若确定有多个窗口的显示内容未发生变更,则将这几个未发生变更的应用统一合成一个后端窗口。也就是说,将显示内容为变更的几个窗口作为一个背景图像,处理成一个图层缓存。
[0140]
如图3f所示示例,确定应用界面1和应用界面2的窗口的显示内容都未变更,根据这两个窗口合成后的用户界面的内容生成对应的渲染指令集,opengl再将渲染指令集转换成opengl指令,并发送给surfaceflinger。确定应用界面3的窗口的显示内容发生变更,根据应用界面3的用户界面的内容生成对应的渲染指令集,opengl再将渲染指令集转换成opengl指令,并发送给surfaceflinger。surfaceflinger重新将两个opengl绘制指令进行分布缓存,按需刷新。
[0141]
需要说明的是,在图3f所示示例的基础上,针对下一次vsync,如果显示内容未变更的应用还是之前的几个应用,由于这几个应用在收到上一次vsync时已经合成为一个后端窗口,则可以不用再针对这几个应用统一合成一个后端窗口,surfaceflinger可以复用该后端窗口上一帧的缓存内容,进一步减少系统的负载和功耗。可以参见图3a所示示例的相应描述。
[0142]
在图2或图3e所示实施例的基础上,在本技术其他实施例中,电子设备可以统计当前系统窗口的刷新情况,和/或,监测自身当前的图层合成负载情况,若确定当前系统启动了刷新率的动态调整,和/或,确定图层合成负载大于或等于第一阈值,则可以决策触发图层预处理控制装置,图层预处理控制装置可以获取待合成窗口列表,待合成窗口列表例如电子设备显示的多个窗口的列表,进行预处理决策。
[0143]
以确定当前系统启动了刷新率的动态调整为例进行说明,此时,触发图层预处理控制装置。图层预处理控制装置获取待合成窗口列表进行预处理决策后包括两个分支。第一分支,若图层预处理控制装置确定有几个窗口的刷新率降低,则将刷新率降低的几个窗口作为预合成窗口,统一将预合成窗口处理成一个图层缓存,如图3e所示的应用界面1和应用界面2的两个窗口合成一个后端窗口。第二分支,若有一个或多个窗口的刷新率不变,例如焦点窗口或用户交互频繁的窗口等刷新率可能维持不变,则将这些窗口各自按照原有流程分别处理成图层缓存,如图3e所示的应用界面3的窗口。最后,将所有图层缓存合成送显。
[0144]
在图2或图3f所示实施例的基础上,在本技术其他实施例中,如图3g所示,电子设备可以统计当前系统窗口的变更情况,和/或,监测自身当前的图层合成负载情况,若确定当前系统包括多个显示内容未变更的窗口,和/或,确定图层合成负载大于或等于第一阈值,则可以决策触发图层预处理控制装置,触发图层预处理控制装置获取待合成窗口列表,待合成窗口列表例如电子设备显示的多个窗口的列表,进行预处理决策。
[0145]
具体地,图层预处理控制装置获取待合成窗口列表进行预处理决策包括两个分
sound,i2s)接口,脉冲编码调制(pulse code modulation,pcm)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,uart)接口,移动产业处理器接口(mobile industry processor interface,mipi),通用输入输出(general-purpose input/output,gpio)接口,用户标识模块(subscriber identity module,sim)接口,和/或通用串行总线(universal serial bus,usb)接口等。
[0155]
i2c接口是一种双向同步串行总线,包括一根串行数据线(serial data line,sda)和一根串行时钟线(derail clock line,scl)。在一些实施例中,处理器110可以包含多组i2c总线。处理器110可以通过不同的i2c总线接口分别耦合触摸传感器180k,充电器,闪光灯,摄像头193等。例如:处理器110可以通过i2c接口耦合触摸传感器180k,使处理器110与触摸传感器180k通过i2c总线接口通信,实现电子设备100的触摸功能。
[0156]
i2s接口可以用于音频通信。在一些实施例中,处理器110可以包含多组i2s总线。处理器110可以通过i2s总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过i2s接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
[0157]
pcm接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过pcm总线接口耦合。在一些实施例中,音频模块170也可以通过pcm接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述i2s接口和所述pcm接口都可以用于音频通信。
[0158]
uart接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,uart接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过uart接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过uart接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
[0159]
mipi接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。mipi接口包括摄像头串行接口(camera serial interface,csi),显示屏串行接口(display serial interface,dsi)等。在一些实施例中,处理器110和摄像头193通过csi接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过dsi接口通信,实现电子设备100的显示功能。
[0160]
gpio接口可以通过软件配置。gpio接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,gpio接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。gpio接口还可以被配置为i2c接口,i2s接口,uart接口,mipi接口等。
[0161]
usb接口130是符合usb标准规范的接口,具体可以是mini usb接口,micro usb接口,usb type c接口等。usb接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如ar设备等。
[0162]
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本技术另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
[0163]
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过usb接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
[0164]
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
[0165]
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
[0166]
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
[0167]
移动通信模块150可以提供应用在电子设备100上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,lna)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
[0168]
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170a,受话器170b等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
[0169]
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wireless local 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转为电磁波辐射出去。
[0170]
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通
信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,gsm),通用分组无线服务(general packet radio service,gprs),码分多址接入(code division multiple access,cdma),宽带码分多址(wideband code division multiple access,wcdma),时分码分多址(time-division code division multiple access,td-scdma),长期演进(long term evolution,lte),bt,gnss,wlan,nfc,fm,和/或ir技术等。所述gnss可以包括全球卫星定位系统(global positioning system,gps),全球导航卫星系统(global navigation satellite system,glonass),北斗卫星导航系统(beidou navigation satellite system,bds),准天顶卫星系统(quasi-zenith satellite system,qzss)和/或星基增强系统(satellite based augmentation systems,sbas)。
[0171]
电子设备100通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
[0172]
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light-emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,amoled),柔性发光二极管(flex light-emitting diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。在一些实施例中,电子设备100可以包括1个或n个显示屏194,n为大于1的正整数。
[0173]
电子设备100可以通过isp,摄像头193,视频编解码器,gpu,显示屏194以及应用处理器等实现拍摄功能。
[0174]
isp用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给isp处理,转化为肉眼可见的图像。isp还可以对图像的噪点,亮度,肤色进行算法优化。isp还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,isp可以设置在摄像头193中。
[0175]
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,yuv等格式的图像信号。在一些实施例中,电子设备100可以包括1个或n个摄像头193,n为大于1的正整数。
[0176]
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
[0177]
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,mpeg)1,mpeg2,mpeg3,mpeg4等。
[0178]
npu为神经网络(neural-network,nn)计算处理器,通过借鉴生物神经网络结构,
例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过npu可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
[0179]
外部存储器接口120可以用于连接外部存储卡,例如micro sd卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
[0180]
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。
[0181]
电子设备100可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,以及应用处理器等实现音频功能。例如音乐播放,录音等。
[0182]
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
[0183]
扬声器170a,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170a收听音乐,或收听免提通话。
[0184]
受话器170b,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170b靠近人耳接听语音。
[0185]
麦克风170c,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170c发声,将声音信号输入到麦克风170c。电子设备100可以设置至少一个麦克风170c。在另一些实施例中,电子设备100可以设置两个麦克风170c,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170c,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
[0186]
耳机接口170d用于连接有线耳机。耳机接口170d可以是usb接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,omtp)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the usa,ctia)标准接口。
[0187]
压力传感器180a用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180a可以设置于显示屏194。压力传感器180a的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180a,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压
力传感器180a检测所述触摸操作强度。电子设备100也可以根据压力传感器180a的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
[0188]
陀螺仪传感器180b可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180b确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180b可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180b检测电子设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备100的抖动,实现防抖。陀螺仪传感器180b还可以用于导航,体感游戏场景。
[0189]
气压传感器180c用于测量气压。在一些实施例中,电子设备100通过气压传感器180c测得的气压值计算海拔高度,辅助定位和导航。
[0190]
磁传感器180d包括霍尔传感器。电子设备100可以利用磁传感器180d检测翻盖皮套的开合。在一些实施例中,当电子设备100是翻盖机时,电子设备100可以根据磁传感器180d检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
[0191]
加速度传感器180e可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
[0192]
距离传感器180f,用于测量距离。电子设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备100可以利用距离传感器180f测距以实现快速对焦。
[0193]
接近光传感器180g可以包括例如发光二极管(led)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备100附近有物体。当检测到不充分的反射光时,电子设备100可以确定电子设备100附近没有物体。电子设备100可以利用接近光传感器180g检测用户手持电子设备100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180g也可用于皮套模式,口袋模式自动解锁与锁屏。
[0194]
环境光传感器180l用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180l也可用于拍照时自动调节白平衡。环境光传感器180l还可以与接近光传感器180g配合,检测电子设备100是否在口袋里,以防误触。
[0195]
指纹传感器180h用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
[0196]
温度传感器180j用于检测温度。在一些实施例中,电子设备100利用温度传感器180j检测的温度,执行温度处理策略。例如,当温度传感器180j上报的温度超过阈值,电子设备100执行降低位于温度传感器180j附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,电子设备100对电池142加热,以避免低温导致电子设备100异常关机。在其他一些实施例中,当温度低于又一阈值时,电子设备100对电池142的输出电压执行升压,以避免低温导致的异常关机。
[0197]
触摸传感器180k,也称“触控器件”。触摸传感器180k可以设置于显示屏194,由触摸传感器180k与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180k用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180k也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
[0198]
骨传导传感器180m可以获取振动信号。在一些实施例中,骨传导传感器180m可以获取人体声部振动骨块的振动信号。骨传导传感器180m也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器180m也可以设置于耳机中,结合成骨传导耳机。音频模块170可以基于所述骨传导传感器180m获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器180m获取的血压跳动信号解析心率信息,实现心率检测功能。
[0199]
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
[0200]
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
[0201]
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
[0202]
sim卡接口195用于连接sim卡。sim卡可以通过插入sim卡接口195,或从sim卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或n个sim卡接口,n为大于1的正整数。sim卡接口195可以支持nano sim卡,micro sim卡,sim卡等。同一个sim卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。sim卡接口195也可以兼容不同类型的sim卡。sim卡接口195也可以兼容外部存储卡。电子设备100通过sim卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备100采用esim,即:嵌入式sim卡。esim卡可以嵌在电子设备100中,不能和电子设备100分离。
[0203]
下面通过非限制示例对本技术实施例的应用场景和实现流程进行举例说明。
[0204]
第一个应用场景
[0205]
如图5a和图5b所示,为第一个应用场景示意图。第一个应用场景为手机的一个应用场景。如图5a所示,在手机的分屏显示模式下,同时显示某一视频应用的窗口a和某一即时通讯应用的窗口b,用户可以一边通过视频应用浏览视频,一边通过即时通讯应用与朋友聊天。用户觉得视频很有趣,想将该视频分享给好友,例如,用户可以点击图5a所示窗口a中的分享按钮51,选择分享视频的方式。手机接收到用户作用于分享按钮的点击操作,在图5a所示的分屏显示基础上,叠加分享窗口c,如图5b所示。
[0206]
接收到用户作用于分享按钮的点击操作,系统新增的动态调整刷新模块监听到系统的界面发生了变化。
[0207]
动态调整刷新模块,根据surfaceflinger的绘制指令分别获取窗口a、窗口b和窗
口c的大小、位置、透明度、刷新率(单位为赫兹(hz))、z轴顺序等关键属性,如下表一所示。
[0208]
表一
[0209]
窗口窗口a窗口b窗口c大小x1*y1x2*y2x3*y3位置size1size2size3z轴顺序231透明度0%0%0%应用类型即时通讯视频视频刷新率60hz60hz60hz
[0210]
其中,xi表示窗口i的宽,yi表示窗口i的高。sizei表示窗口i的左上角坐标。i取值为1、2和3,窗口1为窗口a,窗口2为窗口b,窗口3为窗口c。
[0211]
根据三个窗口的z轴顺序,大小,位置和透明度等四个关键属性。确定窗口a和窗口c没有被遮挡;窗口b位于窗口c之后,窗口b被窗口c遮挡,遮挡面积超过40%。
[0212]
基于上述根据四个关键属性确定出的信息,计算出窗口a和窗口c保持原有刷新率不变,窗口b由于被遮挡,遮挡面积超过40%,用户感知变弱,将窗口b的刷新率调整至原来的50%。
[0213]
由surfaceflinger通过接口,例如,通过接口surface.setframerate(),通知视频应用的窗口b调整刷新率。窗口b按原来的刷新率的50%,即30hz,进行刷新。
[0214]
待用户分享完视频,窗口c消失,这时动态调整刷新模块监听到系统的界面再次发生变化,可以获取窗口a和窗口b的关键属性,再对窗口a和/或窗口b的刷新率进行调整。
[0215]
第二个应用场景
[0216]
如图6a和图6b所示,为第二个应用场景示意图。第二个应用场景为平板电脑的一个应用场景。如图6a所示,在平板电脑的悬浮窗显示模式下,在某一新闻应用的窗口b上,悬窗显示某一即时通讯应用的视频聊天窗口a。用户可以一边浏览新闻,一边与朋友视频聊天。当用户不需要浏览新闻时,用户可以将窗口a,从图6a所示的位置,移动到如图6b所示的位置,窗口a的大小变大。如图6b所示,视频聊天窗口a覆盖在了窗口b之上。
[0217]
接收到用户移动窗口a的滑动操作,系统新增的动态调整刷新模块监听到系统的界面发生了变化。
[0218]
动态调整刷新模块,根据surfaceflinger的绘制指令分别获取窗口a和窗口b的大小、位置、透明度、刷新率、z轴顺序等关键属性,如下表二所示。
[0219]
表二
[0220]
窗口窗口a窗口b大小x1*y1x2*y2位置size1size2z轴顺序12透明度0%0%应用类型即时通讯新闻刷新率60hz60hz
[0221]
其中,xi表示窗口i的宽,yi表示窗口i的高。sizei表示窗口i的左上角或左下角坐
标。i取值为1和2,窗口1为窗口a,窗口2为窗口b。
[0222]
根据两个窗口的z轴顺序,大小,位置和透明度等四个关键属性。确定窗口b被窗口a遮挡,遮挡面积超过50%;窗口b位于窗口a之后。
[0223]
基于上述根据四个关键属性确定出的信息,计算出窗口a保持原有刷新率不变,窗口b由于被遮挡,遮挡面积超过50%,用户感知变弱,将窗口b的刷新率调整至原来的20%。
[0224]
由surfaceflinger通过接口,例如,通过接口surface.setframerate(),通知新闻应用的窗口b调整刷新率。窗口b按原来的刷新率的20%,即12hz,进行刷新。
[0225]
待用户重新移动窗口a,这时动态调整刷新模块监听到系统的界面再次发生变化,可以再次获取窗口a和窗口b的关键属性,对窗口a和/或窗口b的刷新率重新进行调整。
[0226]
下面通过非限制示例对本技术实施例的实现流程进行详细说明。
[0227]
结合上述应用场景及相关附图,本技术实施例提供了一种调整窗口刷新率的方法,所述调整窗口刷新率的方法可以由电子设备执行。作为一非限制性示例,所述调整窗口刷新率的方法可以由图4所示的电子设备执行,或,由图5a和图5b所示的手机执行,或,由图6a和图6b所示的平板电脑执行。如图7所示,所述调整窗口刷新率的方法包括步骤s710至s760。
[0228]
s710,获取显示屏的当前刷新率,作为基准刷新率。
[0229]
电子设备中搭载的显示屏的刷新率通常为60hz(单位:赫兹),也就是每16.6ms生成一帧。目前,也有一些电子设备可以搭载刷新率更高的显示屏,例如90hz或120hz等。还有一些电子设备可以支持可变刷新率,例如支持60hz和90hz两种刷新率。
[0230]
在一些实施例中,获取显示屏当前刷新率作为基准刷新率(baserefreshrate),基准刷新率为后续调整窗口刷新率的基础。
[0231]
需要说明的是,在其他一些实施例中,步骤s710也可以在后续的步骤s720或步骤s730之后执行,只需满足步骤s710在步骤s740之前执行即可。
[0232]
s720,接收到用户输入的交互操作,或,监听到系统显示状态发生变化,或,监听到前台应用状态发生变化,确定处于前台的窗口。
[0233]
电子设备接收到用户输入的交互操作,监听到系统显示状态发生变化,或,监听到前台应用状态发生变化,确定处于前台的窗口。即,确定当前有哪些窗口为前台窗口。
[0234]
作为一非限制性示例,电子设备可以获取处于前台的窗口列表。
[0235]
由于用户输入交互操作时,通常情况下会导致电子设备的整个显示界面发生变化。因此,在一些实现方式中,电子设备接收到用户输入的交互操作,确定处于前台的窗口,进而判断是否需要调整前台窗口的刷新率。
[0236]
交互操作包括但不限于触摸操作、语音控制操作或光标控制操作等。根据电子设备所能提供的输入设备的不同,交互操作可能存在差异。
[0237]
在另一些实现方式中,电子设备监听到系统显示状态发生变化,确定处于前台的窗口。系统显示状态发生变化时,电子设备的显示界面被用户聚焦的可能性会发生变化。
[0238]
系统显示状态发生变化,包括但不限于电子设备从亮屏切换到灭屏状态,或,从亮屏状态切换到灭屏状态,或者,显示屏的亮度降低等。需要说明的是,系统显示状态发生变化并非必然由用户输入交互操作来触发。
[0239]
例如,电子设备自动从亮屏状态切换到灭屏状态,或电子设备自动从亮屏状态切
换到锁屏等。
[0240]
在另一些实现方式中,电子设备监听到前台应用状态发生变化,确定处于前台的窗口。前台应用状态发生变化包括任一个或多个前台窗口的状态发生变化。
[0241]
前台应用状态发生变化,包括但不限于启动新的应用,关闭某一个或多个应用,将后台应用转到前台运行等。
[0242]
例如,某一应用到达预设时长时自动转入后台或关闭。
[0243]
s730,获取每个处于前台的窗口的关键属性和当前刷新率。
[0244]
在本技术一些实施例中,前台的窗口包括视觉可见窗口,例如完整未遮挡窗口和被部分遮挡的窗口等。在本技术一些实施例中,前台的窗口包括前台运行的窗口,例如完整未遮挡窗口、被部分遮挡的窗口、被完全遮挡窗口和最小化窗口等。
[0245]
关键属性包括但不限于显示内容类型、窗口大小,窗口位置,z轴顺序,窗口透明度,应用类型,用户交互数据等中的一种或多种。
[0246]
s740,根据步骤s730获取的关键属性,计算各个处于前台的窗口的刷新率。
[0247]
窗口的关键属性可以反应窗口的用户感知强烈程度或显示变化的快慢,针对用户感知弱的窗口或显示变化慢的窗口,可以降低窗口的刷新率。
[0248]
在本技术实施例中,可以基于关键属性中的一种或多种的组合,计算各个处于前台状态的窗口的刷新率。基于一种或多种关键属性计算各个处于前台状态的窗口的刷新率,以下简称为调整策略。
[0249]
可以根据下面任一调整策略,计算窗口调整后的刷新率。需要说明的是,下面的调整策略仅为示例性描述,其并不用于限定本技术的保护范围。事实上,基于说明书记载的示例可以想到的各种变形、组合、替代或改变均不超出本技术。
[0250]
1、根据每个窗口的z轴顺序,调整窗口的刷新率。
[0251]
由于z轴顺序越大,窗口位于越底下,用户对该窗口的感知就越弱。因此,在本示例中,根据窗口的z轴顺序,调整窗口的刷新率。
[0252]
作为一实现方式,若窗口的z轴顺序等于或大于预设值n,则可以降低该窗口的刷新率到第一刷新率。若窗口的z轴顺序小于预设值n,则该窗口可以保持原刷新率,即保持当前刷新率。其中,n可以取正整数,例如可以取大于或等于3的正整数,3,4或5。
[0253]
作为一示例,第一刷新率可以例如基准刷新率的50%。
[0254]
可选地,在其他实现方式中,当窗口的z轴顺序等于预设值n时,窗口可以保持原刷新率,即保持当前刷新率。
[0255]
需要说明的是,n为经验值,n的取值大小可以与系统当前的z轴顺序最大值有一定的关系,而z轴顺序又跟界面的复杂程度有一定的关系,可以根据实际需要设置一个合适的n值。n值可以由系统默认设置,也可以由用户自定义设置。举例来说,当z轴顺序最大值为7,n可以取为3。z轴顺序最大值为10,n可以取为5。
[0256]
2、根据各个窗口的z轴顺序、大小和位置,确定各个窗口的遮挡率,根据窗口的遮挡率调整刷新率。
[0257]
窗口的遮挡率指的是该窗口被遮挡的面积占窗口总面积的比例。
[0258]
由于窗口被遮挡的面积所占比例越大,用户对该窗口的感知就越弱。因此,在本示例中,根据窗口的被遮挡的面积所占比例,调整窗口的刷新率。
[0259]
如图8所示,为两个窗口叠加显示的情形。窗口w1的z轴顺序小于窗口w2的z轴顺序。位于上层的窗口w1未被遮挡,窗口w1部分遮挡位于下层的窗口w2。
[0260]
参见图8所示,窗口w2的遮挡率=(被遮挡的面积s1/窗口w2的总面积)*100%。其中,s1为图8中网格线所示的区域。
[0261]
作为一非限制性示例,继续参见图8所示,可以根据窗口w1和窗口w2各自的左下角像素坐标(xi,yi)、宽widei和高highi所占像素大小,计算窗口w2被遮挡的面积s1,其中i取值为1和2。窗口w2被遮挡的面积s1=[wide1-(x2-x1)]*high2。根据窗口w2的宽和高所占像素大小,计算窗口w2的总面积s。窗口w2的总面积s=wide2*high2。
[0262]
作为一实现方式,针对每个窗口而言,确定该窗口的遮挡率所属的比例区间,以该比例区间所对应的降比调整该窗口的刷新率。所述遮挡率越大则其对应的所述降比越大。
[0263]
作为一非限制性示例,若某一窗口的遮挡率小于第一比例,第一比例可以取例如40%,该窗口可以保持原刷新率,即保持当前刷新率。
[0264]
若某一窗口的遮挡率大于第一比例且小于第二比例,第一比例可以取例如40%,第二比例例如取60%,该窗口的刷新率可以降到第一刷新率。第一刷新率可以取例如基准刷新率的50%。
[0265]
若某一窗口的遮挡率大于第二比例且小于第三比例,第二比例可以取例如60%,第三比例可以取例如80%,该窗口的刷新率可以降到第二刷新率。第二刷新率可以例如取基准刷新率的30%。
[0266]
若某一窗口的遮挡率大于第三比例且小于100%,第三比例可以取例如80%,该窗口的刷新率可以降到第三刷新率。第三刷新率可以例如基准刷新率的20%。
[0267]
若某一窗口的遮挡率等于100%,即该窗口完全被遮挡时,该窗口将不被刷新,即刷新率降低为0。
[0268]
应理解地,在其他实现方式中,可以以此类比。设置多个比例区间,并且设置各个不同比例区间对应的降比,从而计算各窗口的刷新率refreshrate。比例区间及对应的降比可以由系统设置,也可以由用户自定义设置。
[0269]
3、根据窗口的透明度调整窗口的刷新率。
[0270]
由于窗口透明度越高,用户对该窗口的感知就越弱。因此,在本示例中,根据窗口的透明度,调整窗口的刷新率。
[0271]
作为一实现方式,若窗口透明度为100%,即窗口完全透明,则可以将窗口的刷新率调整为0,即完全不刷新。
[0272]
若窗口部分透明,则可以根据透明度(单位:%)计算比率,根据该比率调整窗口的刷新率。
[0273]
作为一非限制性示例,以透明度100%为完全透明,0为完全不透明来描述。窗口的透明度为d%,则该窗口刷新率的调整比率r1如下:
[0274]
r1=γ*d%;
[0275]
其中,γ为一固定系数,为经验值。基于比率r1,确定窗口调整之后的刷新率refreshrate,refreshrate=baserefreshrate*r1。
[0276]
4、根据各个窗口的z轴顺序、大小和位置,确定各个窗口的遮挡率,根据窗口的遮挡率和透明度调整刷新率。
[0277]
作为一实现方式,继续参见图8所示,窗口w2被遮挡的面积所占比例越大,用户对该窗口w2的感知就越弱。但是,上层窗口w1的透明度越高,用户对窗口w2的感知越强。因此,在本示例中,综合考虑窗口w2被遮挡的面积所占比例,以及遮挡该窗口w2的上层窗口w1的透明度,调整窗口的刷新率。
[0278]
作为一非限制性示例,若窗口w1的透明度超过60%,则不管窗口w2的遮挡率为多高,可以将窗口w2的刷新率降到第一刷新率。第一刷新率可以例如基准刷新率的20%。
[0279]
若窗口w1的透明度低于60%,则可以根据窗口w2的遮挡率,确定窗口w2的遮挡率对应的降比,从而计算窗口w2的刷新率refreshrate。
[0280]
窗口w1未被遮挡,遮挡率为0,则可以根据窗口w1自身的透明度调整窗口w1的刷新率。针对窗口w1的刷新率,可以参见前述第3个调整策略的示例。
[0281]
5、根据窗口的用户交互数据,确定该窗口有无用户交互操作,根据有无用户交互操作调整窗口的刷新率。
[0282]
若确定在预设历史时长内,存在作用于该窗口的用户交互操作,例如点击、滑动或缩放等用户交互操作,该窗口可以保持原刷新率,即保持当前刷新率,或保持原刷新率一预设时长。
[0283]
在一些实现方式中,可以对应不同的用户交互操作,设置不同的预设时长。预设时长的可以由系统默认设置,也可以由用户自定义设置。
[0284]
作为一非限制性示例,在预设历史时长内存在用户作用于某一窗口的点击操作,该窗口在200毫秒内保持当前的刷新率不做调整。在此示例中,如果该窗口的其他关键属性发生变化,该窗口的刷新率也不做调整。
[0285]
作为另一非限制性示例,在预设历史时长内存在用户作用于某一窗口中滑动列表的操作,该窗口的在300毫秒内延续当前的刷新率不做调整。
[0286]
若确定在预设历史时长内,不存在作用于某一窗口的用户交互操作。针对该窗口,可以按照该窗口的z轴顺序、透明度或遮挡率等调整刷新率。例如,若该窗口的z轴顺序为大于n,该窗口的刷新率降低到第一刷新率,第一刷新率可以取例如基准刷新率的50%。
[0287]
6、根据窗口的应用类型调整窗口的刷新率。
[0288]
由于窗口的应用类型可以一定程度上反映窗口的变化快慢程度,为了不影响用户体验,可以根据窗口的应用类型调整窗口的刷新率。
[0289]
在一些实现方式中,电子设备预设有不同应用类型各自对应的目标刷新率,即调整后的刷新率。针对任一窗口,确定该窗口的应用类型后,可以获取该应用类型对应的目标刷新率,也就确定了该窗口的目标刷新率。
[0290]
在一些实现方式中,针对应用类型为会议或直播等的窗口,为了避免影响用户体验,保持窗口的原刷新率,即保持当前刷新率。
[0291]
在另一些实现方式中,针对应用类型为视频或音乐等的窗口,可以降低刷新率为第一刷新率。第一刷新率可以为基准刷新率的80%。
[0292]
在另一些实现方式中,针对应用类型为阅读等的窗口,可以将刷新率降得更低。例如降低为第二刷新率,第二刷新率可以为基准刷新率的50%。
[0293]
7、根据窗口的显示内容调整窗口的刷新率。
[0294]
对窗口的显示内容进行分类,例如视频、直播、音乐或文本等。显示内容的分类一
定程度与窗口变化的快慢程度相关。在本示例中,根据窗口的显示内容调整窗口的刷新率。
[0295]
在一些实现方式中,电子设备预设有不同显示内容各自对应的目标刷新率。针对任一窗口,确定该窗口的显示内容后,可以获取该显示内容对应的目标刷新率,也就确定了该窗口的目标刷新率。
[0296]
在一些实现方式中,针对显示内容为视频会话、视频会议类或直播等类型的窗口,为了避免影响用户体验,保持窗口的原刷新率,即保持当前刷新率。
[0297]
在另一些实现方式中,针对显示内容为视频播放、音乐播放或窗口动画等类型的窗口,可以降低刷新率为第一刷新率。第一刷新率可以为基准刷新率的80%。
[0298]
在另一些实现方式中,针对显示内容为文本显示等类型的静态窗口,可以将刷新率降得更低。例如降低为第二刷新率,第二刷新率可以为基准刷新率的50%。
[0299]
根据调整策略,计算出每个窗口调整后的刷新率refreshrate。
[0300]
在一些实现方式中,前台窗口可以包括最小化窗口,该最小化窗口可以不被刷新,即将该最小化窗口的刷新率降低为0。
[0301]
作为一非限制性示例,若窗口的显示内容仅包括一图标或图案,和/或,窗口大小小于或等于一预设面积阈值,确定该窗口为最小化窗口,将该窗口的刷新率降低为0。应理解,预设面积阈值可以为经验值。
[0302]
s750,判断是否需要调整前台窗口的当前刷新率。若是,则执行步骤s760,若否,则结束,返回步骤s720。
[0303]
判断是否需要调整前台窗口的当前刷新率,即判断前台窗口的当前刷新率是否等于调整后的刷新率refreshrate。调整后的刷新率refreshrate可称为目标刷新率。
[0304]
若某一窗口调整后的刷新率refreshrate,即目标刷新率,不等于当前刷新率,则需要通知窗口调整刷新率。若某一窗口的目标刷新率等于当前刷新率,则不需要通知窗口调整刷新率,该窗口案原刷新率进行刷新。省略了通知的过程,从而进一步节省了资源消耗。
[0305]
s760,将步骤s740的计算结果,即调整后的刷新率,通知到需要调整刷新率的前台窗口,前台窗口按调整后的刷新率进行刷新。
[0306]
在一些实现方式中,动态调整刷新模块将步骤s740的计算结果,即调整后的刷新率,通知到surfaceflinger,再由surfaceflinger将调整后的刷新率通知到各个前台窗口,例如surfaceflinger通过接口surface.setframerate()将计算结果通知到各个前台窗口,应用按调整后的刷新率来刷新前台窗口,以此可以实现不同的窗口按不同的刷新率来刷新。
[0307]
作为前述实现方式的替换方案,在另一些实现方式中,动态调整刷新模块将步骤s740的计算结果,即调整后的刷新率,通知到应用,应用按前台窗口的调整后的刷新率来刷新前台窗口,以此可以实现不同的窗口按不同的刷新率来刷新,各个前台窗口按新的刷新率进行刷新。
[0308]
作为一示例,前台同时显示三个窗口,例如窗口a、窗口b和窗口c。窗口a和窗口b为第一应用的两个窗口。窗口c为第二应用的窗口。动态调整刷新模块计算出窗口a、窗口b和窗口c三者调整后的刷新率。第一应用按照窗口a调整后的刷新率刷新窗口a,按照窗口b调整后的刷新率刷新窗口b。第二应用按照窗口c调整后的刷新率刷新窗口c。
[0309]
需要说明的是,电子设备可以持续监听,若监听到步骤s720的情形时,重复后续步骤,以实现窗口刷新率的动态调整。
[0310]
应理解,上述实施例中各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0311]
对应于上文实施例所述的调整窗口刷新率的方法,调整窗口刷新率的装置包括的各个模块可以对应实现调整窗口刷新率的方法的各个步骤。
[0312]
可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例的描述,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不用方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0313]
需要说明的是,调整窗口刷新率的装置的模块/单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0314]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0315]
本技术实施例还提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,使得所述电子设备实现上述各个方法实施例中的步骤。
[0316]
本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
[0317]
本技术实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行时可实现上述各个方法实施例中的步骤。
[0318]
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/电子设备的任何实体或装置、记录介质、计算机存储器、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信
信号。
[0319]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0320]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0321]
在本技术所提供的实施例中,应该理解到,所揭露的电子设备和方法,可以通过其它的方式实现。例如,以上所描述的电子设备实施例仅仅是示意性的。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0322]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0323]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献