CN116157776A - 用于可浏览的表面的独立于平台的轻量级用户界面框架 - Google Patents
用于可浏览的表面的独立于平台的轻量级用户界面框架 Download PDFInfo
- Publication number
- CN116157776A CN116157776A CN202180057933.2A CN202180057933A CN116157776A CN 116157776 A CN116157776 A CN 116157776A CN 202180057933 A CN202180057933 A CN 202180057933A CN 116157776 A CN116157776 A CN 116157776A
- Authority
- CN
- China
- Prior art keywords
- gui view
- gui
- computing device
- resources
- view
- 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
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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3293—Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
-
- 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]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
移动计算设备的一个或多个处理器可以从视图提供器接收图形用户界面(GUI)视图数据,该数据为GUI视图集合中的每个相应GUI视图指定相应的平台中立布局描述和相应GUI视图要成为相关GUI视图的相应的一个或多个条件。所述一个或多个处理器可以至少部分地基于由GUI视图数据指定的用于GUI视图的一个或多个条件来将GUI视图确定为该GUI视图集合中的相关GUI视图。所述一个或多个处理器可以响应于将GUI视图确定为相关GUI视图,至少部分地基于由GUI视图数据指定的GUI视图的平台中立布局描述,输出用于在显示设备处显示的GUI视图。
Description
相关申请
本申请要求在2020年7月31日提交的美国临时申请号63/059,793的优先权,该美国临时申请的全部内容通过引用并入本文。
背景技术
移动或可穿戴设备的一个特性是设备的操作使用时间,即,对于其设备可以被连续使用的、作为设备的存储能量(例如电池)容量的函数的持续时间。大多数移动或可穿戴设备都设计有主处理器,该主处理器选择性地配置移动设备的各种传感器和无线电装置,以在那些传感器或无线电装置不以其他方式由设备使用中时减少功率使用。除了功率相对较高的主处理器之外,一些设备还包括第二低功率处理器。为了减少功率消耗,这样的设备可能会使高功率主处理器断电,并且代替地,使用低功率处理器进行操作。与高功率主处理器相比,这样的低功率处理器通常提供功能性减少的集合。在使用高功率主处理器和低功率处理器之间切换可能会导致在用户第一次看显示器时和在显示器示出信息时出现延迟,因为设备可能首先需要为高功率处理器供电,并且然后在信息可以被显示之前渲染用户界面。
发明内容
本公开针对用于使具有低功率和高功率处理器两者的移动或可穿戴计算设备能够在高功率处理器断电的情况下使用低功率处理器提供先前需要高功率处理器来提供的功能性的技术。与高功率处理器相比,低功率处理器可以被设计为通过使用较少晶体管、通过使用较小存储器缓存和/或通过使用较简单微架构来减少消耗的功率量。虽然高功率处理器可以执行全特征移动操作系统,但低功率处理器可能没有足够的处理能力来执行全特征移动操作系统。代替地,设备可以被配置为使得低功率处理器可以执行移动操作系统的减少的特征版本(例如,微内核),其提供基本的用户界面、显示和数据管理功能性,但可能不提供网络接入功能性。在各种实例中,移动操作系统的减少的特征版本可能没有提供足够的特征来执行被设计为使用全特征移动操作系统和高功率处理器执行的应用或其他程序代码。
本公开的方面公开了使包括低功率处理器的移动计算设备能够在低功率处理器处执行渲染器以生成GUI视图的技术。为了生成GUI视图,移动计算设备可以向提供器发送对GUI视图数据的请求并且可以从提供器接收所请求的GUI视图数据。在低功率处理器上执行的渲染器可以处理从提供器接收的GUI视图数据以生成GUI视图并且输出GUI视图以用于在移动计算设备的显示设备处显示。
在一个方面,提供器可以将GUI视图数据生成为结构化数据,其包括用于绘制GUI视图集合中的每一个的布局的平台中立布局描述,并且在低功率处理器上执行的渲染器可能能够将GUI视图的平台中立布局描述转换为用于绘制由低功率处理器支持的GUI视图的布局的本机指令。在另一个方面,渲染器可以从提供器接收时间线数据,该时间线数据可以允许低功率处理器确定已经变成相关GUI视图的另一个GUI视图,并且输出另一个GUI视图以在显示设备处显示而无需与提供器通信。也就是说,低功率处理器可以基于由移动计算设备接收到的时间线数据,周期性地确定基于场境信息的相关GUI视图,并且可以输出所确定的相关GUI视图以在显示设备处显示。
在另一个方面,GUI视图数据可以不一定包括一个或多个资源连同用于绘制GUI视图的布局的布局描述。像这样,GUI视图数据可以包括布局描述而无需也包括将被包括在GUI视图中的一个或多个资源。代替地,移动计算设备可以发送与对GUI视图数据的请求分开的、对一个或多个资源要被包括在GUI视图中的请求。
在一个示例中,一种方法包括:由移动计算设备的一个或多个处理器从视图提供器接收图形用户界面(GUI)视图数据,所述数据为GUI视图集合中的每个相应GUI视图指定相应的平台中立布局描述和相应GUI视图要成为相关GUI视图的相应的一个或多个条件;由所述一个或多个处理器至少部分地基于由所述GUI视图数据指定的所述GUI视图的一个或多个条件,从所述GUI视图集合中将GUI视图确定为所述相关GUI视图;以及,响应于将所述GUI视图确定为所述相关GUI视图,由所述一个或多个处理器至少部分地基于由所述GUI视图数据指定的所述GUI视图的平台中立布局描述,输出用于在显示设备处显示的所述GUI视图。
在一个示例中,移动计算设备包括至少一个处理器。所述移动计算设备进一步包括计算机可读存储设备,所述计算机可读存储设备被配置为存储能够由所述至少一个处理器执行的指令,所述指令:从视图提供器接收图形用户界面(GUI)视图数据,所述数据对于GUI视图集合中的每个相应的GUI视图指定相应的平台中立布局描述和相应的GUI视图作为相关的GUI视图的相应的一个或多个条件;至少部分地基于由所述GUI视图数据指定的所述GUI视图的一个或多个条件,从所述GUI视图集合中将GUI视图确定为所述相关GUI视图;以及,响应于将所述GUI视图确定为所述相关GUI视图,至少部分地基于用于由所述GUI视图数据指定的所述GUI视图的平台中立布局描述,输出所述GUI视图以在显示设备处显示。
在一个示例中,一种其上存储有指令的计算机可读存储介质,所述指令在被执行时,使一个或多个处理器:从视图提供器接收图形用户界面(GUI)视图数据,所述数据对于GUI视图集合中的每个相应的GUI视图指定相应的平台中立布局描述和所述相应的GUI视图作为相关的GUI视图的相应的一个或多个条件;至少部分地基于由所述GUI视图数据指定的所述GUI视图的一个或多个条件,从所述GUI视图集合中将GUI视图确定为所述相关GUI视图;以及,响应于将所述GUI视图确定为所述相关GUI视图,至少部分地基于针对由所述GUI视图数据指定的所述GUI视图的平台中立布局描述,输出所述GUI视图以在所述显示设备处显示
在附图和下面的描述中阐述了一个或多个示例的细节。本公开的其他特征、目的和优点将从描述和附图以及权利要求中显而易见。
附图说明
图1是图示根据本公开的一个或多个方面的用于提供独立于平台的轻量级用户界面框架的示例系统的概念图。
图2是图示根据本公开的一个或多个方面的示例移动计算设备的框图。
图3是进一步详细地图示根据本公开的一个或多个方面的用于提供独立于平台的轻量级用户界面框架的示例系统的概念图。
图4是图示根据本公开的一个或多个方面的移动计算设备的示例操作的流程图。
具体实施方式
总体上,本公开针对用于使具有低功率和高功率处理器两者的移动或可穿戴计算设备能够在高功率处理器断电的情况下使用低功率处理器提供以前需要高功率处理器来提供的功能性的技术。计算设备的一个功能性是输出为特定功能定制的图形用户界面(GUI)视图。GUI视图可以被设计为可浏览的表面,其以用户可以快速浏览的方式提供信息和功能性,以便查看GUI视图内包含的信息。例如,GUI视图可以包括关于当前天气的信息、公共交通信息、会议提醒、健身追踪功能性等。当由诸如智能手表的可穿戴计算设备的显示设备的相对小的显示设备显示时,这样的可浏览表面可能是有用的。
为了生成GUI视图,计算设备可以与提供器通信以请求计算设备可以用来渲染GUI视图的GUI视图数据。可以是基于云的远程系统的提供器可以响应于接收到对GUI视图数据的请求而生成GUI视图数据并将GUI视图数据发送到计算设备。计算设备可以从提供器接收GUI视图数据并且可以处理GUI视图数据以渲染GUI视图。
提供器可以以用于绘制GUI视图的一系列平台特定指令的形式或者以用于绘制特定于请求的计算设备的平台的GUI视图布局的平台特定布局描述的形式生成GUI视图数据。也就是说,提供器可以生成包括在计算设备上运行的移动操作系统的本机应用编程接口(API)调用的GUI视图数据。此外,提供器可以在GUI视图数据中捆绑要被包括在要由计算设备渲染的GUI视图中的资源,诸如图像。因此,为了生成GUI视图,计算设备可以简单地执行平台特定指令或平台特定的布局描述以渲染包括在GUI视图数据中捆绑的资源的GUI视图。计算设备还可以周期性刷新GUI视图以渲染GUI视图的更新版本。为了刷新GUI视图,计算设备可以周期性地与渲染器通信以请求和接收更新的GUI视图数据,计算设备可以处理该更新的GUI视图数据以渲染GUI视图的更新版本。
然而,如上所述,虽然高功率处理器可以执行全特征移动操作系统,但低功率处理器可能没有足够的处理能力来执行全特征移动操作系统。像这样,低功率处理器可能无法执行这样的用于绘制GUI视图的平台特定指令序列或用于绘制特定于请求的计算设备的平台的GUI视图布局的平台特定布局描述,因为低功率处理器可能不支持在高功率处理器上运行的移动操作系统的所有本机API调用。此外,由于与高功率处理器相比,低功率处理器可能具有小得多的缓存,因此低功率处理器可能无法存储在GUI视图数据中捆绑的所有资源。
此外,低功率处理器可能缺少与计算设备的一个或多个通信单元(例如,网络接口)接口连接以便通过网络与提供器通信以接收更新的GUI视图数据的功能性。代替地,低功率处理器可以使用高功率处理器作为通过网络与提供器通信的代理。因此,为了使低功率处理器从提供器接收更新的GUI视图数据,计算设备可能必须使高功率处理器通电以便通过网络与提供器通信。
本公开的技术通过提供平台中立和编程语言中立的用户界面框架潜在地解决了上述关于使用低功率处理器渲染GUI视图的问题,该用户界面框架具有由用于序列化结构化数据的可扩展的机制定义的应用编程接口(API)。代替将GUI视图数据生成为用于绘制GUI视图的或者以用于绘制对请求的计算设备的平台特定的GUI视图的布局的平台特定(例如,跨平台)的布局描述的形式的一系列平台特定指令,本公开的方面描述了使用这样的用户界面框架的提供器生成GUI视图数据作为结构化数据,该结构化数据包括用于绘制提供器序列化并发送到计算设备的GUI视图的布局的平台中立布局描述。
计算设备可以包括渲染器,其可以由高功率处理器和/或低功率处理器执行以处理GUI视图数据,该GUI视图数据包括用于绘制GUI视图的布局的平台中立布局描述并且从GUI视图数据生成用于生成和输出GUI视图的平台特定的(例如,本机的)指令,并且计算设备可以因此执行这样的平台特定指令以输出GUI以在显示设备处显示。
通过将GUI视图数据生成为包括用于绘制GUI视图布局的平台中立布局描述的结构化数据,本公开的方面可以使提供器能够生成可以由在不同移动计算平台上运行不同操作系统以生成GUI视图的高功率处理器和低功率处理器两者处理的GUI视图数据。在低功率处理器上执行的渲染器可能能够处理GUI视图数据中包括的这样的平台中立布局描述,以生成用于绘制低功率处理器本机的GUI视图的指令,并且低功率处理器能够执行这样的本机指令以生成GUI视图并输出GUI视图以在显示设备处显示。以该方式,用户界面框架使得跨不同平台和运行不同操作系统的低功率处理器和高功率处理器两者能够渲染来自由提供器生成的相同GUI视图数据集合的GUI视图。
此外,本公开的技术可以减少在向计算设备提供GUI视图数据的提供器与计算设备之间的网络通信量,该计算设备通过缓存与GUI视图集合相关联的GUI视图数据,并且通过基于一个或多个条件从GUI视图集合输出更新的GUI视图,来渲染GUI视图。为此,提供器可以生成GUI视图数据,GUI视图数据指定GUI视图集合的布局和定义用于输出更新的GUI视图的一个或多个条件的时间线。在计算设备处执行的渲染器可以接收指定GUI视图集合的布局的GUI视图数据和定义用于输出更新的GUI视图的一个或多个条件的时间线,并且可以缓存由GUI视图数据指定的GUI视图集合。在一些示例中,如果计算设备输出被缓存在计算设备中的更新的GUI视图,则时间线可以使计算设备能够在没有网络连接的情况下输出更新的GUI视图。
在计算设备处执行的渲染器可以基于由时间线定义的一个或多个条件,周期性地确定是否利用来自由计算设备缓存的GUI视图集合的GUI视图替换正在被输出的GUI视图。当渲染器基于时间线确定已经满足一个或多个条件以利用从由计算设备缓存的GUI视图集合中选择的GUI视图替换正在被输出的GUI视图时,渲染器可以输出选择的GUI视图。像这样,代替经由网络与渲染器通信以请求和接收更新的GUI视图数据以便输出更新的GUI视图,计算设备可能能够输出更新的GUI视图而无需通过网络与提供器通信。以此方式,本公开的技术减少了计算设备可能必须使高功率处理器通电以便通过网络与提供器通信的次数,从而减少了由计算设备更新GUI视图所消耗的功率。
本公开的技术可以进一步支持使用具有相对少量缓存存储器的低功率处理器来通过减少由提供器生成并发送到渲染器的GUI视图数据的大小来渲染GUI视图。代替将资源与提供器发送给渲染器的GUI视图数据中的布局描述捆绑在一起,渲染器可以诸如通过使用分开的API调用来分开地请求布局描述和资源而分开地请求和接收除了被包括在GUI视图数据中的布局描述之外的资源。代替发送包括GUI视图的布局描述和要被包括在GUI视图中的资源的GUI视图数据,提供器可以生成和发送包括GUI视图的布局描述的GUI视图数据,而不必须包括将被包括在GUI视图中的资源。
代替地,当渲染器在计算设备的低功率处理器上执行以渲染GUI视图时,渲染器可以确定要被包括在GUI视图中的资源是否已经被缓存在计算设备处。如果渲染器确定这样的资源未被缓存在计算设备处,则渲染器可以向提供器发送对于要被包括在GUI视图中的这样的资源的分开的请求。例如,如果GUI视图包括多个资源,则渲染器可以发送对多个资源中的每一个的分开的请求。
通过与对包括一个或多个GUI视图的布局描述的GUI视图数据的请求分开地发送对资源的请求,本公开的技术通过下述方式减少了由这样的低功率处理器存储在缓存存储器中的资源量:诸如当要输出GUI视图以供显示时,在需要这些资源时从提供器检索要被包括在GUI视图中的资源,代替将大的资源集合存储在存储器中,从而使具有相对少量缓存存储器的低功率处理器能够渲染包括资源的GUI视图。
例如,渲染器可以分开地请求在GUI视图中的多个资源中的每一个以进行渲染。对于包括两个资源的GUI视图,渲染器可以请求第一资源,将第一资源存储在缓存存储器中,输出第一资源(例如,经由对于屏幕缓冲区的直接存储器访问),并且然后从缓存存储器中删除第一资源,以便缓存存储器中有可用空间用于GUI视图的第二资源。渲染器可以因此请求第二资源,将第二资源存储在缓存存储器中,并输出第二资源以完成GUI视图的渲染。
图1是图示根据本公开的一个或多个方面的用于提供独立于平台的轻量级用户界面框架的示例系统101的概念图。如图1所示,系统101可以包括移动计算设备100,其被配置为经由网络110与GUI视图提供器系统120通信以生成移动计算设备100可以在显示设备106处显示的图形用户界面(GUI)视图。
移动计算设备100的示例可以包括但不限于移动电话、平板电脑、个人数字助理(PDA)、便携式游戏设备、便携式媒体播放器、可穿戴计算设备(例如,手表、腕戴式计算设备、头戴式计算设备)、智能恒温设备、智能显示设备或其他类型的计算设备。
移动计算设备100包括显示设备106(例如,存在敏感显示设备)。显示设备106可以用作移动计算设备100的输入设备和/或输出设备。可以使用各种技术来实现显示设备106。例如,显示设备106可以用作使用存在敏感输入设备的输入设备,诸如电阻触摸屏、表面声波触摸屏、电容触摸屏、投射电容触摸屏、存在敏感屏幕、声脉冲辨识触摸屏、经由雷达技术或另一个存在敏感技术检测运动的存在敏感屏幕。显示设备106可以用作使用一个或多个显示设备中的任何一个的输出设备,该显示设备诸如是能够向移动计算设备100的用户输出可见信息的液晶显示器(LCD)、点阵显示器、发光二极管(LED)显示器、微型发光二极管(microLED)显示器,有机发光二极管(OLED)显示器、有源矩阵OLED(AMOLED)显示器、电子墨水或类似的单色或彩色显示器。
在一些示例中,移动计算设备100可以包括一个或多个通信单元(诸如如图2所示)。这些通信单元可以向一个或多个其他计算设备发送数据和/或从一个或多个其他计算设备接收数据。在一些示例中,通信单元支持无线和/或有线通信,并且它们可以使用任何多种通信协议来发送和/或接收数据。
用户可以随时间主动地与移动计算设备100交互。移动计算设备100可以提供用户可以用来与移动计算设备100交互的一个或多个交互模式。在许多情况下,用户可以执行一个或多个手势或者否则提供用户输入以便与移动计算设备100交互。
在一些示例中,用户可以通过提供用户输入来与移动计算设备100交互,该用户输入使移动计算设备100输出图形用户界面(GUI)视图以便在为特定功能定制的显示设备106处显示。例如,用户可以执行滑动手势、敲击手势等来使移动计算设备在显示设备上输出GUI视图,或者使移动计算设备从在显示设备上输出GUI视图切换至在显示设备上输出不同的GUI视图。
如本文所用,术语“GUI视图”是指离散的UI屏幕、层、页面、图块、窗口或GUI的相关内容的一部分,并且也可称为瓦片、小部件、复杂件、叠加层、助理响应、表盘等。在一些示例中,一次只能显示一个GUI视图。在其他示例中,一次可以显示多余一个GUI视图。GUI视图的分组可以表示单个GUI。
在一些示例中,GUI视图可以指可浏览的表面。即,GUI视图可以是提供由显示设备106以用户可以快速浏览以便查看被包含在GUI视图内的信息的方式显示的信息和功能性的UI。例如,这样的GUI视图可以包括提供天气信息的GUI视图、提供健身追踪功能性的GUI视图、提供虚拟助理功能性的GUI视图、提供日历功能性的GUI视图、提供公共交通信息的GUI视图等。
GUI视图在诸如智能手表的可穿戴计算设备或具有相对小的(例如,两英寸或更小的)显示器——在该显示器中可以由显示器显示的信息量显示器相对小——的其他移动计算设备的场境中可能是有用的。由GUI视图提供的信息和功能性可能是特定于场境的。例如,GUI视图可以提供移动计算设备100的当前位置的天气信息,并且可以改变当移动计算设备100的位置改变到新位置时提供的天气信息。类似地,移动计算设备100A可以取决于场境来输出以显示不同的GUI视图。例如,移动计算设备100A可以输出以显示在预先安排的会议之前30分钟提供会议提醒的GUI视图,并且当移动计算设备100A位于超市附近时可以切换为输出以显示杂货店购物清单的GUI视图。
移动计算设备100可以包括一个或多个处理器。例如,移动计算设备100可以包括“大”处理器和“小”处理器两者,“大”处理器包括用于执行处理密集型工作负载的一个或多个相对较高功率的处理核心,“小”处理器包括用于执行相对较少的处理密集型工作负载的一个或多个低功率处理核心。与“大”处理器相比,“小”处理器可以消耗相对较少的功率并且与“大”处理器相比可以具有相对较低的性能。为了实现这样的功率消耗减少,与“大”处理器相比,“小”处理器可以使用相对较少的晶体管、具有较小的存储器缓存、以较低的操作频率操作和/或具有较简单的微架构,并且因此可以具有与“大”处理器相比相对较低的性能。在一些示例中,“大”处理器和“小”处理器可以是“big.LITTLE”异构架构的一部分。
移动计算设备100包括高功率处理器102A,其是具有相对较高性能的“大”处理器,并且移动计算设备100还包括低功率处理器102B,其是具有相对较低性能的“小”处理器。移动计算设备可以包括“大”处理器和“小”处理器两者,仅包括“大”处理器,或仅包括“小”处理器。在图1的示例中,虽然移动计算设备100包括高功率处理器102A(例如,“大”处理器)和低功率处理器102B(例如,“小”处理器)两者,但其他移动计算设备可以包括高功率处理器,而无需也包括低功率处理器,或者可以包括低功率处理器而无需也包括高功率处理器。例如,高功率处理器102A可以是Cortex-A类“应用”处理器并且低功率处理器102B可以是Cortex-M类“嵌入式”处理器。
虽然本公开将移动计算设备100描述为包括高功率处理器102A和低功率处理器102B,但是使用术语“较高功率”的高功率处理器102A的描述并不暗示高功率处理器102A是台式机类或服务器类处理器。代替地,高功率处理器102A是为诸如移动电话、可穿戴计算设备等移动计算设备设计的移动类处理器,其与低功率处理器102B相比功率相对较高。
与高功率处理器102A相比,低功率处理器102B可能具有有限的功能性。在一些示例中,与高功率处理器102A相比,低功率处理器102B可以具有小得多的缓存存储器,与高功率处理器102A相比可以以较低的操作频率操作,可以具有相对较低的每循环指令(IPC),可以不能够使用移动计算设备100的网络接口来建立网络连接以与其他计算设备发送和接收数据等。高功率处理器102A可以具有与低功率处理器102B相比大得多的缓存存储器,可以以与低功率处理器102B相比较高的操作频率操作,可以具有相对较高的IPC,和/或可以具有微架构特征,其使得能够实现与低功率处理器102B相比相对更高的性能,但是以附加的功率消耗为代价。
在一些示例中,高功率处理器102A可以被配置为执行全特征移动操作系统,诸如为移动电话或可穿戴设备设计的操作系统,而低功率处理器102B可能无法执行这样的全特征移动操作系统。代替地,与高功率处理器102A可以被配置为执行的全特征移动操作系统相比,低功率处理器102B可以被配置为执行具有有限功能性和有限数量API的有限得多的操作系统。因此,虽然高功率处理器102A能够执行全特征移动操作系统的本机指令,但低功率处理器102B可能无法执行在高功率处理器102A上运行的全特征移动操作系统的本机指令,并且可能代替地可以限于执行这样的指令的子集(即,少于全部),这些指令是全特征移动操作系统本机的,或者可能限于执行不同的指令集合。
因为与低功率处理器102B相比,高功率处理器102A的功率相对较高,所以与低功率处理器102B相比,高功率处理器102A在通电和操作时可以消耗相对更多的功率。像这样,移动计算设备100可能能够通过增加使用低功率处理器102B来执行工作负载并且同时减少使用高功率处理器102A来减少其功率消耗。
像这样,本公开的方面提供独立于平台的轻量级用户界面框架,其使得移动计算设备100能够使用低功率处理器102B来生成GUI视图,从而减少移动计算设备100的功率消耗。具体地,独立于平台的轻量级用户界面框架可以被包括高功率处理器、低功率处理器和/或运行不同操作系统的高功率处理器和低功率处理器的组合的移动计算设备使用以使用相同的GUI视图数据生成GUI视图。
在图1的示例中,移动计算设备100被配置成向GUI视图提供器系统120发送对GUI视图数据的请求。对GUI视图数据的请求可以指定移动计算设备100要渲染的GUI视图的类型,诸如GUI是否要提供天气信息、健康跟踪功能性、虚拟助理功能性、日历功能性等。对GUI视图数据的请求还可以包括一个或多个参数,诸如移动计算设备100的当前位置、一天中的当前时间、由移动计算设备100的用户正在执行的活动等。
GUI视图提供器系统120可以是被配置为根据独立于平台的用户界面框架生成GUI视图数据的基于云的系统、基于服务器的系统或配套移动计算设备(例如,与移动计算设备100配对的智能电话)。GUI视图提供器系统120可以响应于从移动计算设备100接收到请求,至少部分地基于该请求生成GUI视图数据112。在一些示例中,为了生成GUI视图数据,GUI视图提供器系统120可以经由网络110与一个或多个数据提供器系统122通信以请求和接收要在GUI视图中显示的信息。例如,如果GUI视图提供器系统120从移动计算设备100接收到对GUI视图数据以生成提供天气信息的GUI视图的请求,则GUI视图提供器系统120可以从天气数据提供器系统请求并接收将在GUI视图中呈现的一个或多个位置——诸如,移动计算设备100的当前位置、移动计算设备100的预测未来位置等——的天气数据。在另一个示例中,如果GUI视图提供器系统120从移动计算设备100接收到对GUI视图数据以生成提供日历功能性的GUI视图的请求,则GUI视图提供器系统120可以从企业服务器请求和接收关于移动计算设备100的用户当天的会议的信息。
GUI视图数据,诸如GUI视图数据112,可以是指定要在一个或多个GUI视图中的每一个中呈现的数据的结构化数据。GUI视图数据112可以为一个或多个GUI视图中的每一个指定包括GUI视图布局的平台中立布局描述的UI布局,指定与GUI视图相关联的一个或多个动作,并指定与GUI视图相关联的一个或多个资源。如上所述,要在GUI视图中呈现的数据可以是由GUI视图提供器系统120从一个或多个数据提供器系统122接收的信息。
由GUI视图数据112为GUI视图指定的UI布局可以是声明GUI视图布局的平台中立布局描述,诸如文本、图像、小部件、控件等的布局,以及要在GUI视图中呈现的特定数据(例如,文本)。在一些示例中,UI布局是使用声明性模型指定的。GUI视图数据112可以指定一个或多个GUI视图,并且由GUI视图数据112指定的UI布局可以声明所述一个或多个GUI视图中的每一个的布局。例如,如果GUI视图数据112包括不同位置处的天气视图,则GUI视图数据112可以包括提供不同位置中的每一个的天气的视图。
GUI视图数据112还可以指定定义与GUI视图数据112中包括的GUI视图中的每一个的相关性相关联的条件的时间线。如上所述,GUI视图数据112可以包括一个或多个GUI视图,并且每个GUI视图在某些条件下可能是相关的。这样的条件可以包括基于时间的条件、基于位置的条件、基于用户活动的条件等。例如,每个GUI视图在特定时间量(例如,5秒、15秒、30秒等)内可能是相关的(即,成为相关的GUI视图)。像这样,在此示例中,时间线可以指定每个GUI视图相关的时间量。在另一个示例中,会议提醒GUI视图在会议开始之前可能是相关的,但一旦会议已经开始就可能不再相关。在另一个示例中,当移动计算设备在超市时,购物清单GUI视图可能是相关的,但在超市以外的位置可能不相关。在另一个示例中,当天头条新闻的新闻GUI视图可能在移动计算设备的用户早上刚醒来的时间相关。
由GUI视图数据112指定的一个或多个动作可以对于由GUI视图数据112指定的GUI视图中的每一个,定义可以由GUI视图执行的一个或多个动作,诸如重新加载GUI视图,在移动设备上启动平台特定的应用,诸如经由访问到这样的应用的深链接、经由网络(例如,网络110)访问远程资源等。GUI视图数据112可以为用户界面元素视图指定相关联的动作,使得当移动计算设备100的用户与用户界面元素交互时,移动计算设备100可以执行与用户界面元素相关联的动作。
由GUI视图数据112对于由GUI视图数据112指定的GUI视图中的每一个指定的一个或多个资源可以包括图像、视频、音频文件等。为了指定一个或多个资源,GUI视图数据112可以包括对移动计算设备上本机应用资源的引用,或者可以将原始资源数据捆绑在GUI视图数据112内。将原始资源数据捆绑在GUI视图数据112内可以使GUI视图的开发人员能够创建不取决于安装在移动计算设备上的本机应用——诸如从平台特定的数字分发平台(例如,应用商店)安装的本机应用——的GUI视图数据112。
GUI视图提供器系统120可以生成GUI视图数据112并且序列化GUI视图数据112以发送到移动计算设备100。虽然GUI视图提供器系统120可能能够使用任何编程语言来生成GUI视图数据112,但是GUI视图提供器系统120可以生成语言中立和平台中立的GUI视图数据112,使得GUI视图提供器系统120可能能够将由GUI视图提供器系统120生成的相同GUI视图数据112发送到运行不同操作系统的不同移动计算设备。
GUI视图提供器系统120可以使用任何合适的数据序列化协议来序列化GUI视图数据112。在一些示例中,GUI视图提供器系统120可以使用协议缓冲区来序列化GUI视图数据112,协议缓冲区是用于将结构化数据序列化的语言中立、平台中立、可扩展的机制,从而使GUI视图提供器系统120能够产生GUI视图数据112,GUI视图数据112是跨平台的并且能够由在不同操作系统上运行的渲染器处理以基于GUI视图数据112生成GUI视图。
在图1的示例中,GUI视图提供器系统120可以响应于从移动计算设备100接收到对GUI视图数据的请求,生成、序列化GUI视图数据112并经由网络110将其发送到移动计算设备100。移动计算设备100可以响应于从GUI视图提供器系统120接收到GUI视图数据112,至少部分地基于GUI视图数据112渲染GUI视图。为了至少部分地基于GUI视图数据112渲染GUI视图,移动计算设备100可以生成用于至少部分地基于GUI视图数据112生成GUI视图的平台特定指令,执行平台特定指令以生成GUI视图,并且输出用于在显示设备106处显示的GUI视图。
移动计算设备100包括渲染器108A和渲染器108B,用于至少部分地基于从诸如GUI视图提供器系统120的GUI视图提供器接收的GUI视图数据(例如,GUI视图数据112)来渲染GUI视图。渲染器108A和渲染器108B可以是被配置为处理GUI视图数据112以生成平台特定指令(例如,移动计算设备100本机的指令)——诸如平台特定的绘图命令——来用于生成GUI视图的应用,移动计算设备100可以执行所述指令以生成移动计算设备100可以输出以在显示设备106处显示的GUI视图。
由于移动计算设备100包括高功率处理器102A和低功率处理器102B,因此移动计算设备100可以包括渲染器108A,渲染器108A可以由高功率处理器102A执行以至少部分地基于GUI视图数据112渲染GUI视图,并且移动计算设备100还可以包括渲染器108B,渲染器108B可以由低功率处理器102B执行以至少部分地基于GUI视图数据112来渲染GUI视图。
移动计算设备100可以被配置为选择高功率处理器102A或低功率处理器102B以基于GUI视图数据112渲染GUI视图。移动计算设备100可以将该选择基于多个因素,诸如由高功率处理器102A和低功率处理器102B至少部分地基于GUI视图数据112渲染GUI视图所消耗的相应功率量。例如,如果高功率处理器102A已经通电,则移动计算设备100可以选择高功率处理器102A至少部分地基于GUI视图数据112来渲染GUI视图。相应地,如果高功率处理器102A尚未通电,则移动计算设备100可以选择低功率处理器102B来至少部分地基于GUI视图数据112来渲染GUI视图。
如果移动计算设备100选择高功率处理器102A来渲染GUI视图,则高功率处理器102A可以被配置为执行渲染器108A以至少部分地基于GUI视图数据112生成平台特定指令,高功率处理器102A可以执行所述指令以输出GUI视图以在显示设备106处显示。类似地,如果移动计算设备100选择低功率处理器102B来渲染GUI视图,则低功率处理器102B可以被配置为执行渲染器108B以至少部分地基于GUI视图数据112生成平台特定指令,低功率处理器102B可以执行所述指令以输出GUI视图以在显示设备106处显示。移动计算设备100可以因此输出生成的GUI视图以在显示设备106处显示。
在图1的示例中,低功率处理器102B可以执行指令以在显示设备106处输出与天气信息相关联的GUI视图114A。如可以看出,在显示设备106处显示的GUI视图114A可以包括文本,诸如当前温度(例如,“18°”)、云信息(例如,“多云”)、与天气信息相关联的位置(例如,“伦敦”)、当天的高温(例如,“18°”)、当天的低温(例如,“6°”)。GUI视图114A还可以包括资源,诸如表示天气多云的云的图像。
GUI视图114A可以呈现由GUI视图数据112指定的多个GUI视图中的一个。当渲染器108B在低功率处理器102B上执行以生成用于渲染GUI视图(例如,输出GUI视图以在显示设备106上显示)——诸如用于渲染GUI视图114A——的平台特定指令时,渲染器108B也可以执行以生成平台特定指令以呈现由GUI视图数据112指定的GUI视图集合中的其他GUI视图中的每一个,并且可以将生成的用于渲染GUI视图集合中的每一个的平台特定指令缓存在诸如移动计算设备100的存储器中。
当GUI视图114A被输出以在显示设备106处显示时,移动计算设备100可以被配置为至少部分地基于由GUI视图数据112指定的时间线来确定是否输出来自由GUI视图数据112指定的GUI视图集合的另一个GUI视图。移动计算设备100可以确定输出来自GUI视图集合中的另一个GUI视图以替换显示设备106处的GUI视图114A,或者可以确定输出来自GUI视图集合的另一个GUI视图与GUI视图114A一起在显示设备106处显示。
低功率处理器102B可以连续地监视与移动计算设备100和/或周围环境相关联的场境信息,诸如当前GUI视图已经被输出以供显示设备106显示的时间量、当前时间、当前位置、由移动计算设备300的用户当前正在执行的活动等,以确定是否输出另一个GUI视图以供在显示设备106处显示。在一些示例中,由GUI视图数据112指定的时间线可以将一个或多个条件与由GUI视图数据112指定的GUI视图集合中的每一个相关联。与该GUI视图集合相关联的所述一个或多个条件可以包括与和移动计算设备100和/或周围环境相关联的场境信息有关的条件,诸如关联的GUI视图将被输出以供显示设备106显示的时间量、当前时间、当前位置、由移动计算设备300的用户当前正在执行的活动等。
低功率处理器102B可以因此将与移动计算设备100和/或周围环境相关联的场境信息与和该GUI视图集合中的每一个相关联的一个或多个条件进行比较以从用于与移动计算设备100和/或周围环境相关联的场境信息的GUI视图集合中确定相关GUI视图。低功率处理器102B可以因此输出相关的GUI视图以在显示设备106处显示。
在一些示例中,如果时间线指定了GUI视图114A对于其相关的时间量,则低功率处理器102B可以执行或以其他方式监视定时器以监视GUI视图114B是否仍然相关。如果低功率处理器102B确定GUI视图114A不再相关,则低功率处理器102B可以从该GUI视图集合中确定相关GUI视图并且可以输出相关GUI视图用于在显示设备106处显示。
在另一个示例中,如果GUI视图114A提供当前位置的天气视图,则低功率处理器102B可以监视移动计算设备100的位置。如果低功率处理器102B确定移动计算设备100的位置已经改变到新位置,低功率处理器102B可以确定当前由GUI视图提供的GUI视图114A不再相关。低功率处理器102B可以确定是否已经缓存了与新位置相关联的天气的GUI视图,并且如果是,则低功率处理器102B可以输出移动计算设备100的当前位置的天气的GUI视图。
如图1所示,如果低功率处理器102B确定移动计算设备100已经从伦敦移动到斯劳(Slough),则低功率处理器102B可以确定呈现伦敦天气的GUI视图114A不再相关。低功率处理器102B可以确定呈现斯劳天气的GUI视图是否已经被缓存,并且如果是,低功率处理器102B可以输出斯劳天气的GUI视图114B。
在一些示例中,为了进一步支持诸如低功率处理器102B的低功率处理器的使用,移动计算设备100可以被配置为分开地请求和接收用于GUI视图的UI布局数据和用于GUI视图的资源。因为低功率处理器102B可以包括非常少量的几兆字节量级的存储器,所以低功率处理器102B在一些情况下可能无法处理包括诸如大的位图图像的大的资源的GUI视图数据。像这样,由GUI视图提供器系统120生成并由移动计算设备100接收的GUI视图数据112可以针对GUI视图指定UI布局、时间线、一个或多个动作以及一个或多个资源,但针对GUI视图可能不包括用于GUI视图的一个或多个资源。
代替接收资源作为GUI视图数据112的一部分,低功率处理器102B可以被配置为在低功率处理器102B准备输出用于在显示设备106处显示的视图时根据需要分开地请求和接收与GUI视图相关联的资源(例如,要作为GUI视图的一部分的图像)。当低功率处理器102B要执行指令以输出用于在显示设备106处显示的GUI视图时,移动计算设备100可以被配置为确定要被包括在GUI视图中的资源当前是否被缓存在移动计算设备100中。如果移动计算设备100确定要被包括在GUI视图中的一个或多个资源当前没有被缓存在移动计算设备100中,则移动计算设备100可以被配置为与GUI视图提供器系统120通信以请求和接收在GUI视图中包括的相关资源。低功率处理器102B可以被配置为诸如通过下述方式将接收到的资源单独写入闪速存储器并且使用直接存储器访问来在显示设备106绘制资源:执行(例如,低功率处理器102B的处理器缓存的)数据块中的位图图像直接到与显示设备相关联的屏幕缓冲区中的直接存储器访问,而不必须将位图图像的中间副本加载到移动计算设备100的通用存储器中。以该方式,具有有限的存储器的量的低功率处理器可能能够使用这里描述的用户界面框架来生成和输出GUI视图以用于在诸如显示设备106的显示设备处显示。
在一些示例中,GUI视图可以是交互式的,使得GUI视图可能能够基于由移动计算设备100接收到的用户输入来执行一个或多个动作。如上所述,诸如GUI视图数据112的GUI视图数据可以定义响应于用户与GUI视图的交互可以由移动计算设备100来执行的与GUI视图相关联的一个或多个动作,诸如重新加载GUI视图、在移动设备上启动平台特定应用,诸如经由访问到这样的应用的深链接、经由网络(例如网络110)访问远程资源等。渲染器108B可以因此充当动作处置器来监视与用户和GUI视图的交互相对应的用户输入。渲染器108B可以响应于检测到用户与在显示设备106处输出的GUI视图的交互,诸如与选择GUI视图的元素相对应的触摸输入,执行与由GUI视图数据112定义的用户交互相关联的动作。例如,提供天气信息的GUI视图可以包括到由移动计算设备100上的本机天气应用提供的更详细天气预报的链接。当渲染器108B检测到选择作为到详细天气预报的链接的GUI视图中的元素的用户交互时,渲染器108B可以通过下述方式来执行与GUI视图中的链接的选择相关联的动作:使移动计算设备110A启动本机天气应用以示出从GUI视图链接的详细天气预报。
虽然关于包括高功率处理器102A和低功率处理器102B两者的移动计算设备100描述了本公开的方面,但是本公开的技术也可以在具有不同处理器架构的移动计算设备上执行,诸如仅包括高功率处理器的移动计算设备或仅包括低功率处理器的移动计算设备。例如,高功率处理器可以同等地执行本文描述的由低功率处理器102B执行的所有技术以处理GUI视图数据以生成平台特定的指令,这些指令可以被执行以输出GUI视图用于在显示设备处显示。
图2是图示根据本公开的一个或多个方面的示例移动计算设备200的框图。移动计算设备200可以包括图1所示的移动计算设备100的示例,其中,相似编号的组件可以提供与参考图1描述的那些组件相似的功能。图2仅图示了移动计算设备200的一个特定示例,并且移动计算设备200的许多其他示例可以在其他实例中使用并且可以包括示例移动计算设备200中包括的组件的子集或者可以包括在图2中未示出的附加组件。
在图2的示例中,移动计算设备200包括显示设备202、一个或多个处理器220、一个或多个输入组件222、一个或多个通信单元224、一个或多个输出组件226、电源228和一个或多个存储设备250。通信信道227可以互连组件220、222、202、224、228、226和/或250中的每一个以用于组件间通信(物理上、通信上和/或操作上)。在一些示例中,通信信道227可以包括系统总线、网络连接、进程间通信数据结构或用于在硬件和/或软件之间传送数据的任何其他方法。
移动计算设备200的一个或多个输入组件222可以接收输入,诸如来自用户的输入。输入的示例是触摸/触觉、存在敏感和音频输入。输入组件222的示例包括存在敏感屏幕、触摸敏感屏幕、触摸屏、鼠标、键盘、触控板、语音响应系统、摄像机、麦克风或用于检测来自人或机器的输入的任何其他类型的设备。
移动计算设备200的一个或多个输出组件226可以生成输出。输出的示例是触觉、音频和视觉输出。输出组件226的示例包括存在敏感屏幕、触摸敏感屏幕、触摸屏、声卡、视频图形适配卡、扬声器、液晶显示器(LCD)、有机发光二极管(OLED))显示器、微型发光二极管(microLED)显示器、有源矩阵有机发光二极管(AMOLED)显示器、触觉设备或用于向人或机器生成输出的任何其他类型的设备。
移动计算设备200的一个或多个通信单元224可以通过在一个或多个网络(例如,一个或多个有线和/或无线网络)上发送和/或接收网络信号经由一个或多个网络与外部设备通信。例如,移动计算设备200可以使用通信单元224在诸如蜂窝无线电网络的无线电网络上发送和/或接收无线电信号。同样,通信单元224可以在诸如全球定位系统(GPS)网络的卫星网络上发送和/或接收卫星信号。通信单元224的示例包括网络接口卡(例如诸如以太网卡)、光学收发器、射频收发器、GPS接收器或可以发送和/或接收信息的任何其他类型的设备。通信单元224的其他示例可以包括短波无线电、蜂窝数据无线电、无线以太网网络无线电以及通用串行总线(USB)控制器。
移动计算设备200的显示设备202包括显示组件223和存在敏感输入组件225。在一些示例中,显示设备202可以使用触觉、音频或视觉刺激向用户提供输出,如上文参考输出组件226所述。例如,显示组件223可以提供显示或视频输出,如参考输出组件226所述。显示设备202还可以提供输入能力,诸如上面参考输入组件222所述。例如,存在敏感输入组件225可以提供如参考输入组件222所描述的输入能力。
显示组件223可以是由显示设备202在其上显示信息的屏幕,并且存在敏感输入组件225可以检测显示组件223处和/或附近的对象。作为一个示例范围,存在敏感输入组件225可以检测在显示组件223两英寸或更小范围内的对象,诸如手指或手写笔。存在敏感输入组件225可以确定对象在其上被检测到的显示组件223的位置(例如,(x,y)坐标)。在另一个示例范围中,存在敏感输入组件225可以检测到距显示组件223六英寸或更小的对象,并且其他范围也是可能的。存在敏感输入组件225可以使用电容、电感、基于雷达和/或光学辨识技术来确定由用户的手指选择的显示组件223的位置。在一些示例中,存在敏感输入组件225还使用关于显示组件223描述的触摸、存在敏感、音频或视频刺激向用户提供输出。显示组件223可以是提供视觉输出的任何类型的输出设备,诸如关于输出组件226所描述的。
虽然被示为移动计算设备200的内部组件,但是显示设备202也可以表示与移动计算设备200共享用于发送和/或接收输入和输出的数据路径的外部组件。例如,在一个示例中,显示设备202表示移动计算设备200的内置组件,其位于移动计算设备200的外部包装(例如,移动电话上的屏幕)内并与其物理连接。在另一个示例中,显示设备202表示移动计算设备200的位于外部并且与移动计算设备200的包装(例如,监视器和/或投影仪,其与平板电脑移动共享有线和/或无线数据路径)物理分离的外部组件。
移动计算设备200的显示设备202可以检测作为来自移动计算设备200的用户的输入的二维和/或三维手势。例如,显示设备202的传感器(例如存在敏感输入组件225的传感器)可以检测用户在显示设备202的传感器的阈值距离内的移动(例如,移动手、手臂、笔、触笔)。显示设备202可以确定运动的二维或三维的矢量表示,并将矢量表示与具有多个维度的手势输入(例如,挥手、捏、拍、笔划)相关联。换句话说,显示设备202可以检测多维手势而不需要用户在显示设备202在其上输出信息以供显示的屏幕或表面(例如,显示组件223)处或附近做手势。代替地,显示设备202可以检测在传感器处或传感器附近执行的多维手势,该传感器可能位于或可能不位于显示设备202输出信息以供显示的屏幕或表面附近。
移动计算设备200内的一个或多个存储设备250可以存储用于在移动计算设备200的操作期间(例如,在执行UI模块230、应用232、操作系统242、UI模块230、渲染器234、GUI视图提供器238或动作处置器240中的一个或多个期间)处理的信息。在一些示例中,存储设备250包括临时存储器,这意味着存储设备250的主要目的不是长期存储。移动计算设备200上的存储设备250可以被配置为作为易失性存储器用于短期存储信息,并且因此如果断电则不保留存储的内容。易失性存储器的示例包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)和本领域已知的其他形式的易失性存储器。
在一些示例中,存储设备250包括一个或多个计算机可读存储介质。存储设备250可以被配置为存储比易失性存储器更大量的信息。存储设备250可以进一步被配置为作为非易失性存储空间用于长期存储信息并且在通电/断电循环之后保留信息。非易失性存储器的示例包括磁性硬盘、光盘、软盘、闪速存储器或电可编程存储器(EPROM)或电可擦除可编程(EEPROM)存储器的形式。在图2的示例中,存储设备250可以存储与一个或多个应用232、UI模块230、操作系统242、UI模块230、渲染器234、GUI视图提供器238和动作处置器240相关联的程序指令和/或数据。
在某些示例中,存储设备250或在存储设备250中包括的一个或多个组件可以被存储在移动计算设备200外部的一个或多个远程计算设备上(例如,在一个或多个外部服务器上)。在一些示例中,一个或多个远程计算设备可以存储和/或执行UI模块230、应用232、操作系统242、UI模块230、渲染器234、GUI视图提供器238和/或动作处置器240。在这些示例中,所述一个或多个远程计算设备可以执行类似于本文中参考处理器220描述的功能性。
如图2所示,移动计算设备200可以包括电源228。在一些示例中,电源228可以是电池。电源228可以为计算设备200的一个或多个组件提供电力。电源228的非限制性示例可以包括但不一定限于具有锌碳、铅酸、镍镉(NiCd)、镍金属氢化物(NiMH)、锂离子(Li-ion)和/或锂离子聚合物(Li-ion polymer)化学物质的电池。在一些示例中,电源228可能具有有限的容量(例如,1000-3000mAh)。
一个或多个处理器220可以在移动计算设备200内实现功能性和/或执行指令。类似于图1的移动计算设备100,移动计算设备200可以包括低功率处理器210和高功率处理器208。移动计算设备200上的高功率处理器208和低功率处理器210的组合可以接收和执行由存储设备250存储的执行应用232、操作系统242、UI模块230、渲染器234、GUI视图提供器238和动作处置器240的功能性的指令。由处理器220执行的这些指令可以使移动计算设备200在程序执行期间将信息存储在存储设备250内。处理器220可以执行操作系统231、应用232、渲染器234、GUI视图提供器238和动作处置器240的指令以执行一个或多个操作。也就是说,操作系统231、应用232、渲染器234、GUI视图提供器238和动作处置器240可以由处理器220操作以执行这里描述的各种功能。
在一些替代示例中,移动计算设备200可以仅包括或以其他方式包括处理器220。在这些示例中,输入组件222、显示设备202、通信单元224、输出组件226、电源228和存储设备250可以在移动计算设备200外部,但与其通信耦合(例如,经由通信信道227)。
通常,UI模块230可以管理与被呈现在显示设备202处的用户界面(例如,GUI视图)的交互并控制所述用户界面的显示。例如,UI模块230可以从诸如渲染器234的各种源接收用于生成GUI视图的信息和/或指令,并且作为响应向显示设备202输出指令和信息以使显示设备202显示GUI视图。此外,UI模块230可以响应于由显示设备202在显示GUI视图的位置检测到的输入而从显示设备202接收信息;并将关于输入的信息传播到各种目的地(例如,在计算设备200处执行或与之通信的一个或多个系统平台、操作系统、应用、模块和/或服务,诸如动作处置器240),用于解释输入和用于使计算设备200执行功能。在一些示例中,UI模块230可以从源接收显式指令以生成由显示设备202显示的用户界面。然而,在其他情况下,UI模块230可以接收其他信息(例如,通知数据)并自动生成由显示设备202基于其他信息显示的用户界面。
应用232可以包括一个或多个不同的各种应用。电子邮件应用、相机应用、地图或导航应用、日历应用、消息传送应用、社交媒体应用、旅行应用、游戏应用、股票应用和天气应用都是应用232的示例。
如图2所示,低功率处理器210可以执行渲染器234以生成一个或多个GUI视图。在一些示例中,移动计算设备200可以经由一个或多个通信单元224通过网络(例如,因特网)与GUI视图提供器系统通信以请求和接收渲染器234可以处理以生成一个或多个GUI视图的GUI视图数据。在其他示例中,高功率处理器208可以执行GUI视图提供器238以生成GUI视图数据。例如,低功率处理器210可以与高功率处理器208通信以向高功率处理器208发送对GUI视图数据的请求。高功率处理器可以执行GUI视图提供器238以基于该请求生成GUI视图数据并且可以向低功率处理器210发送生成的GUI视图数据。低功率处理器210可以响应于从GUI提供器系统或从高功率处理器208接收GUI视图数据,将GUI视图数据缓存在一个或多个存储设备250中。
在一些示例中,GUI视图数据可以为GUI视图集合中的每一个指定UI布局、一个或多个动作以及一个或多个资源。低功率处理器210可以执行渲染器234以接收GUI视图数据并生成平台特定指令(例如,低功率处理器210本机的指令)以基于用于由GUI视图数据指定的GUI视图中的每一个的布局、所述一个或多个动作以及所述一个或多个资源生成由GUI视图数据指定的GUI视图。低功率处理器210可以因此在一个或多个存储设备250中缓存用于生成GUI视图的生成的平台特定指令。
低功率处理器210可以执行用于生成GUI视图的平台特定指令以生成GUI视图并输出GUI视图以在显示设备202的显示组件223处显示。当GUI视图数据对于GUI视图指定与GUI视图相关联的一个或多个资源,诸如图像、视频、音频等时,生成GUI视图和输出GUI视图以在显示组件223处显示可以包括:生成GUI视图,该GUI视图包括一个或更多资源;以及,输出包括所述一个或多个资源的GUI视图以供在显示组件223处显示。
在一些示例中,GUI视图数据可以捆绑或以其他方式包括与GUI视图数据中的GUI视图相关联的一个或多个资源。如果低功率处理器210确定所述一个或多个资源被包括在GUI视图数据中,则低功率处理器210可能能够从一个或多个存储设备250检索与GUI视图相关联的所述一个或多个资源。
在一些示例中,如果GUI视图在GUI视图数据中不包括与GUI视图相关联的一个或多个资源,则低功率处理器210可以确定所述一个或多个资源是否被缓存在一个或多个存储设备250中。例如,移动计算设备200可能先前已经检索了用于渲染先前GUI视图的所述一个或多个资源并且因此可能已经将所述一个或多个资源缓存在一个或多个存储设备250中。如果低功率处理器210确定所述一个或多个资源被缓存在一个或多个存储设备250中,则低功率处理器210可能能够从一个或多个存储设备250检索与GUI视图相关联的所述一个或多个资源。
在一些示例中,如果GUI视图在GUI视图数据中不包括与GUI视图相关联的一个或多个资源,并且如果所述一个或多个资源被缓存在一个或多个存储设备250中,则低功率处理器210可以经由一个或多个通信单元224向资源提供器发送对所述一个或多个资源的一个或多个请求。作为响应,低功率处理器210可以经由一个或多个通信单元224从资源提供器接收与GUI视图相关联的所述一个或多个资源。
在一些示例中,如果两个或更多资源与要输出以在显示组件223处显示的GUI视图相关联,则低功率处理器210可以分开地检索所述两个或更多资源中的每一个并且可以在检索资源时,在检索所述两个或更多资源中的另一个资源之前,输出该资源以作为GUI视图的一部分在显示组件223处显示。例如,渲染器234可以进行分开的API调用以检索所述两个或更多资源中的每一个。
例如,如果三个资源与GUI视图相关联,其中,第一资源被缓存在一个或多个存储设备250中,并且第二和第三资源未被缓存在一个或多个存储设备250中,则低功率处理器210可以检索第一资源并且可以输出第一资源以作为GUI视图的一部分在显示组件223处显示。在检索第一资源之后,低功率处理器210可以向资源提供器发送对第二资源的请求,并且可以响应于接收到第二资源而输出第二资源用于作为GUI视图的一部分在显示组件223处显示。在检索到第二资源之后,低功率处理器210可以向资源提供器发送对第三资源的请求,并且可以响应于接收到第三资源而输出第三资源以作为GUI视图的一部分在显示组件223处显示。
以该方式,低功率处理器210可以检索和输出与GUI视图相关联的单独资源,这可以使计算设备能够具有相对有限的存储器的量,这些设备可能无法同时在存储器中存储多个资源。在一些示例中,为了进一步节省移动计算设备200中的可用存储量,当与GUI视图相关联的资源是位图图像时,低功率处理器210可以在接收或检索位图图像时执行直接存储器访问以将位图图像写入低功率处理器的处理器缓存,并将位图图像从低功率处理器210的处理器缓存直接绘制到显示组件223的屏幕缓冲区中,而不必须将位图图像的中间副本加载到一个或多个存储设备250。执行这样的直接存储器访问以将位图图像从处理器缓存写入屏幕缓冲器可以防止位图图像的附加副本被写入一个或多个存储设备250。
在一些示例中,低功率处理器210可以通过从GUI视图中选择与移动计算设备200的场境和/或计算设备200的周围环境最相关的GUI视图,来从由GUI视图数据指定的GUI视图集合中确定GUI视图以输出以在显示设备202的显示组件223处显示。低功率处理器210可以响应于从GUI视图中选择与移动计算设备200的场境和/或计算设备200的周围环境最相关的GUI视图,来执行用于生成所选择的GUI视图的平台特定指令以生成GUI视图并输出GUI视图以在显示设备202的显示组件223处显示。
在一些示例中,GUI视图数据可以以时间线的形式指定GUI视图集合,其中,由GUI视图数据指定的该GUI视图集合中的每个GUI视图可以是时间线中的时间线条目。时间线可以为该GUI视图集合中的每一个指定与GUI视图相关联的一个或多个条件,并且低功率处理器210可以基于与该GUI视图集合中的每一个相关联的所述一个或多个条件确定与移动计算设备200的场境和/或计算设备200的周围环境最相关的GUI视图。
在一些示例中,与GUI视图相关联的一个或多个条件可以是时间段,在该时间段期间相关联的GUI视图是相关的GUI视图。例如,GUI视图集合中的第一GUI视图可以与8:00AM和9:00AM之间的时间段相关联,诸如呈现从8:00AM到9:00AM的会议的细节的GUI视图,并且GUI视图集合中的第二GUI视图可以与9:30AM和10:30AM之间的时间段相关联,诸如呈现从9:30AM到10:30AM的第二会议的细节的GUI视图。因此,当低功率处理器210试图在8:15AM从GUI视图集合中确定最相关的GUI视图时,低功率处理器210可以确定第一GUI视图是最相关的GUI视图,并且可以输出第一GUI视图用于在显示组件223处显示。当第一GUI视图在显示组件223处显示时,低功率处理器210可以在9:00AM确定第一GUI视图不再相关并且可以停止在显示组件223处显示第一GUI视图。在9:30AM,低功率处理器210可以确定第二GUI视图现在是最相关的GUI视图,并且可以输出第二GUI视图以在显示组件223处显示直到10:30AM。
在一些示例中,与GUI视图相关联的一个或多个条件可以是时间,诸如呈现会议提醒的GUI视图。例如,GUI视图可以与12:45PM的时间相关联以向移动计算设备200的用户提醒在1:00PM的预先安排的会议。当低功率处理器210确定当前时间匹配与GUI视图相关联的时间时,低功率处理器210可以确定与当前时间相关联的GUI视图是最相关的GUI视图,并且可以输出该GUI视图用于在显示组件223处显示。
该GUI视图集合中的第一GUI视图可以与8:00AM和9:00AM之间的时间段相关联,并且该GUI视图集合中的第二GUI视图可以与9:00AM和10:00AM之间的时间段相关联。因此,当低功率处理器210试图在8:15AM确定GUI视图集合中最相关的GUI视图时,低功率处理器210可以确定第一GUI视图是最相关的GUI视图,并且可以输出第一GUI视图用于在显示组件223处显示。当第一GUI视图在显示组件223处显示时,低功率处理器210可以在9:00AM确定第一GUI视图不再相关并且可以代替地确定第二GUI视图是最相关的GUI视图,并且可以输出第二GUI视图以在显示组件223处显示,并停止在显示组件223处显示第一GUI视图。
在一些示例中,与GUI视图相关联的一个或多个条件可以是由移动计算设备200的用户执行的活动,诸如呈现健身跟踪器以跟踪用户的锻炼的GUI视图。当低功率处理器210执行活动辨识以确定移动计算设备200的用户正在执行与GUI视图相关联的活动时,低功率处理器210可以确定与由用户执行的活动相关联的GUI视图是最相关的GUI视图,并且可以输出GUI视图以在显示组件223处显示。
在一些示例中,与GUI视图相关联的一个或多个条件可以是位置,诸如当用户在杂货店时为用户呈现购物清单的GUI视图。当低功率处理器210确定移动计算设备200的位置与和GUI视图相关联的位置相对应时,低功率处理器210可以确定与移动计算设备200的位置相关联的GUI视图是最相关的GUI视图,并且可以输出该GUI视图用于在显示组件223处显示。
在一些示例中,动作处置器240可以执行以诸如经由在存在敏感输入组件225或输入组件222处接收的用户输入监视用户与为在显示组件223处显示而输出的GUI视图的交互,并且响应于检测到这样的用户交互来执行一个或多个动作。例如,动作处置器240可以响应于检测到用户与GUI视图的交互,至少部分地基于用于由GUI视图数据指定的GUI视图的一个或多个动作来确定与用户交互相对应的动作。这样的动作可以包括打开到在低功率处理器210或高功率处理器208上执行的本机应用的深链接、到在可通信地耦合到移动计算设备200的配套计算设备(例如,智能电话)上执行的本机应用的深链接,或者可以包括打开到远程网络资源(例如,网站)或非本机应用的链接。动作处置器240可以响应于确定检测到的用户与GUI视图的交互与由GUI视图数据指定的动作相对应,来执行对应的动作以例如打开到本机应用的深链接或打开到远程网络资源的链接。
图3是进一步详细地图示根据本公开的一个或多个方面的用于提供独立于平台的轻量级用户界面框架的示例系统的概念图。如图3所示,系统301是图1所示的系统101的示例,但更详细示出。系统301包括作为图1中所示的移动计算设备100和图2所示的移动计算设备200的示例的移动计算设备300。移动计算设备300可以包括作为图1所示的渲染器108A和/或渲染器108B和/或图2的渲染器234的示例的渲染器308。
移动计算设备300可以包括高功率处理器,诸如图1中所示的高功率处理器102A和图2所示的高功率处理器208,低功率处理器,诸如图1中所示的低功率处理器102B和图2所示的低功率处理器210,或者可以包括高功率处理器和低功率处理器两者。渲染器308可以在低功率处理器、高功率处理器中的任一个上执行,或者可以在低功率处理器和高功率处理器两者上执行以生成和输出GUI数据用于在诸如UI设备304的显示设备处显示。
系统301包括GUI视图提供器320,其被配置为生成由渲染器308使用的GUI视图数据。在一些示例中,GUI视图提供器320可以是基于云的GUI视图提供器系统,诸如如图1所示的GUI视图提供器系统120,渲染器308可以通过网络与该GUI视图提供器系统120进行通信。在其他示例中,GUI视图提供器320可以是由移动计算设备300执行的应用,类似于图2所示的GUI视图提供器238。例如,GUI视图提供器320可以在移动计算设备300的高功率处理器上执行以生成GUI视图数据以供在移动计算设备300的低功率处理器上执行的渲染器308使用。
GUI视图提供器320可以包括UI布局提供器330和资源提供器332。如参考图1和图2所述,诸如渲染器308的渲染器可以与对与由GUI数据指定的GUI视图相关联的资源的请求分开地向GUI视图提供器320发送对GUI视图数据的请求。像这样,UI布局提供器330可以被配置为处置对来自渲染器308的GUI视图数据指定的GUI视图的UI布局数据的请求,而资源提供器332可以被配置为处置对来自渲染器308的与由GUI数据指定的GUI视图相关联的资源的请求。
渲染器308可以作为运行时314的一部分在移动计算设备300的一个或多个处理器上执行,运行时314可以实现用于在移动计算设备300的所述一个或多个处理器上执行渲染器308的执行模型。例如,运行时314可以实现使渲染器308能够在移动计算设备300的低功率处理器上执行的执行模型。渲染器308可以执行以从GUI视图提供器320请求GUI视图数据。
如上所述,渲染器308可以从UI布局提供器330请求GUI视图数据。GUI视图数据可以指定GUI视图集合。GUI视图数据可以为GUI视图集合中的每个GUI视图指定用于在GUI视图中布局内容和资源的GUI布局信息、与GUI视图相关联的一个或多个动作、在GUI视图中包括的内容以及将被包括在GUI视图中的一个或多个资源。在一些示例中,GUI视图数据可以以时间线的形式指定GUI视图集合,其中,每个GUI视图被指定为时间线中的时间线条目,并且GUI视图中的每一个可以与用于激活GUI视图的一个或多个条件相关联。GUI视图数据可能不包括(例如,捆绑在GUI视图数据中)与GUI视图集合相关联的资源。
在一些示例中,GUI视图数据中的GUI视图集合可以彼此相关。例如,与日历事件相关联的GUI视图数据可以包括移动计算设备300的当天日历事件(例如,预先安排的会议)的用户的GUI视图集合。在另一个示例中,与健康跟踪相关联的GUI视图数据可以包括不同健康跟踪功能性的GUI视图集合。
作为生成请求的GUI视图数据的一部分,UI布局提供器330可以与数据提供器340通信以接收数据,该数据可以作为内容被包括在由GUI视图数据指定的一个或多个GUI视图中。例如,为了生成提供位置天气信息的GUI视图数据,UI布局提供器330可以与天气数据提供器通信以接收该位置的天气信息,并且UI布局提供器330可以在GUI视图数据中作为GUI视图的内容包括从天气数据提供器接收的位置的天气信息。
GUI视图数据可以是结构化数据,其包括用于绘制由GUI视图数据指定的每个GUI视图的布局的平台中立(例如,跨平台)布局描述。UI布局提供器330可以使用任何合适的数据序列化协议,诸如协议缓冲器,来序列化GUI视图数据的结构化数据,以将GUI视图数据发送到移动计算设备300。
对于在GUI视图数据中指定的每个GUI视图,GUI视图数据可以指定GUI视图的内容,诸如在GUI视图中包括的文本和资源(例如,图像)。GUI视图数据还可以为GUI视图数据中指定的每个GUI视图指定这样的文本和资源的布局信息,诸如指定文本或资源的行、文本或资源的列、用于控制GUI视图中的文本和/或资源的间距的间隔符等。GUI视图数据还可以针对在GUI视图数据中指定的每个GUI视图,指定要响应于用户与GUI视图中的一个或多个元素的交互而执行的一个或多个动作。
指定GUI视图的内容、动作和布局信息的结构化数据的示例如下:
例如,GUI视图数据可以为GUI视图指定包含具有以下示例结构化数据的三行文本的布局:
在另一个示例中,GUI视图数据可以为GUI视图指定包含具有以下示例结构化数据的三行文本的布局:
渲染器308可以从UI布局提供器330接收请求的GUI视图数据。如上所述,UI布局提供器330可以生成和发送GUI视图数据作为结构化数据,其包括用于绘制GUI视图的独立于平台的布局描述。例如,UI布局提供器330可以生成协议缓冲区形式的GUI视图数据,使得UI布局提供器330可以生成GUI视图数据并将其序列化为协议缓冲区以发送到渲染器308。
渲染器308可以接收诸如以协议缓冲器的形式的GUI视图数据,并且可以处理由GUI视图数据指定的独立于平台的布局描述以生成用于生成GUI视图的平台特定指令。在一些示例中,由渲染器308接收的GUI视图数据可以是时间线数据的形式,其中,由GUI视图数据指定的GUI视图集合中的每个GUI视图是时间线数据中的时间线条目。时间线数据可以为GUI视图中的每一个指定在其下GUI视图是相关视图的一个或多个条件,如下面更详细地讨论的。指定UI视图作为时间线数据中的时间线条目的结构化数据的示例如下:
渲染器308可以将这样的时间线数据存储在时间线缓存324中,时间线缓存324可以是渲染器308在其上执行的处理器的缓存存储器,诸如移动计算设备300的低功率处理器的缓存。因为时间线数据可以是GUI视图数据的形式,缓存时间线数据可以包括缓存作为时间线数据中的时间线条目的GUI视图集合,包括对于每个GUI视图缓存GUI视图的布局信息、GUI视图的内容、GUI视图的一个或多个资源的规范、GUI视图的一个或多个动作、GUI视图是相关GUI视图的一个或多个条件等。
移动计算设备300可以执行由渲染器308生成的平台特定指令以输出GUI视图以在诸如UI设备304的显示设备处显示。为了输出GUI视图,移动计算设备300可以根据由GUI视图的GUI数据指定的UI布局信息输出由GUI视图的GUI数据指定作为GUI视图的UI元素的内容和资源。UI设备304还可以将由用于GUI视图的GUI数据指定的一个或多个动作与GUI视图的一个或多个UI元素相关联,使得移动计算设备300可以响应于接收到选择与动作相关联的UI元素的用户输入,执行与UI元素相关联的动作。
作为执行平台特定指令以输出GUI视图的一部分,移动计算设备300可以输出在GUI视图中的一个或多个资源。在一些示例中,GUI视图数据可以在GUI视图数据中捆绑GUI视图的资源。即,当渲染器308从UI布局提供器330接收GUI视图数据时,GUI视图数据可以包括由GUI视图数据指定的一个或多个GUI视图的一个或多个资源。在一些示例中,GUI视图数据可以以原始资源数据的形式捆绑资源,诸如图像数据(例如,位图图像)、视频数据、音频数据等。像这样,输出包括在GUI视图数据中捆绑的资源的GUI视图以供在UI设备304处显示可以包括输出捆绑资源作为GUI视图数据的一部分以供在UI设备304处显示。
在一些示例中,GUI视图数据可以将GUI视图的资源指定为对移动计算设备300上的本机应用资源的引用(例如,路径)。对移动计算设备300上的本机应用资源的引用的示例可以包括对移动计算设备300的操作系统本机的资源的引用,诸如移动计算设备300的操作系统中包括的图像、视频、音频等。对移动计算设备300上本机应用资源的引用的示例可以包括对第三方资源的引用,诸如移动计算设备300上的第三方应用中包括的资源。对本机应用资源和第三方资源的这样的引用可以指示到移动计算设备300中这样的引用的位置的路径。像这样,输出包括作为对本机应用资源的引用的资源的GUI视图以用于在UI设备304处显示可以包括基于对资源的引用来检索资源以及将资源作为GUI视图数据的一部分输出以在UI设备304处显示。
在一些示例中,GUI视图数据可以不将GUI视图的一个或多个资源捆绑在GUI视图数据中,并且可以不指定对移动计算设备300上的本机应用资源的引用。代替地,移动计算设备300可以诸如从资源提供器332检索和/或接收一个或多个资源,并且作为输出GUI视图以在UI设备304处显示的一部分输出一个或多个资源以在UI设备304处显示。
在一些示例中,在作为输出GUI视图以供在UI设备304处显示的一部分向资源提供器332发送对于检索GUI视图的资源的请求之前,移动计算设备300可以确定GUI视图的资源是否被缓存在资源缓存326中。资源缓存326可以是渲染器308在其上执行的处理器的缓存存储器,诸如移动计算设备300的低功率处理器的缓存。作为在输出包括资源的GUI视图时先前被输出的资源的结果,资源可以被存储在资源缓存326中。
如果移动计算设备300确定资源被存储在资源缓存326中,则移动计算设备300可以从资源缓存326中检索资源。在一些示例中,GUI视图数据可以在指定在GUI视图中包括的资源时,指定与资源关联的资源版本。计算设备300可以因此基于与GUI视图的资源相关联的资源版本,通过确定在资源缓存326中存储的资源是否与和GUI视图中的资源相同的资源版本相关联来确定GUI视图的资源是否被存储在资源缓存326中。如果移动计算设备300确定在GUI视图中包括的资源被存储在资源缓存326中,则渲染器308可以执行以从资源缓存326中检索资源。
如果移动计算设备300确定GUI视图的资源没有被存储在资源缓存326中,则渲染器308可以执行以向GUI视图提供器320的资源提供器332发送针对该资源的请求。移动计算设备300可以接收所请求的资源并且可以因此输出包括用于在UI设备304处显示的资源的GUI视图。在一些示例中,移动计算设备300还可以响应于从资源提供器332接收到所请求的资源,将接收到的资源存储在资源缓存326中。移动计算设备300还可以将资源的资源版本的指示存储在存储器中,诸如在资源缓存326中,渲染器308可以使用它来确定与特定的资源版本相关联的资源是否被存储在资源缓存326中。
在一些示例中,如果GUI视图包括两个或更多资源,则移动计算设备300可以向资源提供器332发送对所述两个或更多资源中的每个资源的分开的请求以分开地检索所述两个或更多资源中的每一个。通过为所述两个或更多资源中的每一个发送分开的请求,移动计算设备300可以不必须在输出所述两个或更多资源用于在UI设备304显示之前等待从资源提供器332接收GUI视图的所述两个或更多资源中的每一个。代替地,移动计算设备300可以分开地请求、接收和输出所述两个或更多资源中的每一个。例如,移动计算设备300可以向资源提供器332发送对所述两个或更多资源中的资源的请求,从资源提供器332接收资源,并且在发送对所述两个或更多资源的另一个资源的请求之前输出资源以在UI设备304处显示。
在一些示例中,当移动计算设备300从资源提供器332接收诸如位图图像的资源时,移动计算设备300可以诸如通过执行将处理器的处理器缓存的数据块中的位图图像直接到与UI设备304相关联的屏幕缓冲区中的直接存储器访问,来使用直接存储器访问来在UI设备304绘制资源。执行位图图像从处理器缓存到屏幕缓冲区的这样的直接存储器访问可以使能够在输出位图图像以供在UI设备304处显示时,移动计算设备300不必须将位图图像的中间副本存储到移动计算设备300的通用存储器中。通过在绘制包括诸如位图图像的资源的UI视图时节省空间,在移动计算设备300具有有限量的通用存储器时,这样的技术是有益的。
移动计算设备300的渲染器308可以基于与GUI视图相关联的一个或多个条件从由GUI视图数据指定的GUI视图集合中确定GUI视图以输出以用于在UI设备304处显示。如上所述,GUI视图数据可以指定GUI视图集合,并且可以为该GUI视图集合中的每个GUI视图指定与GUI视图相关联的一个或多个条件,当满足这些条件时,使相关联的GUI视图成为GUI视图集合中的相关GUI视图。
移动计算设备300可以监视与移动计算设备300和/或移动计算设备300的周围环境相关联的场境信息以确定场境信息是否满足与GUI视图相关联的一个或多个条件。当移动计算设备300确定场境信息满足与由GUI数据指定的GUI视图集合中的GUI视图相关联的一个或多个条件时,渲染器308可以确定该GUI视图是该GUI视图集合中的相关视图,并且可以输出该GUI视图以在UI设备304处显示。
在一些示例中,与GUI视图相关联的一个或多个条件可以是当GUI视图相关时的时间段(例如,在9:00AM和10:00AM之间)。例如,如果GUI视图数据包括与计算设备300的用户的预先安排的会议相关联的GUI视图集合,则GUI视图数据可以包括各自都与特定的时间段相关联的视图集合。
例如,GUI视图数据可以指定与从9:00AM至10:00AM的时间段相关联的第一GUI视图和与从10:30AM至10:45AM的时间段相关联的第二GUI视图。在9:00AM,渲染器308可以确定与从9:00AM至10:00AM的时间段相关联的第一GUI视图已经成为相关的GUI视图,并且可以输出第一GUI视图以在UI设备304处显示。在10:00AM,渲染器308可以确定与9:00AM和10:00AM之间的时间段相关联的第一GUI视图不再是相关GUI视图,并且可以停止输出第一GUI视图以在UI设备304处显示。在10:30AM,渲染器308可以确定与从10:30AM到10:45AM的时间段相关联的第二GUI视图已经成为相关GUI视图,并且可以输出第二GUI视图以在UI设备304处显示。在10:45AM,渲染器308可以确定与10:30AM和10:45AM之间的时间段相关联的第二GUI视图不再是相关GUI视图,并且可以停止输出第二GUI视图以在UI设备304处显示。
在一些示例中,与视图相关联的一个或多个条件可以是位置。例如,GUI视图数据可以指定与第一超市的位置相关联的第一GUI视图,其中,第一GUI视图提供第一超市的购物清单,以及与第二超市相关联的第二GUI视图,其中,第二GUI视图为第二超市提供购物清单。当渲染器308确定移动计算设备300在第一超市时,渲染器308可以确定与第一超市相关联的第一GUI视图已经变成相关的GUI视图,并且可以输出第一GUI视图用于在UI设备304处显示以显示第一超市的购物清单。当渲染器308确定移动计算设备300不再在第一超市时,渲染器308可以确定第一GUI视图不再是相关视图并且可以停止输出第一GUI视图以在UI设备304处显示。
当渲染器308确定移动计算设备300在第二超市时,渲染器308可以确定与第二超市相关联的第二GUI视图已经变成相关的GUI视图,并且可以输出第二GUI视图用于在UI设备304处显示以显示第二超市的购物清单。当渲染器308确定移动计算设备300不再在第二超市时,渲染器308可以确定第二GUI视图不再是相关视图并且可以停止输出第二GUI视图用于在UI设备304处显示。
在一些示例中,与视图相关联的一个或多个条件可以是由移动计算设备300的用户执行活动。例如,GUI视图数据可以指定与由用户执行的不同身体活动相关联的视图集合。例如,GUI视图数据可以指定与步行活动相关联的第一GUI视图,其中,第一GUI视图提供跟踪与步行相关联的活动信息(例如,步数、卡路里计数、时间、步行距离等)的健身跟踪器UI,以及与骑自行车活动相关联的第二GUI视图,其中,第二GUI视图提供健身跟踪器UI,其跟踪与骑自行车相关联的活动信息(例如,骑自行车距离、卡路里计数、时间等)。
移动计算设备300可以诸如经由使用移动计算设备300处的一个或多个传感器执行活动辨识,以确定由移动计算设备300的用户正在执行的活动。当渲染器308确定用户正在步行时,渲染器308可以确定与步行活动相关联的第一GUI视图已经成为相关的GUI视图,并且可以输出第一GUI视图以在UI设备304处显示以提供健康跟踪器UI来跟踪用户的步行。当渲染器308确定不再行走时,渲染器308可以确定第一GUI视图不再是相关视图并且可以停止输出第一GUI视图以在UI设备304处显示。
当渲染器308确定用户正在骑自行车时,渲染器308可以确定与骑自行车的活动相关联的第二GUI视图已经变成相关的GUI视图,并且可以输出第二GUI视图用于在UI设备304处显示以提供健身跟踪器UI以跟踪用户的骑自行车。当渲染器308确定移动计算设备300不再循环时,渲染器308可以确定第二GUI视图不再是相关视图并且可以停止输出第二GUI视图用于在UI设备304处显示。
以该方式,渲染器308可以执行以基于诸如一天中的时间、移动计算设备300的位置、由移动计算设备的用户正在执行的活动等场境信息来确定与GUI视图相关联的一个或多个条件是否已经被满足。如果渲染器308确定与GUI视图相关联的一个或多个条件已经被满足,则渲染器308可以执行以输出GUI视图以在UI设备304处显示。
如上所述,移动计算设备300可以将从UI布局提供器330接收的GUI视图数据缓存在时间线缓存324中。像这样,与由GUI视图数据指定的GUI视图集合中的每个GUI视图相关联的一个或多个条件可以与由GUI视图数据指定的视图集合中的每个GUI视图的UI布局信息、内容、一个或多个动作等一起被缓存在时间线缓存324中。因此,当渲染器308确定GUI视图集合中的GUI视图已经变成相关时,渲染器308可以使用时间线缓存324中缓存的GUI视图的UI布局信息、内容和所述一个或多个动作来渲染GUI视图并输出GUI视图以在UI设备304处显示。能够使用在时间线缓存324中缓存的这样的信息来渲染GUI视图可以最小化当渲染器308从输出由GUI视图数据指定的GUI视图切换为输出由GUI视图数据指定的另一个GUI视图时从移动计算设备300发送到GUI视图提供器320的请求量。
当移动计算设备300输出用于在UI设备304处显示的GUI视图时,动作处置器318可能能够处置用户与在UI设备304处接收到的GUI视图的交互。渲染器308接收到的GUI视图数据可以指定由移动计算设备300响应于用户与GUI视图的交互而执行的一个或多个动作,并且动作处置器318可以响应于检测到用户与GUI视图的交互,基于由GUI视图数据指定的一个或多个动作来确定由移动计算设备300执行的适当动作。
指定响应于用户与GUI视图的交互而执行的一个或多个动作的GUI视图数据可以指定GUI视图中的一个或多个元素,移动计算设备300的用户可以与其交互以执行一个或多个动作。例如,GUI视图中的元素可以通过将元素包裹在GUI视图数据中并指示该元素是交互式元素来被分配给动作,诸如在下面的示例结构化数据中:
如在上面的示例中可以看到的,文本“可敲击!”可以被包裹在可操作元素中以指示文本“可敲击!”是交互式元素。
在一些示例中,响应于检测到用户与GUI视图的交互,动作处置器318可以执行动作以访问到在移动计算设备300上运行的本机应用的深链接,诸如一个或多个应用322中的一个。在其他示例中,动作处置器318可以响应于检测到用户与GUI视图的交互,执行动作以访问远程网络资源,诸如网站或其他合适的网络资源。
在一些示例中,GUI视图数据可以指定用于不同平台的多个对应动作。因为GUI视图数据包括用于布局GUI视图的平台不可知的布局信息,如果GUI视图指定特定于平台(例如,特定于操作系统)的动作,诸如到在特定平台上运行的本机应用的深链接,不同的平台可能无法执行指定的操作。像这样,在一些示例中,如果GUI视图数据支持由两个不同平台执行的动作,则GUI视图数据可以指定特定于第一平台的动作,诸如到在第一平台上运行的本机应用的深链接,并且还可以指定特定于第二平台的对应动作,诸如到第二平台上运行的本机应用的深链接,其中,第一和第二平台可以是两个不同的操作系统。例如,GUI视图数据可以通过为由GUI视图数据支持的操作系统中的每一个指定启动与音乐流服务相关联的本机应用的动作,来指定在不同操作系统上启动与音乐流服务相关联的本机应用的动作。
图4是图示根据本公开的一个或多个方面的、由诸如移动计算设备100(图1)、移动计算设备200(图2)和/或移动计算设备300(图3)的移动计算设备执行的过程400的示例操作的流程图。仅出于说明的目的,参考图2中所示的移动计算设备200描述图4的操作。
如图4所示,过程400包括由移动计算设备200的一个或多个处理器220从视图提供器接收图形用户界面(GUI)视图数据,该图形用户界面(GUI)视图数据为GUI视图集合中的每个相应GUI视图指定用于要作为相关的GUI视图的相应的GUI视图的相应平台中立布局描述和相应的一个或多个条件(402)。过程400进一步包括由所述一个或多个处理器220至少部分地基于由GUI视图数据指定的GUI视图的一个或多个条件确定作为GUI视图集合的相关GUI视图的GUI视图(402)。过程400进一步包括响应于将GUI视图确定为相关GUI视图,由所述一个或多个处理器220至少部分地基于由GUI视图数据指定的GUI视图的平台中立布局描述来输出用于在显示设备202上显示的GUI视图(404)。
本公开的技术包括以下示例。
示例1:一种方法包括由移动计算设备的一个或多个处理器从视图提供器接收图形用户界面(GUI)视图数据,所述数据为GUI视图集合中的每个相应GUI视图指定相应的平台中立布局描述和相应GUI视图要成为相关GUI视图的相应的一个或多个条件;由所述一个或多个处理器至少部分地基于由GUI视图数据指定的GUI视图的一个或多个条件,将GUI视图确定为GUI视图集合中的相关GUI视图;以及,响应于将GUI视图确定为相关GUI视图,由所述一个或多个处理器至少部分地基于由GUI视图数据指定的GUI视图的平台中立布局描述,输出用于在显示设备处显示的GUI视图。
示例2:示例1的方法进一步包括:响应于接收到GUI视图数据,由所述一个或多个处理器在存储器中缓存GUI视图数据;至少部分地基于由在存储器中缓存的GUI视图数据指定的第二GUI视图的一个或多个条件,由所述一个或多个处理器从GUI视图集合中将第二GUI视图确定为相关GUI视图;以及,响应于将第二GUI视图确定为相关GUI视图,由所述一个或多个处理器至少部分地基于由在存储器中缓存的GUI视图数据指定的第二GUI视图的平台中立布局描述,输出用于在显示设备处显示的第二GUI视图。
示例3:示例1和2中任一项的方法进一步包括至少部分地基于由GUI视图数据指定的GUI视图的所述一个或多个条件,由所述一个或多个处理器确定GUI视图不再是GUI视图集合中的相关GUI视图;以及,响应于确定GUI视图不再是相关GUI视图,由所述一个或多个处理器停止输出GUI视图以在显示设备处显示。
示例4:示例2和3中任一项的方法,其中:第二GUI视图的所述一个或多个条件和第二GUI视图的所述一个或多个条件各自与以下的一个或多个相关联:时间段、位置或活动;以及,至少部分地基于第二GUI视图的所述一个或多个条件从GUI视图集合中将第二GUI视图确定为相关GUI视图进一步包括由所述一个或多个处理器确定与移动计算设备相关联的场境信息匹配与第二GUI视图相关联的所述一个或多个条件。
示例5:示例2至4中任一项的方法,其中,GUI视图数据指定与第二GUI视图的一个或多个用户界面(UI)元素相关联的一个或多个资源,进一步包括:响应于接收到与用户和第二GUI视图的UI元素的交互相对应的用户输入,由所述一个或多个处理器执行与由GUI视图数据指定的UI元素相关联的动作。
示例6:示例5的方法,其中,动作是访问到在移动计算设备处执行的本机应用的深链接。
示例7:示例2至6中任一项的方法,其中,GUI视图数据指定与第二GUI视图相关联的一个或多个资源,其中,所述一个或多个资源未被捆绑在GUI视图数据中,并且其中,输出第二GUI视图以在显示设备显示进一步包括:由所述一个或多个处理器检索所述一个或多个资源;以及,由所述一个或多个处理器输出与第二GUI视图相关联的所述一个或多个资源以在显示设备处显示。
示例8:示例7的方法,其中:检索所述一个或多个资源进一步包括:响应于确定GUI视图数据指定与第二GUI视图相关联的所述一个或多个资源,至少部分地基于与所述一个或多个资源相关联的一个或多个资源版本来确定所述一个或多个资源被缓存在移动计算设备的资源缓存中;以及,输出与第二GUI视图相关联的所述一个或多个资源进一步包括:由所述一个或多个处理器输出在资源缓存中缓存的所述一个或多个资源以在显示设备处显示。
示例9:示例7的方法,其中:所述一个或多个资源包括与第二GUI视图相关联的多个资源;检索所述一个或多个资源进一步包括:响应于确定GUI视图数据指定了与第二GUI视图相关联的多个资源,由所述一个或多个处理器向资源提供器发送对多个资源的每个相应资源的相应请求;以及其中,输出包括所述一个或多个资源的GUI视图以在显示设备处显示进一步包括:响应于从资源提供器接收多个资源中的资源,由所述一个或多个处理器输出资源以在显示设备处显示。
示例10:示例9的方法,其中,资源是位图图像,并且其中,输出资源以在显示设备处显示进一步包括:由所述一个或多个处理器执行从所述一个或多个处理器的处理器缓存到显示设备的屏幕缓冲区中的资源的直接存储器访问,以输出资源以在显示设备处显示。
示例11:示例1至10中任一项的方法,其中:移动计算设备包括高功率处理器和低功率处理器两者,其中,低功率处理器被配置为比高功率处理器消耗更少的功率;以及,至少部分地基于由GUI视图数据指定的GUI视图的平台中立布局描述输出GUI视图以在显示设备处显示进一步包括:由在移动计算设备的低功率处理器上执行的渲染器基于由GUI视图数据指定的GUI视图的平台中立布局描述,生成用于低功率处理器生成GUI视图的本机指令;以及,由低功率处理器执行本机指令以输出GUI视图以在显示设备处显示。
示例12:一种移动计算设备包括:至少一个处理器;以及,计算机可读存储设备,被配置为存储能够由所述至少一个处理器执行的指令,所述指令:从视图提供器接收图形用户界面(GUI)视图数据,所述数据对于GUI视图集合中的每个相应的GUI视图指定相应的平台中立布局描述和相应的GUI视图作为相关的GUI视图的相应的一个或多个条件;至少部分地基于由GUI视图数据指定的GUI视图的一个或多个条件,将GUI视图确定为GUI视图集合中的相关GUI视图;以及,响应于将GUI视图确定为相关GUI视图,至少部分地基于用于由GUI视图数据指定的GUI视图的平台中立布局描述,输出GUI视图以在显示设备处显示。
示例13:示例12的移动计算设备,其中,指令进一步能够由所述至少一个处理器执行以:响应于接收到GUI视图数据,将GUI视图数据缓存在存储器中;至少部分地基于由在存储器中缓存的GUI视图数据指定的第二GUI视图的一个或多个条件,从GUI视图集合中将第二GUI视图确定为相关GUI视图;以及,响应于将第二GUI视图确定为相关GUI视图,至少部分地基于由在存储器中缓存的GUI视图数据指定的第二GUI视图的平台中立布局描述,输出第二GUI视图以在显示设备处显示。
示例14:示例13的移动计算设备,其中:第二GUI视图的所述一个或多个条件和第二GUI视图的所述一个或多个条件各自与以下的一个或多个相关联:时间段、位置或活动;以及,能够由所述至少一个处理器执行以至少部分地基于第二GUI视图的所述一个或多个条件从GUI视图集合中将第二GUI视图确定为相关GUI视图的指令进一步能够由所述至少一个处理器执行,以确定与移动计算设备相关联的场境信息匹配与第二GUI视图相关联的所述一个或多个条件。
示例15:示例13和14中任一项的移动计算设备,其中:GUI视图数据指定与第二GUI视图的一个或多个用户界面(UI)元素相关联的一个或多个资源;以及,指令进一步能够由所述至少一个处理器执行以响应于接收到与用户和第二GUI视图的UI元素的交互相对应的用户输入,执行与由GUI视图数据指定的UI元素相关联的动作。
示例16:示例13至15中任一项的移动计算设备,其中:GUI视图数据指定与第二GUI视图相关联的一个或多个资源;所述一个或多个资源未被捆绑在GUI视图数据中;以及,能够由所述至少一个处理器执行以输出第二GUI视图以在显示设备处显示的指令进一步能够由所述至少一个处理器执行以:检索所述一个或多个资源;以及,输出与第二GUI视图相关联的所述一个或多个资源以在显示设备处显示。
示例17:示例16的移动计算设备,其中:能够由所述至少一个处理器执行以检索所述一个或多个资源的指令进一步能够由所述至少一个处理器执行以响应于确定GUI视图数据指定与第二GUI视图相关联的所述一个或多个资源,至少部分地基于与所述一个或多个资源相关联的一个或多个资源版本,确定所述一个或多个资源被缓存在移动计算设备的资源缓存中;以及,能够由所述至少一个处理器执行以输出与第二GUI视图相关联的所述一个或多个资源的指令进一步能够由所述至少一个处理器执行以输出在资源缓存中缓存的所述一个或多个资源以在显示设备处显示。
示例18:示例16的移动计算设备,其中:所述一个或多个资源包括与第二GUI视图相关联的多个资源;能够由所述至少一个处理器执行以检索所述一个或多个资源的指令进一步能够由所述至少一个处理器执行以响应于确定GUI视图数据指定与第二GUI视图相关联的多个资源,向资源提供器发送对所述多个资源中的每个相应资源的相应请求;以及,能够由所述至少一个处理器执行以输出包括所述一个或多个资源的GUI视图以在显示设备处显示的指令进一步能够由所述至少一个处理器执行以响应于从资源提供器接收所述多个资源中的资源,输出资源以在显示设备处显示。
示例19:示例18的移动计算设备,其中:资源是位图图像;以及,能够由所述至少一个处理器执行以输出资源以在显示设备处显示的指令进一步能够由所述至少一个处理器执行以执行从所述至少一个处理器的处理器缓存到显示设备的屏幕缓冲区中的资源的直接存储器访问,以输出资源以在显示设备处显示。
示例20:一种计算机可读存储介质,其上存储有指令,所述指令在被执行时,使一个或多个处理器:从视图提供器接收图形用户界面(GUI)视图数据,所述数据对于GUI视图集合中的每个相应的GUI视图指定相应的平台中立布局描述和相应的GUI视图作为相关的GUI视图的相应的一个或多个条件;至少部分地基于由GUI视图数据指定的GUI视图的一个或多个条件,从GUI视图集合中将GUI视图确定为相关GUI视图;以及,响应于将GUI视图确定为相关GUI视图,至少部分地基于针对由GUI视图数据指定的GUI视图的平台中立布局描述,输出GUI视图以在显示设备处显示。
示例21:一种方法包括:由移动计算设备接收与GUI视图相关联的图形用户界面(GUI)视图数据;由移动计算设备生成平台特定指令,用于至少部分地基于GUI视图数据生成GUI视图;以及,由移动计算设备执行平台特定指令以输出GUI视图以供显示。
示例22:示例21的方法,其中,GUI视图数据包括序列化的结构化数据。
示例23:示例21和22中任一项的方法,其中,GUI视图数据被生成为协议缓冲器。
示例24:示例21至23中任一项的方法,其中,GUI视图数据包括平台中立的布局描述,用于绘制GUI视图的布局。
示例25:示例21至24中任一项的方法,其中,GUI视图数据包括指定视图集合和用于更新GUI视图以包括来自该视图集合的视图的一个或多个条件的时间线数据。
示例26:示例25的方法进一步包括由移动计算设备在时间线缓存中缓存时间线数据。
示例27:示例26的方法进一步包括由移动计算设备至少部分地基于时间线数据来确定是否更新GUI视图以包括来自在时间线缓存中缓存的视图集合的相关视图;以及,响应于确定更新GUI视图,由移动计算设备更新GUI视图以包括在时间线缓存中缓存的相关视图。
示例28:示例21至27中任一项的方法,其中,GUI视图数据指定要响应于用户与GUI视图的一个或多个交互而执行的一个或多个动作。
示例29:示例28的方法进一步包括:由移动计算设备检测用户与GUI视图的交互;响应于检测到用户与GUI视图的交互,基于由GUI视图数据指定的一个或多个动作,确定与用户和GUI视图的交互相对应的动作;以及,由移动计算设备执行与用户和GUI视图的交互相对应的动作。
示例30:示例29的方法,其中,与用户和GUI视图交互相对应的动作包括访问到在移动计算设备上运行的本机应用的深链接。
示例31:示例29和30中任一项的方法,其中,与用户和GUI视图交互相对应的动作包括访问到远程网络资源的链接。
示例32:示例21至31中任一项的方法,其中,GUI视图数据包括在GUI视图数据中捆绑的一个或多个资源。
示例33:示例21至31中任一项的方法,其中,GUI视图数据不包括在GUI视图中包括的一个或多个资源。
示例34:示例33的方法进一步包括:由移动计算设备发送对在GUI视图中包括的一个或多个资源的请求;以及由移动计算设备接收在GUI视图中包括的所述一个或多个资源;其中,由移动计算设备执行平台特定指令以输出GUI视图以供显示包括输出包括所述一个或多个资源的GUI视图以供显示。
示例35:示例34中任一项的方法进一步包括由移动计算设备将所述一个或多个资源存储在资源缓存中。
示例36:示例21至35中任一项的方法,其中,接收GUI视图数据包括:由移动计算设备经由网络从GUI视图数据提供器接收GUI视图数据。
示例37:示例21至36中任一项的方法,其中,移动计算设备包括低功率处理器。
示例38:示例21至37中任一项的方法,其中,移动计算设备包括高功率处理器和低功率处理器两者,其中,低功率处理器被配置为比高功率处理器消耗更少的功率。
示例39:示例21至36中任一项的方法,其中,移动计算设备包括高功率处理器并且不包括低功率处理器。
示例40:示例21至38中任一项的方法,其中:生成用于至少部分地基于GUI视图数据生成GUI视图的平台特定指令包括由在移动计算设备的低功率处理器上执行的渲染器生成用于生成特定于低功率处理器的GUI视图的指令;由移动计算设备执行平台特定指令以输出GUI视图以供显示包括:由低功率处理器执行用于生成特定于低功率处理器以输出GUI视图以供显示的GUI视图的指令。
示例41:示例40的方法,其中,用于生成特定于低功率处理器的GUI视图的指令包括用于将GUI视图绘制到显示设备的指令。
示例42:示例21至41中任一项的方法,其中,接收GUI视图数据包括:由移动计算设备的高功率处理器从GUI视图数据提供器接收GUI视图数据;以及,由移动计算设备的低功率处理器从高功率处理器接收GUI视图数据。
示例43:一种移动计算设备包括:至少一个处理器;以及,计算机可读存储设备,其被配置为存储可由所述至少一个处理器执行的指令,所述指令:接收与GUI视图相关联的图形用户界面(GUI)视图数据;至少部分地基于GUI视图数据生成用于生成GUI视图的平台特定指令;以及执行平台特定指令以输出GUI视图以供显示。
示例44:示例43的移动计算设备,其中,所述至少一个处理器包括至少低功率处理器。
示例45:示例43和44中任一项的移动计算设备,其中,在计算机可读存储设备上存储的指令进一步能够由所述至少一个处理器执行以执行示例22至42中任一项的方法。
示例46:一种移动计算设备,包括用于执行示例21至42的任何组合的方法的一个或多个装置。
示例47:一种计算机可读存储介质,其上存储有指令,所述指令在被执行时使一个或多个处理器:接收与GUI视图相关联的图形用户界面(GUI)视图数据;至少部分地基于GUI视图数据生成用于生成GUI视图的平台特定指令;以及执行平台特定指令以输出GUI视图以供显示。
示例48:一种计算机可读存储介质,其上存储有指令,所述指令在被执行时使一个或多个处理器执行示例21至42的任何组合的方法。
在一个或多个示例中,可以以硬件、软件、固件或其任何组合来实施所描述的功能。如果以软件实现,则可以将功能作为一个或多个指令或代码在计算机可读介质上存储或传输,并由基于硬件的处理单元执行。计算机可读介质可以包括与诸如数据存储介质的有形介质相对应的计算机可读存储介质,或包括促进计算机程序例如根据通信协议从一处传送到另一处的任何介质的通信介质。以此方式,计算机可读介质通常可以对应于:(1)非暂时性的有形计算机可读存储介质或(2)诸如信号或载波的通信介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问以检索用于实现本公开中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这样的计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、闪速存储器或可用于以指令或数据结构的形式存储所期望的程序代码并可以由计算机访问的任何其他存储介质。而且,任何连接都被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或诸如红外线、无线电和微波的无线技术从网站、服务器或其他远程源传输指令,则同轴电缆、光纤电缆、双绞线、DSL或诸如红外、无线电和微波的无线技术都被包括在介质的定义中。然而,应该理解的是,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂时性介质,而是代替地针对非暂时性有形存储介质。本文使用的磁盘和光盘包括致密盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常以磁性方式再现数据,而光盘通过激光以光学方式再现数据。上述的组合也应该被包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,诸如,一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等同的集成或离散逻辑电路系统。因此,所使用的术语“处理器”可以指任何前述结构或适用于实现本文所描述的技术的任何其他结构。另外,在一些方面中,可以在专用硬件和/或软件模块内提供本文所描述的功能性。而且,可以完全在一个或多个电路或逻辑元件中实现这些技术。
可以在包括无线手持机、集成电路(IC)或IC集合(例如,芯片集合)的各种各样的设备或装置中实现本公开的技术。在本公开中描述了各种部件、模块或单元以强调被配置为执行所公开的技术的设备的功能方面,但是不一定需要通过不同的硬件单元的实现。相反,如上所述,各种单元可以被组合在硬件单元中,或者由互操作性硬件单元的集合——包括如上所述的一个或多个处理器——结合合适的软件和/或固件来提供。
应当认识到,取决于实施例,本文描述的任何方法的某些动作或事件可以以不同的序列执行,可以被添加、合并或完全省略(例如,并非全部描述的动作或事件对于该方法的实践是必需的)。此外,在某些实施例中,动作或事件可以例如通过多线程处理、中断处理或多个处理器并发执行,而不是顺序执行。
在一些示例中,计算机可读存储介质包括非暂时性介质。术语“非暂时性”指示存储介质没有被体现在载波或传播信号中。在某些示例中,非暂时性存储介质可以存储可以随时间改变(例如,在RAM或高速缓存中)的数据。
已经描述了各种示例。这些和其他示例在所附权利要求的范围内。
Claims (20)
1.一种方法,包括:
由移动计算设备的一个或多个处理器从视图提供器接收图形用户界面GUI视图数据,所述GUI视图数据为GUI视图集合中的每个相应GUI视图指定相应的平台中立布局描述和相应GUI视图要成为相关GUI视图的相应的一个或多个条件;
由所述一个或多个处理器至少部分地基于由所述GUI视图数据指定的所述GUI视图的一个或多个条件,从所述GUI视图集合中将GUI视图确定为所述相关GUI视图;以及
响应于将所述GUI视图确定为所述相关GUI视图,由所述一个或多个处理器至少部分地基于由所述GUI视图数据指定的所述GUI视图的平台中立布局描述,输出用于在显示设备处显示的所述GUI视图。
2.根据权利要求1所述的方法,进一步包括:
响应于接收到所述GUI视图数据,由所述一个或多个处理器在存储器中缓存所述GUI视图数据;
至少部分地基于由在所述存储器中缓存的所述GUI视图数据指定的第二GUI视图的一个或多个条件,由所述一个或多个处理器从所述GUI视图集合中将所述第二GUI视图确定为所述相关GUI视图;以及
响应于将所述第二GUI视图确定为所述相关GUI视图,由所述一个或多个处理器至少部分地基于由在所述存储器中缓存的所述GUI视图数据指定的所述第二GUI视图的平台中立布局描述,输出用于在所述显示设备处显示的所述第二GUI视图。
3.根据权利要求2所述的方法,进一步包括:
至少部分地基于由所述GUI视图数据指定的所述GUI视图的所述一个或多个条件,由所述一个或多个处理器从所述GUI视图集合中确定所述GUI视图不再是所述相关GUI视图;以及
响应于确定所述GUI视图不再是所述相关GUI视图,由所述一个或多个处理器停止输出用于在所述显示设备处显示的所述GUI视图。
4.根据权利要求3所述的方法,其中:
所述第二GUI视图的所述一个或多个条件和所述第二GUI视图的所述一个或多个条件各自与以下中的一个或多个相关联:时间段、位置或活动;以及
至少部分地基于所述第二GUI视图的所述一个或多个条件从所述GUI视图集合中将所述第二GUI视图确定为所述相关GUI视图进一步包括:由所述一个或多个处理器确定与所述移动计算设备相关联的场境信息匹配与所述第二GUI视图相关联的所述一个或多个条件。
5.根据权利要求2所述的方法,其中,所述GUI视图数据指定与所述第二GUI视图的一个或多个用户界面UI元素相关联的一个或多个资源,进一步包括:
响应于接收到与用户和所述第二GUI视图的UI元素的交互相对应的用户输入,由所述一个或多个处理器执行与由所述GUI视图数据指定的所述UI元素相关联的动作。
6.根据权利要求5所述的方法,其中,所述动作是访问指向在所述移动计算设备处执行的本机应用的深链接。
7.根据权利要求2所述的方法,其中,所述GUI视图数据指定与所述第二GUI视图相关联的一个或多个资源,其中,所述一个或多个资源未被捆绑在所述GUI视图数据中,并且其中,输出所述第二GUI视图以在所述显示设备显示进一步包括:
由所述一个或多个处理器检索所述一个或多个资源;以及
由所述一个或多个处理器输出与用于在所述显示设备处显示的所述第二GUI视图相关联的所述一个或多个资源。
8.根据权利要求7所述的方法,其中:
检索所述一个或多个资源进一步包括:响应于确定所述GUI视图数据指定与所述第二GUI视图相关联的所述一个或多个资源,至少部分地基于与所述一个或多个资源相关联的一个或多个资源版本来确定所述一个或多个资源被缓存在所述移动计算设备的资源缓存中;以及
输出与所述第二GUI视图相关联的所述一个或多个资源进一步包括:由所述一个或多个处理器输出在所述资源缓存中缓存的所述一个或多个资源以在所述显示设备处显示。
9.根据权利要求7所述的方法,其中:
所述一个或多个资源包括与所述第二GUI视图相关联的多个资源;
检索所述一个或多个资源进一步包括:响应于确定所述GUI视图数据指定了与所述第二GUI视图相关联的所述多个资源,由所述一个或多个处理器向资源提供器发送对所述多个资源中的每个相应资源的相应请求;以及
其中,输出包括所述一个或多个资源的所述GUI视图以在所述显示设备处显示进一步包括:响应于从所述资源提供器接收所述多个资源中的资源,由所述一个或多个处理器输出所述资源以在所述显示设备处显示。
10.根据权利要求9所述的方法,其中,所述资源是位图图像,并且其中,输出所述资源以在所述显示设备处显示进一步包括:
由所述一个或多个处理器执行从所述一个或多个处理器中的处理器缓存到所述显示设备的屏幕缓冲区中的所述资源的直接存储器访问,以输出所述资源以在所述显示设备处显示。
11.根据权利要求1所述的方法,其中:
所述移动计算设备包括高功率处理器和低功率处理器两者,其中,所述低功率处理器被配置为比所述高功率处理器消耗更少的功率;以及
至少部分地基于由所述GUI视图数据指定的所述GUI视图的所述平台中立布局描述输出所述GUI视图以在所述显示设备处显示进一步包括:
由在所述移动计算设备的所述低功率处理器上执行的渲染器基于由所述GUI视图数据指定的所述GUI视图的所述平台中立布局描述,生成用于所述低功率处理器生成所述GUI视图的本机指令;以及
由所述低功率处理器执行所述本机指令以输出所述GUI视图以在所述显示设备处显示。
12.一种移动计算设备,包括:
至少一个处理器;以及
计算机可读存储设备,被配置为存储能够由所述至少一个处理器执行的指令,所述指令:
从视图提供器接收图形用户界面GUI视图数据,所述GUI视图数据对于GUI视图集合中的每个相应的GUI视图指定相应的平台中立布局描述和相应的GUI视图作为相关GUI视图的相应的一个或多个条件;
至少部分地基于由所述GUI视图数据指定的所述GUI视图的一个或多个条件,从所述GUI视图集合中将GUI视图确定为所述相关GUI视图;以及
响应于将所述GUI视图确定为所述相关GUI视图,至少部分地基于用于由所述GUI视图数据指定的所述GUI视图的平台中立布局描述,输出所述GUI视图以在显示设备处显示。
13.根据权利要求12所述的移动计算设备,其中,所述指令进一步能够由所述至少一个处理器执行以:
响应于接收到所述GUI视图数据,将所述GUI视图数据缓存在存储器中;
至少部分地基于由缓存在所述存储器中的所述GUI视图数据指定的第二GUI视图的一个或多个条件,从所述GUI视图集合中将所述第二GUI视图确定为所述相关GUI视图;以及
响应于将所述第二GUI视图确定为所述相关GUI视图,至少部分基于由在所述存储器中缓存的所述GUI视图数据指定的所述第二GUI视图的平台中立布局描述,输出所述第二GUI视图以在所述显示设备处显示。
14.根据权利要求13所述的移动计算设备,其中:
所述第二GUI视图的所述一个或多个条件和所述第二GUI视图的所述一个或多个条件各自与以下中的一个或多个相关联:时间段、位置或活动;以及
能够由所述至少一个处理器执行以至少部分地基于所述第二GUI视图的所述一个或多个条件从所述GUI视图集合中将所述第二GUI视图确定为所述相关GUI视图的所述指令进一步能够由所述至少一个处理器执行,以确定与所述移动计算设备相关联的场境信息匹配与所述第二GUI视图相关联的所述一个或多个条件。
15.根据权利要求13所述的移动计算设备,其中:
所述GUI视图数据指定与所述第二GUI视图的一个或多个用户界面UI元素相关联的一个或多个资源;以及
所述指令进一步能够由所述至少一个处理器执行以响应于接收到与用户和所述第二GUI视图的UI元素的交互相对应的用户输入,执行与由所述GUI视图数据指定的所述UI元素相关联的动作。
16.根据权利要求13所述的移动计算设备,其中:
所述GUI视图数据指定与所述第二GUI视图相关联的一个或多个资源;
所述一个或多个资源未被捆绑在所述GUI视图数据中;以及
能够由所述至少一个处理器执行以输出所述第二GUI视图以在所述显示设备处显示的所述指令进一步能够由所述至少一个处理器执行以:
检索所述一个或多个资源;以及
输出与用于在所述显示设备处显示的所述第二GUI视图相关联的所述一个或多个资源。
17.根据权利要求16所述的移动计算设备,其中:
能够由所述至少一个处理器执行以检索所述一个或多个资源的所述指令进一步能够由所述至少一个处理器执行以响应于确定所述GUI视图数据指定与所述第二GUI视图相关联的所述一个或多个资源,至少部分地基于与所述一个或多个资源相关联的一个或多个资源版本,确定所述一个或多个资源被缓存在所述移动计算设备的资源缓存中;以及
能够由所述至少一个处理器执行以输出与所述第二GUI视图相关联的所述一个或多个资源的所述指令进一步能够由所述至少一个处理器执行以输出在所述资源缓存中缓存的所述一个或多个资源以在所述显示设备处显示。
18.根据权利要求16所述的移动计算设备,其中:
所述一个或多个资源包括与所述第二GUI视图相关联的多个资源;
能够由所述至少一个处理器执行以检索所述一个或多个资源的所述指令进一步能够由所述至少一个处理器执行以响应于确定所述GUI视图数据指定与所述第二GUI视图相关联的所述多个资源,向资源提供器发送对所述多个资源中的每个相应资源的相应请求;以及
能够由所述至少一个处理器执行以输出包括所述一个或多个资源的所述GUI视图以在所述显示设备处显示的所述指令进一步能够由所述至少一个处理器执行以响应于从所述资源提供器接收所述多个资源中的资源,输出所述资源以在所述显示设备处显示。
19.根据权利要求18所述的移动计算设备,其中:
所述资源是位图图像;以及
能够由所述至少一个处理器执行以输出所述资源以在所述显示设备处显示的指令进一步能够由所述至少一个处理器执行以执行从所述至少一个处理器的处理器缓存到所述显示设备的屏幕缓冲区中的所述资源的直接存储器访问,以输出所述资源以在所述显示设备处显示。
20.一种其上存储有指令的计算机可读存储介质,所述指令在被执行时使一个或多个处理器:
从视图提供器接收图形用户界面GUI视图数据,所述GUI视图数据对于GUI视图集合中的每个相应的GUI视图指定相应的平台中立布局描述和所述相应的GUI视图作为相关GUI视图的相应的一个或多个条件;
至少部分地基于由所述GUI视图数据指定的所述GUI视图的一个或多个条件,从所述GUI视图集合中将GUI视图确定为所述相关GUI视图;以及
响应于将所述GUI视图确定为所述相关GUI视图,至少部分地基于针对由所述GUI视图数据指定的所述GUI视图的平台中立布局描述,输出所述GUI视图以在所述显示设备处显示。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063059793P | 2020-07-31 | 2020-07-31 | |
US63/059,793 | 2020-07-31 | ||
PCT/US2021/043191 WO2022026394A1 (en) | 2020-07-31 | 2021-07-26 | Platform independent lightweight user interface framework for glanceable surfaces |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116157776A true CN116157776A (zh) | 2023-05-23 |
Family
ID=77398663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180057933.2A Pending CN116157776A (zh) | 2020-07-31 | 2021-07-26 | 用于可浏览的表面的独立于平台的轻量级用户界面框架 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11941416B2 (zh) |
EP (1) | EP4172762A1 (zh) |
CN (1) | CN116157776A (zh) |
WO (1) | WO2022026394A1 (zh) |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080244394A1 (en) * | 2007-03-29 | 2008-10-02 | Boyer John M | Display and layout flow of relatively positioned user interface items |
US20080307330A1 (en) * | 2007-06-08 | 2008-12-11 | Apple Inc. | Visualization object divet |
US8826158B1 (en) * | 2011-12-14 | 2014-09-02 | The United States Of America As Represented By The Director, National Security Agency | Device for and method of determining changes to GUI |
US20130263053A1 (en) * | 2012-03-29 | 2013-10-03 | Charles G. Tritschler | Media widget to interface with multiple underlying applications |
US9377935B2 (en) * | 2013-07-18 | 2016-06-28 | Aspect Imaging Ltd. | System and method for predicting preferred data representation |
US8775844B1 (en) * | 2013-08-29 | 2014-07-08 | Google Inc. | Dynamic information adaptation for a computing device having multiple power modes |
US9753527B2 (en) * | 2013-12-29 | 2017-09-05 | Google Technology Holdings LLC | Apparatus and method for managing graphics buffers for a processor in sleep mode |
US9032321B1 (en) * | 2014-06-16 | 2015-05-12 | Google Inc. | Context-based presentation of a user interface |
US10878361B2 (en) * | 2015-06-17 | 2020-12-29 | Netsuite, Inc. | System and method to generate interactive user interface for visualizing and navigating data or information |
US10140100B2 (en) | 2016-03-04 | 2018-11-27 | Google Llc | Device common model interface |
US20170331901A1 (en) | 2016-05-11 | 2017-11-16 | Fitbit, Inc. | Companion app to cooperate with an integrated tracker app |
US10620920B2 (en) * | 2016-05-17 | 2020-04-14 | Google Llc | Automatic graphical user interface generation from notification data |
EP3264351A1 (en) * | 2016-06-30 | 2018-01-03 | Verint Systems UK Limited | System and method of embedding and launching a form from third-party knowledge content |
KR102641940B1 (ko) * | 2016-11-03 | 2024-02-29 | 삼성전자주식회사 | 디스플레이 장치 및 그 제어 방법 |
WO2019138336A1 (en) * | 2018-01-09 | 2019-07-18 | Cleartrail Technologies Private Limited | Recommending visual and execution templates to enable automation of control and data exploration across systems |
CN108664285A (zh) * | 2018-05-10 | 2018-10-16 | Oppo广东移动通信有限公司 | 应用程序预加载方法、装置、存储介质及移动终端 |
US20230245247A1 (en) * | 2018-08-28 | 2023-08-03 | Meta Platforms, Inc. | Online Platform for Digital Content via Blockchain |
US10671236B2 (en) * | 2018-09-20 | 2020-06-02 | Salesforce.Com, Inc. | Stateful, contextual, and draggable embedded widget |
US20200106853A1 (en) | 2018-10-02 | 2020-04-02 | North Inc. | Efficient cloud-based data transfers with a wearable computing device |
EP3963441A4 (en) * | 2019-04-30 | 2023-01-11 | Walkme Ltd. | GUI ELEMENT ACQUISITION USING A NUMBER OF ALTERNATE GUI ELEMENT REPRESENTATIONS |
-
2021
- 2021-07-26 EP EP21756127.3A patent/EP4172762A1/en active Pending
- 2021-07-26 CN CN202180057933.2A patent/CN116157776A/zh active Pending
- 2021-07-26 US US18/006,352 patent/US11941416B2/en active Active
- 2021-07-26 WO PCT/US2021/043191 patent/WO2022026394A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
WO2022026394A1 (en) | 2022-02-03 |
US11941416B2 (en) | 2024-03-26 |
EP4172762A1 (en) | 2023-05-03 |
US20230315494A1 (en) | 2023-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180150443A1 (en) | Application program interface for managing complication data | |
US10467025B2 (en) | Managing delivery of code and dependent data using application containers | |
KR102180995B1 (ko) | 미래 액션들을 위한 사용자 인터페이스 데이터 캐싱 최적화 | |
US9625987B1 (en) | Updating and displaying information in different power modes | |
US11451508B2 (en) | Network messaging for paired devices | |
US8775844B1 (en) | Dynamic information adaptation for a computing device having multiple power modes | |
WO2018132152A1 (en) | Application extension for generating automatic search queries | |
CN110678842B (zh) | 动态生成针对与操作系统用户界面元素的用户交互的任务快捷方式 | |
US10048837B2 (en) | Target selection on a small form factor display | |
US10387161B2 (en) | Techniques for capturing state information and performing actions for threads in a multi-threaded computing environment | |
CN110431582B (zh) | 由计算设备输出再接涉提醒 | |
EP2739097B1 (en) | A mobile telecommunication device in a cellular-digital wireless telecommunication system and a method for operating thereof | |
CN115454286A (zh) | 应用数据的处理方法、装置和终端设备 | |
US9239647B2 (en) | Electronic device and method for changing an object according to a bending state | |
EP3336724A1 (en) | Zoom-adaptive data granularity to achieve a flexible high-performance interface for a geospatial mapping system | |
US10558332B2 (en) | Computationally efficient human-computer interface for web browser tab user interface button | |
CN111930509A (zh) | 智能眼镜的数据处理方法、装置、存储介质及电子设备 | |
US11941416B2 (en) | Platform independent lightweight user interface framework for glanceable surfaces | |
CN106230919B (zh) | 一种文件上传的方法和装置 | |
WO2022057563A1 (zh) | 一种双系统中用户界面的显示方法及电子设备 | |
CN113835697A (zh) | 事件响应方法和装置 | |
CN113110941B (zh) | 使用应用容器管理代码和依赖性数据的传递 | |
CN115982110A (zh) | 文件运行方法、装置、计算机设备及可读存储介质 | |
US9471123B2 (en) | Reducing unnecessary power consumed by peripheral devices while displaying a moving image | |
CN116684473A (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 |