CN117716337A - 计算设备上的应用兼容性 - Google Patents

计算设备上的应用兼容性 Download PDF

Info

Publication number
CN117716337A
CN117716337A CN202280052181.5A CN202280052181A CN117716337A CN 117716337 A CN117716337 A CN 117716337A CN 202280052181 A CN202280052181 A CN 202280052181A CN 117716337 A CN117716337 A CN 117716337A
Authority
CN
China
Prior art keywords
application
user interface
compatibility
resizing
processor
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
Application number
CN202280052181.5A
Other languages
English (en)
Inventor
桑杰·纳特瓦尼
本·麦坎尼
卡足克·塔克斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN117716337A publication Critical patent/CN117716337A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction 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/04845Interaction 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 for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction 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/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Abstract

根据一方面,一种方法包括:将应用安装在计算设备上;确定是否激活应用的兼容性模式;响应于激活兼容性模式,确定对应用的用户界面的应用窗口尺寸或形状的改变的限制;以及呈现定义用于应用的用户界面的多个预定义尺寸选项的用户界面对象。

Description

计算设备上的应用兼容性
相关申请的交叉引用
本申请要求于2021年7月28日提交的标题为“APPLICATION COMPATIBILITY ON ACOMPUTING DEVICE(计算设备上的应用兼容性)”的美国非临时专利申请No.17/443,865的继续申请,并且要求其优先权,其公开内容通过引用整体并入本文。
背景技术
一些应用可以在多个操作系统环境上操作。例如,应用可以在具有第一类型的操作系统的第一计算设备上执行,并且相同的应用也可以在具有第二类型的操作系统的第二计算设备上执行。在一些示例中,应用可以被设计(例如,被优化)为在第一类型的操作系统(而不是第二类型)上执行,其中,在第二类型的操作系统上的应用的执行可以引起调整尺寸和/或呈现问题。例如,移动应用通常被设计(例如,被优化)为在诸如智能电话或平板的较小屏幕上执行。然而,一些移动应用也能够在具有诸如膝上型或台式计算机的较大屏幕的计算设备上执行。例如,用户可以在她的智能电话上下载移动应用。此外,用户可以能够在她的膝上型计算机上下载相同的移动应用,但是在一些示例中,移动应用可能不被优化为在膝上型计算机的较大显示屏上操作,这可能导致呈现问题。
发明内容
根据一方面,一种方法包括:将应用安装在计算设备上;确定是否激活应用的兼容性模式;响应于激活兼容性模式,确定对应用的用户界面的应用窗口尺寸或形状的改变的限制;以及呈现定义用于应用的用户界面的多个预定义尺寸选项的用户界面对象。可以提供被配置为执行该方法的操作的装置。此外,可以提供计算机可读介质以执行该方法的操作。
根据一些方面,方法、装置或计算机可读介质可以包括以下特征中的一个或多个(或其任何组合),诸如在计算设备的显示器上呈现应用的用户界面;接收用于对在显示器上的用户界面调整尺寸或重新成形的调整尺寸请求;以及不允许调整尺寸请求。特征可以包括:调整要在应用的用户界面内显示的应用内容的用户界面标度;以及根据调整后的用户界面标度在用户界面中呈现应用内容。特征可以包括将要在用户界面中显示的应用内容的显示尺寸调整为小于或等于用户界面的窗口尺寸。特征可以包括移除被配置为在应用的用户界面内显示的用户界面控件元素。特征可以包括在计算设备的显示器上呈现应用的用户界面,其中,响应于用户界面被呈现在显示器上而呈现用户界面对象。特征可以包括在计算设备的显示器上呈现应用的用户界面,该用户界面包括可选择的用户界面元素,其中,响应于接收到被选择的可选择用户界面元素而呈现用户界面对象。特征可以包括改变用户界面的区域以指示调整尺寸被限制并且在计算设备的显示器上呈现具有改变的部分的用户界面。特征可以包括启用用于应用的功能的热键并且在应用的用户界面中显示关于热键的信息。特征可以包括其中应用是移动应用,并且移动应用是被配置为在移动计算设备的移动操作系统上执行的本地应用。特征可以包括获得至少一个兼容性信号,该至少一个兼容性信号包括应用列表或调整尺寸能力值中的至少一个,并且基于至少一个兼容性信号来确定激活兼容性模式。特征可以包括:通过网络向能够由服务器计算机执行的应用商店平台发送兼容性请求;通过网络从应用商店平台接收兼容性响应;以及基于兼容性响应来确定激活兼容性模式。特征可以包括获得与应用相关联的元数据并且基于元数据来确定激活兼容性模式。特征可以包括:经由进程间通信链接向被配置为在计算设备上执行应用的软件容器或虚拟机发送兼容性请求;经由进程间通信链接从软件容器接收兼容性响应;以及基于兼容性响应来确定激活兼容性模式。
根据一方面,一种装置包括至少一个处理器和存储可执行指令的非暂时性计算机可读介质,该可执行指令在由至少一个处理器执行时使得至少一个处理器:将应用安装在计算设备上;激活应用的兼容性模式,其中,兼容性模式的激活指示应用缺少功能或者具有与计算设备的操作系统不兼容的功能;响应于兼容性模式被激活,启用窗口调整尺寸锁以限制对应用的用户界面的应用窗口尺寸或形状的改变;以及呈现定义用于应用的用户界面的多个预定义尺寸选项的用户界面对象。可以提供包括装置的操作的方法。此外,可以提供计算机可读介质以执行装置的操作。
根据一些方面,方法、装置或计算机可读介质可以包括以下特征中的一个或多个(或其任何组合):获得至少一个兼容性信号,该至少一个兼容性信号包括应用列表或调整尺寸能力值中的至少一个;以及基于至少一个兼容性信号来确定激活兼容性模式。特征可以包括:通过网络向能够由服务器计算机执行的应用商店平台发送兼容性请求;通过网络从应用商店平台接收兼容性响应;以及基于兼容性响应来确定激活兼容性模式。特征可以包括获得与应用相关联的元数据,并且基于元数据来确定激活兼容性模式。特征可以包括:经由进程间通信链接向被配置为在计算设备上执行应用的软件容器或虚拟机发送兼容性请求;经由进程间通信链接从软件容器接收兼容性响应;以及基于兼容性响应来确定激活兼容性模式。特征可以包括呈现操作系统设置界面,该操作系统设置界面包括允许用户选择是否启用窗口调整尺寸锁的设置。特征可以包括呈现指示应用具有与计算设备的操作系统不兼容的功能的用户界面对象。
根据一方面,一种存储可执行指令的非暂时性计算机可读介质,该可执行指令在由至少一个处理器执行时使得至少一个处理器:将应用安装在计算设备上;激活应用的兼容性模式,其中,兼容性模式的激活指示应用缺少功能或者具有与计算设备的操作系统不兼容的功能;响应于兼容性模式被激活,启用窗口调整尺寸锁以限制对应用的用户界面的应用窗口尺寸的改变;调整要在应用的用户界面内呈现的应用内容的用户界面标度;根据调整后的用户界面标度,在应用的用户界面中呈现应用内容。可以提供一种执行非暂时性计算机可读介质的操作的装置。此外,可以提供执行非暂时性计算机可读介质的操作的方法。
根据一些方面,方法、设备或计算机可读介质可以包括以下特征中的一个或多个(或其任何组合),呈现定义用于应用的用户界面的多个预定义尺寸选项的用户界面对象。特征可以包括:接收对用户界面调整尺寸或重新成形的调整尺寸请求;响应于调整尺寸请求而呈现用户界面对象,该用户界面对象包括用于重新启动应用的可选择控件;以及响应于接收到对可选择控件的选择而重新启动应用,使得用户界面根据调整尺寸请求在显示器上被调整尺寸。特征可以包括检测光标图标在显示器上的位置,并且响应于在用户界面的边缘的阈值距离内检测到光标图标的位置而改变光标图标的形状。特征可以包括:启用应用的功能的拖放特征;以及在应用的用户界面上呈现拖放界面,该拖放界面被配置为允许用户将数据移动到应用中。
除了本文中描述的方法之外,公开了一种装置,该装置包括至少一个处理器和存储可执行指令的非暂时性计算机可读介质,该可执行指令在由至少一个处理器执行时使至少一个处理器执行方法的任一项。还公开了一种存储可执行指令的非暂时性计算机可读介质,该可执行指令在由至少一个处理器执行时使至少一个处理器执行本文中公开的方法的任一项。还公开了一种计算机程序产品,其包括使一个或多个处理器执行本文中公开的方法中的任一项的指令。类似地,在装置或计算机可读介质方面呈现本公开的情况下,还公开了对应的方法。在附图和以下描述中阐述了一个或多个实施方式的细节。根据说明书和附图以及权利要求,其他特征将是显而易见的。
附图说明
图1A图示了根据一方面的用于启用一个或多个兼容性特征以改善在计算设备上执行的应用的兼容性的系统。
图1B图示了根据一方面的兼容性特征的非限制性示例。
图1C图示了根据一方面的应用的兼容性状态。
图1D图示了根据一方面的用于确定是否激活应用的兼容性模式的兼容性信号。
图2A图示了根据一方面的操作系统的示例。
图2B图示了根据一方面的用于使用图2A的操作系统来确定应用的兼容性状态的流程图。
图3A至图3E图示了根据各方面的用于兼容性模式内的应用的用户界面。
图4图示了根据一方面的用于兼容性模式内的应用的用户界面。
图5A至图5D图示了根据各方面的用于兼容性模式内的应用的用户界面。
图6A至图6E图示了根据各方面的关于兼容性模式内的应用的光标图标。
图7图示了根据一方面的用于兼容性模式内的应用的用户界面。
图8图示了根据一方面的用于兼容性模式内的应用的用户界面。
图9图示了根据一方面的用于兼容性模式内的应用的用户界面。
图10图示了根据一方面的用于兼容性模式内的应用的用户界面。
图11图示了根据一方面的用于兼容性模式内的应用的用户界面。
图12图示了根据一方面的用于兼容性模式内的应用的用户界面。
图13图示了根据一方面的用于兼容性模式内的应用的用户界面。
图14图示了根据一方面的用于兼容性模式内的应用的用户界面。
图15图示了根据一方面的用于兼容性模式内的应用的用户界面。
图16图示了根据一方面的操作系统设置界面。
图17A图示了根据一方面的用于其中兼容性模式被停用的应用的用户界面。
图17B图示了根据一方面的用于其中兼容性模式被激活的应用的用户界面。
图18图示了根据一方面的用于兼容性模式内的应用的用户界面。
图19图示了根据一方面的用于兼容性模式内的应用的用户界面。
图20图示了根据一方面的用于兼容性模式内的应用的用户界面。
图21图示了根据一方面的用于兼容性模式内的应用的用户界面。
图22图示了描绘根据一方面的系统的示例操作的流程图。
图23图示了根据一方面的计算机设备和移动计算机设备的示例。
具体实施方式
本公开涉及能够改善计算设备上的非优化应用的兼容性从而改善计算设备上的应用的执行和用户体验的系统和/或方法。在一些示例中,应用包括移动应用,其被设计或优化为在移动环境(例如,智能电话或平板)中执行,但是也能够在诸如膝上型或台式计算机的较大计算设备(例如,具有比典型移动环境更大的显示器的设备)上安装和执行。在一些示例中,移动应用未被优化为在较大的计算设备上执行,这能够导致与呈现或调整尺寸问题(包括应用的突然终止)相关联的技术问题。更一般地,应用可以被设计用于第一类型的显示器(和/或第一类型的操作系统),但是也能够使用第二类型的显示器(和/或第二类型的操作系统)执行,其中使用第二类型的显示器(例如,不同形状因子)和/或使用第二类型的操作系统(例如,不同的操作系统)的应用的执行能够引起与呈现或调整尺寸问题相关联的技术问题。然而,本文中讨论的实施例提供了技术解决方案,其中窗口管理器被配置为启用一个或多个兼容性特征,从而提供改善计算设备上的应用的执行和用户体验的一个或多个技术益处。
例如,响应于应用被安装在计算设备上,状态确定引擎可以确定激活应用的兼容性模式,这可以使一个或多个兼容性特征被启用。在一些示例中,兼容性模式的激活可以指示应用具有与计算设备的操作系统不兼容的功能和/或具有与计算设备的显示器不兼容的功能。在一些示例中,兼容性模式的激活可以指示应用缺少可以使计算设备上的应用的执行和/或用户体验退化的一个或多个功能。
例如,能够由智能电话执行的移动应用可以被设计为支持一个或少量窗口布局(例如,小布局尺寸、大布局尺寸等)。同一移动应用可以被安装在诸如膝上型或台式计算机(也称为桌面环境)的较大计算设备上。在桌面环境中,应用的用户界面(或窗口)可以是可调整尺寸的。然而,在桌面环境中执行移动应用(例如,非优化的应用)可能导致一个或多个技术问题。例如,调整尺寸(例如,自由调整尺寸)桌面环境中的应用可能导致其突然终止,因为应用开发者可能没有考虑到窗口尺寸改变。因此,应用的显示功能可能与操作系统不兼容。
在一些示例中,应用可能错误地假定应用窗口尺寸和显示器尺寸相同。在一些示例中,应用可以被设计为保存当前窗口尺寸以便稍后使用它,但是窗口尺寸可以改变并且应用可以尝试在应用窗口不再存在的位置处的动作。除了调整尺寸不兼容性之外(或与其分离),应用可能缺少(多个)功能或具有与计算设备的操作系统和/或显示器不兼容的其他功能。例如,在显示器上呈现的应用的用户界面可以具有与其他应用不同的用户界面(UI)标度。在一些示例中,应用可以具有与诸如键盘、输入设备(例如,计算机鼠标)、触控板和/或触摸输入支持的用户输入支持相关的一个或多个不兼容性。因此,应用的输入功能可能与操作系统和/或显示器不兼容。
在一些示例中,状态确定引擎确定在应用的安装期间或之后是否激活兼容性模式。在一些示例中,状态确定引擎响应于启动请求但在显示器上呈现应用的用户界面之前确定是否激活兼容性模式。在一些示例中,在启动应用之后,一个或多个属性(例如,动态属性)可以是可用的(例如,仅可用的)。属性可以包括调整尺寸和/或定向属性。例如,取决于例如应用的哪个功能被启动,调整尺寸能力和定向对于应用可以是不同的。兼容性模式的激活可以指示应用缺少功能或者具有与计算设备的操作系统不兼容的功能。
状态确定引擎可以基于一个或多个兼容性信号来确定激活兼容性模式。兼容性信号可以是指示兼容性模式是否应当被激活的任何类型的信号(例如,应用缺少功能或者具有与操作系统不兼容的功能)。激活应用的兼容性模式的确定能够至少部分地基于(多个)兼容性信号。在一些示例中,(多个)兼容性信号包括标识多个应用的应用列表。在一些示例中,应用列表是已经被标识为针对计算设备的操作系统优化的应用的列表。如果应用不在应用列表上,则状态确定引擎可以确定激活兼容性模式。在一些示例中,应用列表是尚未针对计算设备的操作系统优化的应用的列表。如果应用在应用列表上,则状态确定引擎可以确定激活兼容性模式。
(多个)兼容性信号可以包括由调整尺寸能力确定引擎生成的调整尺寸能力值。调整尺寸能力值可以指示应用的用户界面在计算设备的显示器上是否可调整尺寸(或可重新成形)。在一些示例中,具有第一值的调整尺寸能力值可以指示该应用不可调整尺寸。如果调整尺寸能力值是第一值,则状态确定引擎可以确定激活兼容性模式。在一些示例中,具有第二值的调整尺寸能力值可以指示应用可调整尺寸。如果调整尺寸能力值是第二值,则状态确定引擎可以确定激活兼容性模式。在一些示例中,调整尺寸能力确定引擎可以分析应用并且基于该分析来确定调整尺寸能力值。在一些示例中,分析包括确定应用是否能够执行与调整尺寸操作相关联的动态配置改变和/或应用是否标识用于计算机显示器(例如,较大显示器)的一个或多个布局。在一些示例中,分析可以考虑其他属性,诸如应用是否首次启动、应用是否是特定类型的尺寸或形状之一(例如,最大化/全屏应用可能不需要处于兼容性模式)、应用是否是以下中的一种:特殊窗口模式(例如,画中画、分屏等)、安装应用的源(例如,应用商店的类型)、应用是否具有大于阈值水平的流行度度量、应用是否是游戏应用、和/或应用是否能够播放视频。
在一些示例中,状态确定引擎可以查询应用商店平台以确定是否将应用置于兼容性模式下。应用商店平台可以启用应用在计算设备上的安装。状态确定引擎可以响应于应用被安装在计算设备中而查询应用商店平台。例如,应用商店平台可以存储指示应用是否针对计算设备的操作系统被优化的兼容性状态信息。在一些示例中,应用开发者可以标识应用被优化以执行的一个或多个平台。例如,应用可以指示“被设计用于移动”或“被设计用于桌面”。该信息可以被存储为兼容性状态信息。在一些示例中,远程存储该信息可以允许周期性地更新该信息(并且保持最新)。在一些示例中,不同的操作系统能够访问兼容性状态信息。在一些示例中,与应用商店平台相关联的一个或多个服务器计算机可以执行一个或多个过程以自动确定(例如,测试)应用是否缺少功能和/或具有与计算设备的操作系统不兼容的功能,并且将该信息存储为兼容性状态信息。在一些示例中,手动执行确定(例如,测试)。
响应于兼容性模式被激活,与操作系统相关联的窗口管理器可以启用一个或多个兼容性特征。(多个)兼容性特征可以改善计算设备上的应用的执行和用户体验。兼容性特征可以包括提供在视觉上指示兼容性模式被激活的能力模式指示符、启用窗口调整尺寸锁(例如,限制窗口调整尺寸)、在禁用和启用窗口调整尺寸锁之间切换、允许调整尺寸为仅有限数量的尺寸或形状(例如,预定义尺寸或形状集合)、响应于调整尺寸请求而重新启动应用、调整用户界面上的应用内容的UI标度、调整显示尺寸以对应于应用窗口尺寸(例如,从应用的视点调整显示尺寸以对应于应用窗口尺寸或形状)、限制在自由调整尺寸期间发送给应用的调整尺寸事件的数量、启用与应用相关联的功能的热键、启用与应用相关联的功能的拖放特征、调整、添加或删除一个或多个UI控件元素(例如,移除导航控件、添加附加的UI控件、或调整UI控件元素的图标)、和/或将用户界面自动地定位(例如,捕捉(snapping))到显示器的边缘同时保留窗口尺寸的纵横比等。
(多个)启用的兼容性特征可以提供减少与缺少一个或多个功能或具有与设备的操作系统不兼容的一个或多个特征的应用相关联的呈现或调整尺寸问题的技术优点。在一个示例中,当用户尝试对膝上型计算机上的应用的窗口调整尺寸(或重新成形)时,调整尺寸尝试可能导致应用突然终止。然而,当兼容性模式被激活时,可以启用一个或多个兼容性特征,这可以包括将应用的窗口的尺寸限制为一个或多个预定义尺寸(或形状)。因此可以减少呈现问题。此外,除了限制调整尺寸之外(或与其分离),还可以启用一个或多个其他兼容性特征以便改善计算设备上的应用的执行和用户体验。
图1A到1D图示了用于启用一个或多个兼容性特征138以改善在计算设备120上执行的应用110的兼容性的系统100。如果确定应用110缺少功能或具有与计算设备120的操作系统126不兼容的功能,则应用110可以被放置到兼容性模式113中,在兼容性模式113中,一个或多个兼容性特征138被启用以改善应用的执行、改善用户对应用的体验、和/或减少调整尺寸或呈现问题。应用110可以被设计(或优化)成在不同于计算设备120的操作系统126的操作系统上执行,其可以被称为非优化应用。在一些示例中,应用110可以被设计(或优化)为使用与计算设备120的显示器140不同的显示器(例如,具有不同的形状因子的显示器)来执行,这可以被称为非优化应用。非优化应用可以具有缺失的功能或者可以具有与操作系统126和/或显示器140不兼容的功能。在一些示例中,非优化应用具有兼容性问题,其中兼容性问题可以落入一个或多个类别中,诸如键盘用户体验(UX)、输入设备(例如,计算机鼠标)UX、悬停状态、光标、应用功能故障、窗口管理、调整尺寸稳定性、相机、媒体回放或音频路由和/或稳定性。
在一些示例中,应用110被设计(或优化)成在移动环境上执行,其中计算设备120的操作系统126与膝上型或桌面环境相关联。非优化应用的执行可能在对应用110的用户界面142(也称为窗口或应用窗口)调整尺寸时导致包括应用110的突然终止的呈现问题。然而,通过启用一个或多个兼容性特征138,可以减少这些呈现问题并且能够改善应用110的性能。
计算设备120可以是任何类型的计算设备,该计算设备包括一个或多个处理器122、一个或多个存储器设备124、显示器140和被配置为执行(或辅助执行)一个或多个应用110的操作系统126。在一些示例中,显示器140是计算设备120的显示器。在一些示例中,显示器140还可以包括连接到计算设备120的一个或多个外部监视器。操作系统126可以包括多个模块,诸如状态确定引擎128和窗口管理器136,其将在本公开中稍后解释。操作系统126是管理计算机硬件、软件资源并为计算程序提供公共服务的系统软件。被下载并安装在计算设备120上的应用110可能缺少功能或者具有与操作系统126不兼容的功能。例如,操作系统126可以是第一类型的操作系统,但是被下载和安装在计算设备120上的应用110可能针对第二类型的操作系统进行设计和优化。在一些示例中,操作系统126与膝上型计算机或台式计算机的操作环境相关联,而应用110与平板或智能电话的操作环境相关联。在一些示例中,操作系统是相同的,但是应用110被优化成在不同于计算设备120的显示器140的显示器上执行。
(多个)处理器122可以被形成在被配置为执行一个或多个机器可执行指令或软件、固件或其组合的基板中。(多个)处理器122能够是基于半导体的,即,处理器能够包括能够执行数字逻辑的半导体材料。(多个)存储器设备124可以包括存储能够由(多个)处理器122读取及/或执行的格式的信息的主存储器。(多个)存储器设备124可以包括被配置为存储与应用110相关联的兼容性状态130的存储装置134,其中兼容性状态130可以包括应用110是否被放置于兼容性模式113中。此外,(多个)存储器设备124可以存储应用(例如,操作系统126、应用110等)和模块(例如,状态确定引擎128、窗口管理器136),当由处理器122执行时,这些应用和模块执行某些操作。
计算设备120可以通过网络150与服务器计算机102通信。服务器计算机102可以是采取多个不同设备的形式的计算设备,例如标准服务器、这样的服务器组或机架服务器系统。在一些示例中,服务器计算机102可以是单个系统共享组件,诸如处理器和存储器。网络150可以包括互联网和/或其他类型的数据网络,诸如局域网(LAN)、广域网(WAN)、蜂窝网络、卫星网络或其他类型的数据网络。网络150还可以包括被配置为在网络150内接收和/或发送数据的任何数量的计算设备(例如,计算机、服务器、路由器、网络交换机等)。网络150还可以包括任何数量的硬连线和/或无线连接。
服务器计算机102可以包括形成在基板、操作系统(未示出)和一个或多个存储器设备106中的一个或多个处理器104。存储器设备106可以表示任何种类的(或多种种类的)存储器(例如,RAM、闪存、高速缓存、磁盘、磁带等)。在一些示例(未示出)中,存储器设备106可以包括外部存储器,例如,物理上远离服务器计算机102但可由服务器计算机102访问的存储器。服务器计算机102可以包括表示专门编程的软件的一个或多个模块或引擎。例如,服务器计算机102可以包括应用商店平台108。应用商店平台108被配置为向用户提供多个应用110以用于下载和安装。例如,计算设备120可以具有与应用商店平台108通信的应用以便发现要被下载和安装在计算设备120上的应用110。
计算设备120可以通过网络150从应用商店平台108下载应用110,其中应用110至少部分地存储(例如,本地存储)在计算设备120的操作系统126上。应用110可以是在启动时在计算设备120的显示器140上呈现用户界面142的任何类型的软件程序。在一些示例中,应用110可以由操作系统126执行(或在操作系统126上运行)。在一些示例中,应用110是移动应用。移动应用是被配置成在移动计算设备(诸如智能电话或平板)的移动操作系统上执行的本地应用。本地应用是被开发用于特定平台或设备或用于特定操作系统的软件程序。在一些示例中,本地应用是被开发用于多个平台或设备的软件程序。在一些示例中,本地应用是被开发用于在移动平台上使用并且还被配置为在台式或膝上型计算机上执行的软件程序。在一些示例中,应用110是Android应用。在一些示例中,应用110是移动iOS应用。在一些示例中,应用110是移动Windows应用。在一些示例中,应用110包括Linux应用(或有时被称为Crostini应用)。
应用110缺少功能或者具有与计算设备120的操作系统126不兼容的功能。在一些示例中,应用110不支持较大显示屏上的窗口调整尺寸。在一些示例中,操作系统126可以与膝上型或桌面环境相关联,并且应用110尚未被优化为在膝上型或桌面环境上执行。例如,应用110可以是设计用于移动(但不是膝上型或桌面环境)的应用。
能够由智能电话执行的应用110(例如,移动应用)可以被设计为支持一个或少量窗口布局(例如,纵向窗口尺寸、横向窗口尺寸等)。相同的应用110可以被安装在诸如膝上型或台式计算机(也称为桌面环境)的较大计算设备上。在桌面环境中,应用的用户界面142(或窗口)可以是可调整尺寸的。然而,由于应用110支持一个或少量窗口尺寸布局,因此对应用110调整尺寸(例如,自由调整尺寸)可能导致应用110突然终止。除了调整尺寸不兼容性之外(或与其分离),应用110可以具有与计算设备120的操作系统126不兼容的其他功能。例如,在显示器140上呈现的应用110的用户界面142可以具有与其他应用不同的用户界面(UI)标度。
在一些示例中,应用110具有与用户输入支持(例如,键盘、计算机鼠标、触控板、触摸输入支持)相关的一个或多个不兼容性。例如,应用110可以依赖于触摸手势(而在一些示例中,计算设备120不支持触摸手势或仅部分地支持触摸手势)。此外,应用110可以具有不指示具有悬停状态的可点击性的UI控件(例如,按钮)。此外,文本选择可能是不可操作的(或者应用110不支持复制/粘贴右击选项),在一些情况下,触控板或鼠标滚轮滚动可能是不可操作的,按压输入以确认编辑或发送消息可能是不可操作的,和/或按压空格键以暂停视频可能是不可操作的。在一些示例中,应用110可以不支持选择多个项目(例如,利用CTRL和移位(shift))。在一些示例中,当悬停在可点击UI元素上时,应用110可能不支持改变光标的视觉方面。
在应用110已经被安装在计算设备120的操作系统126上之后,状态确定引擎128可以确定应用110是否具有与计算设备120的操作系统126不兼容的功能。如果应用110仅被设计用于移动平台,则状态确定引擎128确定应用110缺少功能或具有与计算设备120的操作系统126不兼容的功能,并且状态确定引擎128将应用110放置于其中一个或多个兼容性特征138被启用的兼容性模式113中。将设备放置在能够实现或启用一个或多个兼容性特征的兼容性模式下能够减少呈现问题和/或减少在执行期间应用的不稳定性。因此,可以改善操作系统上的应用的执行。如果应用110被设计用于移动和膝上型/桌面环境,则状态确定引擎128确定应用110与计算设备120的操作系统126兼容,并且状态确定引擎128不将应用110放置于兼容性模式113中。
状态确定引擎128可以确定多个兼容性状态130中的兼容性状态130并且可以将所确定的兼容性状态130存储在存储装置134中。存储装置134可以是存储操作系统126的设置的持久性存储器。在一些示例中,状态确定引擎128响应于应用110被安装在操作系统126上而确定兼容性状态130。在一些示例中,状态确定引擎128在应用110的安装的至少一部分期间确定兼容性状态130。在一些示例中,状态确定引擎128在应用110被安装在操作系统126上之后确定兼容性状态130。在一些示例中,状态确定引擎128响应于执行请求144来确定兼容性状态130,其中执行请求144是由操作系统126接收以启动应用110的请求。在一些示例中,状态确定引擎128在每次应用110被启动时确定兼容性状态130。在一些示例中,状态确定引擎128在用户界面142被呈现在显示器140上之前确定兼容性状态130。
所存储的兼容性状态130可以指示应用110是否被放置于兼容性模式113中。多个兼容性状态130可以包括两个或多个兼容性状态130。如图1C所示,兼容性状态130可以包括兼容性状态130a和兼容性状态130b。兼容性状态130a可以是指示兼容性模式113被激活的值。例如,如果状态确定引擎128确定应用110缺少功能和/或具有与计算设备120的操作系统126不兼容的功能,则状态确定引擎128标识兼容性状态130a并且将兼容性状态130a存储在存储装置134中。
兼容性状态130b可以是指示兼容性模式113被停用的值。例如,如果状态确定引擎128确定应用110与计算设备120的操作系统126兼容,则状态确定引擎128标识兼容性状态130b并且将兼容性状态130b存储在存储装置134中。
在一些示例中,多个兼容性状态130可以包括两个以上兼容性状态130,诸如兼容性状态130c和兼容性状态130d。兼容性状态130c可以是指示兼容性模式113无资格(或未定义)的值。兼容性状态130d可以是指示应用110有资格(例如,就绪)被放置于兼容性模式113中的值。在一些示例中,状态确定引擎128在应用110被安装之后(但是在应用110被启动之前)标识兼容性状态130d。
在一些示例中,兼容性状态130被配置为状态机。例如,在应用110被安装之前,兼容性状态130是兼容性状态130c(例如,无资格)。在一些示例中,在兼容性状态130c中,启用或禁用兼容性模式113的设置可以向用户隐藏。响应于应用110被安装,兼容性状态130可以转换到兼容性状态130d(例如,有资格)。在一些示例中,在兼容性状态130d中,兼容性模式113准备好被激活,并且启用或禁用兼容性模式113的设置向用户隐藏。响应于应用110被启动,状态确定引擎128可以确定是否激活兼容性模式113。如果状态确定引擎128确定激活兼容性模式113,那么兼容性状态130转换到兼容性状态130a(例如,激活),其中可以启用一个或多个兼容性特征138。在一些示例中,在兼容性状态130a中,启用或禁用兼容性模式113的设置能够被展示给用户。在一些示例中,响应于(例如,从用户)接收到停用兼容性模式113的选择,兼容性状态130转换到兼容性状态130b(例如,停用)。在兼容性状态130b中,启用或禁用兼容性模式113的设置能够被展示给用户。此外,在兼容性状态130b中,可以禁用一个或多个兼容性特征138。在一些示例中,响应于应用110未被安装,兼容性状态130转换回兼容性状态130c(例如,无资格或未定义)。
状态确定引擎128可以基于一个或多个兼容性信号132来确定是否激活兼容性模式113。在一些示例中,在计算设备120上本地获得(或生成)(多个)兼容性信号132。在一些示例中,(通过网络150)从一个或多个服务器计算机(包括服务器计算机102)获得(多个)兼容性信号132。在一些示例中,从多个源(诸如计算设备120和一个或多个服务器计算机)获得(或生成)(多个)兼容性信号132。如图1D所示,(多个)兼容性信号132可以包括存储在存储装置134中的兼容性状态130、应用列表105和/或由调整尺寸能力确定模块109确定的调整尺寸能力值107。
应用列表105可以标识被预定为与操作系统126兼容的多个应用。在一些示例中,状态确定引擎128接收应用列表105并且确定应用110是否在应用列表105上。如果应用110不在应用列表105上,则状态确定引擎128可以标识兼容性状态130a并且将兼容性状态130a存储在存储装置134中。在一些示例中,状态确定引擎128可以将存储装置134中与应用110相关联的值从兼容性状态130d改变为兼容性状态130a。如果应用110在应用列表105上,则状态确定引擎128可以标识兼容性状态130b并且将兼容性状态130b存储在存储装置134中。在一些示例中,状态确定引擎128可以将存储装置134中与应用110相关联的值从兼容性状态130d改变为兼容性状态130b。
调整尺寸能力确定模块109被配置成分析应用110并且基于对应用110的分析来确定调整尺寸能力值107。在一些示例中,调整尺寸能力确定模块109可以确定应用110是否能够执行与调整尺寸操作相关联的动态配置改变和/或应用110是否提供用于显示器140的一个或多个UI布局。调整尺寸能力值107可以指示应用110是否可在显示器140上调整尺寸。状态确定引擎128可以接收调整尺寸能力值107,并且如果调整尺寸能力值107指示应用110不支持调整尺寸(例如,动态调整尺寸),则状态确定引擎128可以标识兼容性状态130a并且将兼容性状态130存储在存储装置134中。如果调整尺寸能力值107指示应用110确实支持调整尺寸,则状态确定引擎128可以标识兼容性状态130b并且将兼容性状态130存储在存储装置134中。
(多个)兼容性信号132可以包括其它信号,诸如应用110是否首次启动、应用110是否是特定类型的尺寸或形状中的一个(例如,最大化/全屏应用可能不需要处于兼容性模式)、应用110是否是特殊窗口模式(例如,画中画、分屏等)中的一个、应用110从其安装的源(例如,应用商店的类型)、应用110是否具有大于阈值水平的流行度度量、应用110是否是游戏应用、和/或应用110是否能够播放视频等。
状态确定引擎128可以接收存储在存储装置134中的兼容性状态130。例如,如果兼容性状态130是兼容性状态130d(例如,就绪),则状态确定引擎128可以确定是否应当使用应用列表105和/或调整尺寸能力值107来激活兼容性模式113。此外,在一些示例中,用户能够停用兼容性模式113(然后稍后激活兼容性模式113)。例如,可以向用户显示用户界面(例如,设置界面),其允许用户相对于特定应用110激活或停用兼容性模式113。如果由用户停用兼容性模式113,那么可以更新存储装置134以指示兼容性状态130b。在一些示例中,响应于接收到执行请求144,状态确定引擎128可以从存储装置134获得值。如果该值指示兼容性状态130b,则在一些示例中,状态确定引擎128可以继续标识兼容性状态130b(因为它将指示用户已经停用了兼容性模式113)。在一些示例中,在应用110被关闭(例如,被终止)之后,存储装置134中的值自动地回复到兼容性状态130c(例如,就绪)。
在一些示例中,状态确定引擎128可以查询应用商店平台108以确定应用110是否缺少功能或具有与计算设备120的操作系统126不兼容的功能。例如,应用110可以被标记为“针对桌面优化”或“针对移动设计”。例如,应用商店平台108可以包括指示应用110是否被优化为在操作系统126上执行的兼容性状态信息114。例如,应用开发者可以提供关于其应用110是否被设计用于移动和/或被设计用于移动和膝上型/桌面环境的信息。如果应用110仅被设计用于移动平台,则兼容性状态信息114可以包括应用110仅被设计用于移动平台的信息。如果应用110被设计用于移动平台和膝上型/桌面平台,则兼容性状态信息114可以包括应用110被设计用于两个平台的信息。在一些示例中,与应用商店平台108相关联的服务器计算机102可以执行一个或多个过程(例如,自动化测试过程)以自动确定应用110是否缺少功能或具有与计算设备120的操作系统126不兼容的功能,并且将该信息存储为兼容性状态信息114。在一些示例中,执行手动测试过程,并且可以利用手动测试过程的结果来更新兼容性状态130。
状态确定引擎128可以通过网络150向应用商店平台108发送兼容性请求101,其中兼容性请求101是获得与应用110相关联的兼容性状态信息114的请求。在一些示例中,响应于应用110被安装而发送兼容性请求101。在一些示例中,响应于应用110被启动而发送兼容性请求101。状态确定引擎128可以通过网络150从应用商店平台108接收兼容性响应103。兼容性响应103可以指示应用110是否缺少功能或者具有与计算设备120的操作系统126不兼容的功能。在一些示例中,兼容性响应103可以指示计算设备120被设计用于移动环境。在一些示例中,兼容性响应103可以指示计算设备120被设计用于膝上型计算机桌面环境。在一些示例中,兼容性响应103可以标识兼容性状态130。在一些示例中,兼容性响应103可以指示要启用哪个兼容性特征138。激活应用110的兼容性模式113的确定能够至少部分地基于兼容性响应103。当应用110被启动时发送兼容性请求101可以提供动态方法,其中当由开发者(例如)更新应用时,能够考虑随时间的应用110的功能的改变。例如,如果应用被更新和/或功能性被添加/移除,则兼容性响应可以与应用的先前启动相比改变。
在一些示例中,状态确定引擎128可以在计算设备120的操作系统126上安装应用110期间获得关于应用110的元数据111。在一些示例中,应用商店平台108被配置为将元数据111注入到应用110中,其中元数据111可以标识应用110是否具有与计算设备120的操作系统126不兼容的功能。例如,元数据111可以指示应用110是仅设计用于移动平台还是用于移动平台和台桌面/膝上型平台。基于元数据111,状态确定引擎128可以确定应用110的兼容性状态130。如果并且当应用110被更新时,可以更新元数据111。因此,可以提供用于确定是否进入或启用兼容性模式113的动态方法。
窗口管理器136可以从存储装置获得兼容性状态130a,并且如果兼容性状态130是兼容性状态130a,则应用110被配置为在兼容性模式113中执行,在兼容性模式113中启用一个或多个兼容性特征138。
图1B图示了多个兼容性特征138。当兼容性模式113被激活时,窗口管理器136可以启用兼容性特征138中的一个或多个以便改善应用110的性能和/或减少在执行未被优化以在操作系统126上执行的应用110时有时发生的呈现问题。在一些示例中,当兼容性模式113被激活时,窗口管理器136确定限制对应用110的用户界面142的应用窗口尺寸(例如,高度152、宽度154)的改变。换句话说,可以限制对应用窗口尺寸的改变。在一些示例中,用户可能根本不能够调整用户界面142的尺寸或形状。在一些示例中,用户可能能够切换到多个预定义尺寸选项185中的一个,但是自由地对用户界面142调整尺寸仍然受到对应用窗口尺寸进行改变的限制的确定的限制。可以通过启用窗口调整尺寸锁156来提供对应用窗口尺寸的改变的限制。
响应于执行请求144(例如,启动应用110的请求),在兼容性模式113中启动应用110,其中应用110的用户界面142被呈现在计算设备120的显示器140上。在一些示例中,为了使用户标识应用110正在兼容性模式113中执行(其中一个或多个特征可以被限制、改变、删除和/或添加),应用110的用户界面142包括能力模式指示符147。能力模式指示符147可以在视觉上指示应用110正在兼容性模式113中执行。能力模式指示符147可以是用户界面142的被改变的部分。例如,窗口管理器136可以改变用户界面142的一部分以指示应用110正在兼容性模式113中执行。在一些示例中,用户界面142的边界区域是透明的或半透明的,这可以指示应用110不可调整尺寸(例如,可自由调整尺寸的)。在一些示例中,在用户界面142的指示应用110正在兼容性模式113中执行的部分上呈现图标(例如,在应用启动器上的应用图标、光标图标等)。在一些示例中,能力模式指示符147可以由改变的背景来标识。在一些示例中,窗口管理器136可以将用户界面142居中在模糊壁纸背景上,这可以指示应用110正在兼容性模式113中执行。例如,操作系统126可以进入沉浸式模式,并且前应用通常跨越整个显示器140。然而,当应用110被放置到兼容性模式113中时,在一些示例中,应用110不能被调整尺寸到完整显示器140,因此,代替的是窗口管理器136可以使背景模糊以给出沉浸式体验。换句话说,用户界面142的一部分(例如,区域)可以被改变或更改以指示调整尺寸被限制,并且具有改变的部分的用户界面142被呈现在计算设备120的显示器140上。用户界面142的部分的改变或更改可以基于(或响应于)确定对应用窗口尺寸或形状的改变的限制。
在一些示例中,默认应用110可调整尺寸(除非应用110将自身明确标识为不可调整尺寸)。在一些示例中,应用110是尚未被标识为不可调整尺寸的应用。在示例中,调整尺寸还可以包括将用户界面142重新成形。当应用110是可调整尺寸时,用户能够拖动调整尺寸(例如,自由调整尺寸或重新成形)、最大化/恢复、以及将应用110定位成多视图模式。多视图模式可以是计算机图形中的显示技术,其包括将图形和/或文本划分为显示器140的两个或更多个相邻(非重叠或部分重叠)部分。在一些示例中,多视图模式是分屏视图。在一些示例中,应用110是不执行与调整尺寸操作相关联的动态配置改变的应用。在一些示例中,应用110未被配置有设计用于显示器140的UI布局。例如,如果显示器140是较大屏幕(例如,膝上型屏幕),则应用110可以不限定较大屏幕的UI布局。
当针对应用激活兼容性模式113时,窗口管理器136可以启用窗口调整尺寸锁156,其中对应用110的用户界面142调整尺寸被限制。当窗口调整尺寸锁156被启用时,窗口管理器136可以防止应用110被放置于多视图模式下。当窗口调整尺寸锁156被启用时,可以忽略任何拖动调整尺寸请求。为了通过拖动来对用户界面142调整尺寸,用户界面142的边缘区域(例如,顶部边缘、底部边缘、右边缘或左边缘)被选择和移动到期望的位置。窗口管理器136可以忽略基于用户提供的动作生成的调整尺寸请求112。例如,窗口管理器136可以在用户尝试对用户界面142拖动调整尺寸时接收调整尺寸请求112。当应用110被放置于兼容性模式113并且窗口调整尺寸锁156被启用时,窗口管理器136可以通过不允许调整尺寸请求112来防止用户界面142的调整尺寸。例如,用户可以尝试对用户界面142拖动调整尺寸,但是可以在窗口调整尺寸锁156被启用时不允许调整尺寸请求112。在一些示例中,不允许调整尺寸请求112可以包括基于对改变应用窗口尺寸的所确定的限制不允许调整尺寸请求112。
窗口调整尺寸锁156可以包括纵向窗口锁156a。例如,窗口管理器136可以启用以纵向定向(当最初在显示器140上启动时)呈现窗口尺寸146的纵向窗口锁156a,并且防止窗口尺寸146被调整尺寸到不同的尺寸。当高度152大于宽度154时是纵向定向。在一些示例中,纵向窗口尺寸对应于电话尺寸。在一些示例中,窗口调整尺寸锁156包括横向窗口锁156b。例如,窗口管理器136可以启用横向窗口锁156b,其中窗口尺寸146以横向定向呈现(当最初在显示器140上启动时),并且防止窗口尺寸146被调整尺寸到不同的尺寸。当宽度154大于高度152时是横向定向。在一些示例中,横向窗口尺寸对应于表尺寸,并且可以大于纵向窗口尺寸。在一些示例中,当窗口调整尺寸锁156被启用时,应用110的用户界面142以最大化尺寸(例如,全屏尺寸)呈现,并且用户界面142被限制进行调整尺寸。最大化尺寸是窗口尺寸146与显示器140的尺寸相同或基本相同(例如,差值小于5mm、2mm或1mm)的尺寸。
在一些示例中,如果兼容性模式113被激活,则纵向窗口锁156a被触发。在一些示例中,如果兼容性模式113被激活,则横向窗口锁156b被触发。由于应用110可以仅针对少量布局进行优化,所以应用110可以被锁定到优化定向。在一些示例中,纵向定向对应于电话尺寸,并且横向定向对应于平板尺寸。在一些示例中,应用110(例如,移动应用)最可能针对其中之一被优化。应用110最可能支持至少纵向布局,除非它们将其自身声明为仅横向,其中在一些示例中,默认启用纵向窗口锁156a。此外,通常,在膝上型/台式计算机上执行的应用110应在大窗口(例如,尽可能最大)中启动以占据显示器140的大部分。然而,对于可能仅支持电话和/或平板尺寸的应用110,启用纵向窗口锁156a或横向窗口锁156b。
在一些示例中,定向引擎135可以确定其中窗口调整尺寸锁156被启用的定向,其中定向可以是纵向窗口尺寸、横向窗口尺寸、最大化尺寸或其他类型的定向。在一些示例中,定向引擎135被包括在窗口管理器136内。在一些示例中,定向引擎135是在与窗口管理器136分离的操作系统126上的逻辑。在一些示例中,定向引擎135可以基于由应用110提供的定向值(例如,仅纵向、仅横向、未指定等)和调整尺寸能力标志(例如,调整尺寸能力值107)来确定应用窗口调整尺寸锁156的定向。在一些示例中,如果定向值和调整尺寸能力标志不足以确定定向,则定向引擎135可以触发自动化评估(或手动评估)以标识应用110的最佳定向。在一些示例中,定向引擎135可以获得关于应用110的最佳定向(例如,从多个不同用户获得)的用户提供的定向数据,然后基于用户提供的定向数据来确定应用110的定向。
在一些示例中,窗口管理器136被配置为在用户界面142上呈现UI对象164,其中UI对象164指示调整尺寸禁用指示符166。在一些示例中,调整尺寸禁用指示符166是当应用110最初被启动时呈现在用户界面142上的UI闪屏。调整尺寸禁用指示符166可以指示应用110缺少功能或者具有与计算设备120的操作系统126不兼容和/或调整尺寸被禁用的功能。调整尺寸禁用指示符166可以指示应用110未针对计算设备120进行优化,并且启用自由调整尺寸可能导致应用崩溃或呈现问题。调整尺寸禁用指示符166的呈现可以减少稳定性和呈现问题。在一些示例中,调整尺寸禁用指示符166可以提供可选择选项以启用调整尺寸,例如,以禁用窗口调整尺寸锁156。在一些示例中,如果用户选择启用调整尺寸,则窗口管理器136被配置为禁用窗口调整尺寸锁156。在一些示例中,窗口管理器136被配置为通过存储兼容性状态130b来更新存储装置134以停用兼容性模式113。
在一些示例中,窗口管理器136可以呈现操作系统设置界面186,其中操作系统设置界面186包括允许用户选择是否针对应用110允许窗口调整尺寸的调整尺寸设置180。操作系统设置接口186可以是提供与操作系统126相关联的设置的接口。例如,操作系统设置接口186可以为网络、蓝牙连接、连接的设备和安装在计算设备上的应用提供设置。在每应用设置中,操作系统设置界面186可以提供允许用户选择是否允许窗口调整尺寸的调整尺寸设置180(例如,切换开关)。窗口管理器136可以响应于用户选择允许调整尺寸的选项而禁用窗口调整尺寸锁156。窗口管理器136可以基于用户选择来更新存储装置134。例如,如果用户选择允许调整尺寸,则窗口管理器136可以利用兼容性状态130b更新存储装置134,兼容性状态130b指示兼容性模式113被停用。
窗口管理器136可以在用户界面142上呈现UI对象164,其中UI对象164包括调整尺寸设置链接188。如果用户选择调整尺寸设置链接188,则窗口管理器136呈现具有调整尺寸设置180的操作系统设置界面186。
窗口管理器136可以接收调整尺寸请求112以对用户界面142调整尺寸。响应于调整尺寸请求112,窗口管理器136可以呈现包括重新启动指示符184的UI对象164以重新启动应用110。然后,响应于接收到对可选择控件的选择,窗口管理器136可以重新启动应用110,使得用户界面142根据调整尺寸请求112在显示器上被调整尺寸。例如,当被调整尺寸时,应用110可以不以新的尺寸被呈现,但是重新启动应用110确保应用以新的尺寸被呈现。以此方式重新启动应用110可以减少应用110的不稳定性和/或减少调整尺寸期间的呈现问题。
窗口管理器136被配置为检测光标图标190在显示器140上的位置。响应于在用户界面142的边缘的阈值距离内检测到光标图标190的位置,窗口管理器136可以改变光标图标190以便指示不允许调整尺寸。例如,用户可以将光标图标190定位在用户界面142的边缘处(或附近),以便“抓取”边缘并且将用户界面142调整尺寸为期望的宽度154或高度152,但是当在用户界面142的边缘的阈值距离内检测到光标图标190时,窗口管理器136可以改变光标图标190。光标图标190可以被改变为不同形状或完全不同的图标以便指示不允许拖动调整尺寸。在一些示例中,窗口管理器136被配置为响应于光标图标190被定位在可选UI元素的阈值距离内而改变光标图标190的一方面(例如,尺寸、形状、颜色和/或图形等)。例如,如果应用110显示可选择的UI元素,则窗口管理器136检测到光标图标190被定位超过可选择的UI元素的阈值距离或在可选择的UI元素的阈值距离内,窗口管理器136可以改变光标图标190以指示UI元素是可选择的。
窗口管理器136可以启用调整尺寸为不同的预定义窗口尺寸158。例如,用户能够切换到两个、三个或更多个预定义窗口尺寸158,但是对用户界面142自由调整尺寸仍然受到限制。例如,用户仍然不能对用户界面142拖动调整尺寸。在一些示例中,窗口管理器136被配置成在用户界面142上呈现UI对象164,其中UI对象164提供对应于预定义窗口尺寸158的多个预定义尺寸选项185。在一些示例中,当应用110被启动时,UI对象164被呈现在用户界面142上。在一些示例中,窗口管理器136接收调整尺寸请求112,并且代替根据调整尺寸请求112对用户界面142的窗口尺寸146调整尺寸,窗口管理器136使用预定义尺寸选项185来呈现UI对象164。例如,用户可以尝试拖动用户界面142以调整尺寸,并且响应于拖动调整尺寸尝试,窗口管理器136可以以预定义窗口尺寸158呈现UI对象164。以预定义或预定尺寸选项(例如,窗口尺寸)呈现UI对象164能够在调整尺寸操作期间和/或在计算设备120处的应用110的后续执行期间减少应用不稳定性和/或减少计算设备120上的呈现问题。因此可以改善应用性能。
预定义窗口尺寸158可以包括第一窗口尺寸158-1和第二窗口尺寸158-2,其中第二窗口尺寸158-2不同于第一窗口尺寸158-1(例如,高度152或宽度154中的至少一个是不同的)。在一些示例中,第二窗口尺寸158-2大于第一窗口尺寸158-1。在一些示例中,第一窗口尺寸158-1涉及移动尺寸,并且第二窗口尺寸158-2涉及平板尺寸。在一些示例中,窗口管理器136最初根据第一窗口尺寸158-1呈现用户界面142。向用户提供切换到第二窗口尺寸158-2的选项。在一些示例中,预定义窗口尺寸158包括与第一窗口尺寸158-1或第二窗口尺寸158-2不同的第三窗口尺寸158-3。在一些示例中,第三窗口尺寸158-3大于第一窗口尺寸158-1和第二窗口尺寸158-2。在一些示例中,第三窗口尺寸158-3是最大化尺寸,其中用户界面142基本上对应于显示器140的尺寸。
当兼容性模式113被激活时,窗口管理器136可以调整应用110的用户界面142的UI标度160。换句话说,响应于确定针对应用110激活兼容性模式113,可以调整要在用户界面142内显示的应用内容的UI标度160。在一些示例中,窗口管理器136可以增加UI标度160以放大用户界面142的各方面,诸如文本和图形,以便对应于与被优化以在操作系统126上执行的应用相关联的UI标度。例如,应用110的用户界面142最初被配置为根据第一UI标度在显示器140上呈现。然而,在启动用户界面142之前,窗口管理器136可以将第一UI标度调整为第二UI标度,使得根据第二UI标度在显示器140上呈现用户界面142。
当兼容性模式113被激活时,窗口管理器136可以调整应用110的显示尺寸162以对应于窗口尺寸146。显示尺寸162可以是经由查询显示尺寸162的应用编程接口(API)根据应用110的视点的显示尺寸。显示尺寸162可以是在显示器140上显示的应用110的文本和图形的宽度和/或高度。窗口管理器136可以减小显示尺寸162以对应于用户界面142的窗口尺寸146。由于移动应用通常在电话或平板上以全屏模式执行,所以应用开发者通常不区分窗口尺寸146和显示尺寸162(例如,如果应用以全屏模式运行,则它们返回相同的值)。然而,对于在诸如膝上型计算机的较大设备上操作的移动应用,移动应用能够在自由形式环境中执行,因此显示尺寸162与窗口尺寸146之间的差异能够导致呈现问题。在一些示例中,调整应用110的显示尺寸162包括将显示尺寸162调整为所见(或根据应用110的视点)包括将要在用户界面142中显示的应用内容的显示尺寸162调整为小于或等于用户界面142的窗口尺寸146。
窗口管理器136可以增加UI标度160以放大用户界面142的各方面,诸如文本和图形,以便对应于与被优化以在操作系统126上执行的应用相关联的UI标度。例如,应用110的用户界面142最初被配置为根据第一UI标度在显示器140上呈现。然而,在启动用户界面142之前,窗口管理器136可以将第一UI标度调整为第二UI标度,使得根据第二UI标度在显示器140上呈现用户界面142。
当应用110处于兼容性模式113时,窗口管理器136可以调整、添加或删除与应用110的用户界面142相关联的一个或多个UI控件172。例如,当应用110在其未被优化为执行的操作系统126上执行时,用户界面142可以提供冗余的、不适用的和/或不足以适当地导航应用110的一个或多个UI控件172。在一些示例中,窗口管理器136可以在调整尺寸限制被启用时移除最大化和/或恢复控件。在一些示例中,窗口管理器136可以移除后退导航按钮,该后退导航按钮可能在用户界面142中呈现时对用户造成混乱。例如,响应于确定激活兼容性模式113,可以移除(或更改)被配置(例如,原始配置)为在用户界面142内显示的用户界面控件元素。
当应用110处于兼容性模式113时,窗口管理器136可以启用一个或多个热键170以执行通常作为在移动平台上的触摸命令的一个或多个功能并且在用户界面142上呈现关于热键170的信息。例如,响应于确定兼容性模式113被激活,可以启用用于应用110的功能的热键170,并且关于热键170的信息被显示在应用110的用户界面142中。热键170是计算机键盘上的键或键的组合,其提供对与应用110的执行相关联的特定功能的访问。在一些示例中,热键170可以被称为快捷键。窗口管理器136可以检测到应用110包括允许用户键入文本的聊天部分。在移动平台上,为了发送消息,用户通常必须在发送键上提供触摸命令。然而,当应用110在膝上型/桌面平台上执行时,窗口管理器136可以实现热键170(例如,敲击输入以发送),使得用户能够使用键盘来发送消息。在一些示例中,窗口管理器136可以启用热键170(例如,按压输入)以暂停和开始视频或音频。在一些示例中,窗口管理器136可以启用热键170以退出UI对象(例如,UI对话)。
当应用110处于兼容性模式113时,窗口管理器136可以启用拖放特征176。拖放特征176可以是UI特征,该UI特征允许用户选择文件或图像并且使用鼠标将其拖动到放置区域中,使得文件或图像能够由应用110接收。
当应用110处于兼容性模式113时,窗口管理器136可以延迟调整尺寸事件168或在键阈值处。在一些示例中,窗口调整尺寸锁156未被启用(或由用户禁用)(从而许可自由调整尺寸),但是窗口管理器136被配置为调整发送到应用110的调整尺寸事件168的传输,以便避免在许可自由调整尺寸时引起的问题。例如,自由调整尺寸的非优化应用能够导致稳定性和呈现问题,以及较低质量的UI布局。例如,非优化应用可能不利用允许它们相对平滑地调整尺寸的(多个)API。然而,窗口管理器136可以通过延迟调整尺寸事件168或者在关键阈值处向应用110发送调整尺寸事件168来实现自由调整尺寸的受限版本(也称为智能调整尺寸)。当由窗口管理器136启用智能调整尺寸时,发送到应用110的调整尺寸事件168的数量小于在正常自由调整尺寸期间发送到应用110的调整尺寸事件168的数量。当应用110正在被自由调整尺寸时,多个调整尺寸事件168(例如,调整尺寸/移动/重新呈现/重新启动请求)被发送到应用110,但是在一些示例中,应用110可能无法正确地处理所有调整尺寸事件168。当由窗口管理器136启用智能调整尺寸时,窗口管理器136可以减少调整尺寸事件168的数量、延迟调整尺寸事件168的传输、或者在某些关键阈值(例如,当光标被释放并且最终尺寸被确定时)发送调整尺寸事件168。
在一些示例中,当应用110处于兼容性模式113时,窗口管理器136可以启用窗口捕捉178,同时保留窗口尺寸的纵横比。相反,根据一些常规的窗口捕捉技术,用户界面被重新定位并且自动调整尺寸(例如,调整尺寸为显示器140的一半)。当启用窗口捕捉178时,用户界面142能够响应于用户提供的命令(例如,使用鼠标、键盘和/或触摸)而移动(例如,重新定位)到显示器140的边缘部分(例如,侧面或拐角),同时保持相同的窗口尺寸146,使得用户界面142被自动定位,而无需手动定位用户界面142。如果窗口调整尺寸锁156是纵向窗口锁156a,则用户界面142具有对应于纵向布局的窗口尺寸146,并且可以防止用户对用户界面142自由调整尺寸。然而,基于用户命令,用户界面142能够在用户界面142处于显示器140的边缘的阈值距离(或接触)内的位置处自动地重新定位在显示器140上,其中窗口尺寸146保持相同的尺寸(例如,纵向布局尺寸)。
兼容性特征138可以包括用于改善操作系统126上的应用110的执行的其他特征。在一些示例中,窗口管理器136可以检测使用触摸命令可控的UI元素,并且窗口管理器136可以启用热键170以控制UI元素或启用触控板或计算机鼠标动作以控制UI元素。在一些示例中,窗口管理器136可以启用文本选择(例如,高亮文本、应用内的复制/粘贴文本或另一应用等)。例如,当应用110在操作系统126上执行时,应用110可以不支持文本选择,但是窗口管理器136可以检测到文本在用户界面142中被呈现,并且窗口管理器136可以许可用户选择在用户界面142中呈现的文本和/或对文本采取诸如复制和/或粘贴文本的动作。在一些示例中,应用110可以不支持触控板滚动或鼠标滚轮滚动。然而,当兼容性模式113被启用时,窗口管理器136可以检测应用110的功能并且启用触控板滚动或鼠标滚轮滚动以执行功能。例如,应用110可以具有带有多个菜单项的菜单。窗口管理器136可以检测菜单并且启用触控板滚动或鼠标滚轮滚动以浏览菜单项。
图2A图示了根据另一方面的操作系统226。操作系统226可以是图1A至图1D的操作系统126的示例并且可以包括关于那些图讨论的任何特征。操作系统226可以包括设置用户界面(UI)281、存储装置234和窗口管理器236。设置UI 281包括包含调整尺寸设置280的多个设置。调整尺寸设置280是指示窗口调整尺寸锁是否被启用(或更一般地兼容性模式是否应当被激活)的设置。在一些示例中,调整尺寸设置280更一般地被称为兼容性模式设置。可以经由许可用户选择和配置各种设置的设置UI 281向用户提供调整尺寸设置280。存储装置234可以存储与应用210相关联的兼容性状态230。如果兼容性状态230指示兼容性模式被激活,则调整尺寸设置280对于用户是可见的。如果兼容性状态230指示兼容性模式被停用,则调整尺寸设置280对于用户也是可见的。然而,如果兼容性状态230指示兼容性状态230准备好被确定或未定义,则可以向用户隐藏调整尺寸设置280。例如,调整尺寸设置280可以不经由设置UI 281被呈现或显示。
操作系统226还可以定义被配置为启动和执行应用210的软件容器211。在一些示例中,代替使用软件容器211,操作系统226定义被配置为启动和执行应用210的虚拟机。操作系统226可以从软件容器211(或虚拟机)接收或获得兼容性模式应当被激活的指示。软件容器211可以是另一操作系统的实例。在一些示例中,软件容器211(或虚拟机)与操作系统226共享OS内核213。在一些示例中,软件容器211(或虚拟机)不与操作系统226共享OS内核213。OS内核213是硬件与计算设备的进程之间的主要接口。OS内核213是在引导加载器之前加载到存储器中的初始程序。OS内核213可以在设备固件215上操作,设备固件215在硬件固件217上操作。软件容器211(或虚拟机)可以是包括应用210所需的软件依赖性的运行时平台,诸如编程语言运行时的特定版本和辅助执行应用210的其他软件库。软件容器211可以包括窗口管理器236a。窗口管理器236和存储装置234可以经由进程间通信(IPC)链接293与软件容器211(或虚拟容器)的一个或多个组件(例如,窗口管理器236a)通信。在一些示例中,窗口管理器236a包括被配置为确定是否激活兼容性模式的状态确定引擎228。窗口管理器236被配置为调整用户界面并且基于所确定的状态应用窗口管理器策略。
图2B图示了用于确定是否激活应用210的兼容性模式的流程图。在操作221中,应用210被安装。操作系统226可以更新存储装置234中的配置状态。尽管流程图涉及新安装的应用,但是该技术能够被应用于已经安装的应用。操作系统226可以将存储装置234中的兼容性状态230从图1C的兼容性状态130c(例如,未定义)更新为图1C的兼容性状态130d(例如,有资格或就绪)。在操作223中,存储装置234向设置UI 281(与操作系统226相关联)发送请求以不显示调整尺寸设置280。在操作225中,调整尺寸设置280保持向用户隐藏。在操作227中,存储装置234经由IPC链接293向窗口管理器236a发送请求以确定应用210是否应当被放置于兼容性模式中。在操作229中,窗口管理器236a将容器211(或虚拟机)内的缓存(例如,存储装置)中的兼容性状态更新为有资格或就绪。在操作231中,窗口管理器236a启动应用210。
在操作233中,窗口管理器236a确定调整尺寸锁定值或兼容性状态。在一些示例中,窗口管理器236a包括状态确定引擎228。状态确定引擎228可以是图1A至图1D的状态确定引擎128的示例并且可以包括参考那些图讨论的任何细节。在一些示例中,状态确定引擎228可以获得应用列表(例如,图1D的应用列表105),并且确定应用210是否被包括在应用列表上。如果应用210不在应用列表上,则状态确定引擎228可以标识指示窗口调整尺寸锁被启用的调整尺寸锁定值或者可以标识指示兼容性模式被激活的兼容性状态(例如,图1C的兼容性状态130a)。此外,状态确定引擎228可以使用先前讨论的任何信号(或参数)来确定兼容性状态。在操作239中,窗口管理器236a经由IPC链接293与窗口管理器236通信以向窗口管理器236提供调整尺寸锁定值和/或兼容性状态。在操作243中,在窗口管理器236处接收到调整尺寸锁定值和/或兼容性状态之后,窗口管理器236将应用210的用户界面的窗口属性290设置为不可调整尺寸(如果兼容性模式被激活)。在操作245中,窗口管理器236向存储装置234发送更新兼容性状态的请求。在操作247中,兼容性状态230被更新以指示兼容性模式被启用。例如,兼容性状态230从兼容性状态130d(例如,有资格)更新到兼容性状态130a(例如,激活)。在操作249中,存储装置234向设置UI 281发送更新调整尺寸设置280的请求。在操作251中,调整尺寸设置280在设置UI 281上变得可见。在操作253中,存储装置234通知窗口管理器236调整尺寸设置280现在可用。
图3A至图3E图示了根据各个方面的当应用正在兼容性模式下执行时在显示器340上呈现的应用的用户界面342。图3A和3B图示了其中窗口调整尺寸锁被启用的用户界面342。图3A图示了根据预定义窗口尺寸中的一个的用户界面342,并且图3B图示了根据预定义窗口尺寸中的另一个的用户界面342。图3C图示了响应于窗口调整尺寸锁被禁用的用户界面342。图3D图示了其中用户界面342在显示器340上被最大化的用户界面342。
在计算设备的显示器340上呈现应用(例如,移动应用)的用户界面342。应用正在其中窗口调整尺寸锁被启用(至少相对于图3A和图3B)的兼容性模式下执行。在一些示例中,边界区域358被改变为半透明的,其指示拖动调整尺寸被禁用。此外,UI对象364被呈现在用户界面342上,其中UI对象364标识能够由用户选择的多个预定义尺寸选项385。
预定义尺寸选项385包括第一窗口尺寸选项385-1和第二窗口尺寸选项385-2。而且,UI对象364包括可调整尺寸选项386,当被选择时,其使得窗口锁被禁用(并且自由调整尺寸被启用)。第一窗口尺寸选项385-1对应于第一窗口尺寸(例如,图1B的第一窗口尺寸158-1),并且第二窗口尺寸选项385-2对应于第二窗口尺寸(例如,图1B的第二窗口尺寸158-2)。例如,窗口尺寸选项385可以标识两个或更多个预定义窗口尺寸。在一些示例中,第一窗口尺寸选项385-1可以对应于与电话尺寸相关的预定义尺寸(如图3A所示),并且第二窗口尺寸选项385-2可以对应于与平板尺寸相关的预定义尺寸(如图3B所示)。如果用户选择图3A上的第二窗口尺寸选项385-2,则如图3B所示,用户界面342根据第二窗口尺寸(例如,平板尺寸)被调整尺寸。在一些示例中,可调整尺寸选项386涉及许可调整尺寸的选项。如果用户选择图3A或图3B上的可调整尺寸选项386,则窗口调整尺寸锁被禁用,并且用户能够对用户界面342拖动调整尺寸,如图3C所示。在图3C中,边界区域358的半透明被移除,这将向用户指示用户界面142能够被拖动调整尺寸。
此外,如图3A和图3B所示,显示器340还包括用户界面342的背景中的另一应用的用户界面359。用户界面359包括最大化UI图标357,在被选择时,其使得用户界面359被调整尺寸以覆盖完整显示器340。然而,用户界面342不包括最大化UI图标357。例如,当应用被放置于兼容性模式并且第一窗口尺寸选项385-1或第二窗口尺寸选项385-2被选择时,最大化UI图标357从用户界面342移除。然而,如果用户选择可调整尺寸选项386,则最大化UI图标357再次出现以提供最大化用户界面342的选项。如果用户选择图3C上的最大化UI图标357,则用户界面342被调整尺寸以覆盖显示器340,如图3D所示。然后,最大化UI图标357改变为恢复UI图标361,在被选择时,其使得用户界面342根据在最大化UI图标357被选择之前存在的窗口尺寸来调整尺寸。
在一些示例中,当应用被启动时(和/或当兼容模式按钮被选择时),用户界面342被显示为具有对应于第一窗口尺寸选项385-1的窗口尺寸,如图3A所示。此外,第一窗口尺寸选项385-1可以包括指示根据第一窗口尺寸选项385-1显示的应用的视觉指示符。此外,用户界面342可以包括可选择的UI元素355,在被选择时,其使得UI对象364出现。UI元素355可以是菜单项,在被选择时,其以具有许可选择多个预定义尺寸选项之一的项的菜单的形式来呈现UI对象364。换句话说,可以在计算设备的显示器上呈现应用的用户界面342,其中用户界面包括可选择的用户界面元素(例如,UI元素355)。呈现定义应用的多个预定义尺寸选项的用户界面对象(例如,UI对象364)可以响应于接收到(例如,由用户)选择的可选择用户界面元素。在一些示例中,UI元素355还标识当前选择了哪个选项。例如,UI元素355在图3A中指示“电话”,并且UI元素355在图3B中指示“平板”。此外,UI元素在图3C中指示“可调整尺寸”。在一些示例中,当用户界面342最初被显示时,UI对象364被呈现在用户界面342上,并且然后在阈值时间段过去之后消失。然后,用户将选择UI元素355以使UI对象364重新出现。
图3E图示了根据一方面的用于兼容性模式下的应用的用户界面342,其中应用仅支持预定义调整尺寸选项之一。如图3E所示,边界区域358是半透明的以指示窗口调整尺寸锁被启用。此外,UI元素355被改变为不可选择,以便防止UI对象364被呈现(从而不向用户提供调整尺寸选项)。此外,可以在用户界面342上呈现提供应用仅支持一种类型的窗口尺寸的指示的UI对象365。
图4图示了根据一方面的用于兼容性模式下的应用的用户界面442。用户界面442提供了包括多个调整尺寸选项(例如,电话、平板、最大化)的UI对象464。此外,UI对象464可以包括自由调整尺寸选项451。在一些示例中,自由调整尺寸选项451是切换控件。当自由调整尺寸选项451被选择时,用户能够对用户界面442拖动调整尺寸。此外,用户界面442可以呈现提供一个或多个附加兼容性特征的兼容性扩展接口453。在一些示例中,兼容性扩展接口453包括触摸覆盖选项455和键盘快捷方式选项457。
图5A至5D图示了根据一方面的呈现在显示器540上的描绘兼容性模式指示符的各种实施方式的用户界面542。在图5A中,在用户界面542上呈现能力模式指示符546a,其中能力模式指示符546a是指示应用处于能力模式的图标。在图5B中,在用户界面542上呈现能力模式指示符546b,其中能力模式指示符546b是指示应用处于能力模式的另一图标。在图5C中,在用户界面542上呈现能力模式指示符546c,其中能力模式指示符546c是指示应用处于能力模式的标签(例如,兼容性尺寸)。在图5D中,在用户界面542上呈现能力模式指示符546d,其中能力模式指示符546d是指示应用处于能力模式的另一标签(例如,不可调整尺寸)。
图6A至6E图示了在显示器640上呈现的用户界面642,其中光标图标被改变为非调整尺寸能力图标680。例如,在显示器640上检测到光标图标的位置,并且当在用户界面642的边缘的阈值距离内检测到光标的位置时,光标图标被改变为非调整尺寸能力图标680。
图7图示了其中应用正在兼容性模式下执行的显示器740上呈现的用户界面742。例如,响应于尝试选择最大化图标757,在用户界面742上呈现UI对象764,其中UI对象764提供多个预定义调整尺寸选项(例如,电话、平板、桌面)。例如,UI对象764包括与电话尺寸有关的第一调整尺寸选项785-1、与平板尺寸有关的第二调整尺寸选项785-2、以及与桌面尺寸有关的第三调整尺寸选项785-3。在图7中,用户界面742具有对应于第一调整尺寸选项785-1的尺寸。然而,用户能够选择第二调整尺寸选项785-2,其使得根据第二调整尺寸选项785-2调整用户界面742的尺寸。然后,用户能够选择第三调整尺寸选项785-3,其使得根据第三调整尺寸选项785-3调整用户界面742的尺寸。在一些示例中,用户界面742能够仅根据三个不同选项来调整尺寸。在一些示例中,UI对象764包括调整尺寸设置链接780,在被选择时,其使得界面被呈现,该界面提供用于启用或禁用窗口调整尺寸锁的选择选项。如果窗口调整尺寸锁被禁用,则用户界面742能够被自由调整尺寸。
图8图示了其中应用正在兼容性模式下执行的显示器840上呈现的用户界面842。例如,响应于接收到对最大化图标857的选择,在用户界面842上呈现UI对象864,其中UI对象864提供多个预定义调整尺寸选项(例如,电话、平板、最大化)。例如,UI对象864包括与纵向尺寸相关的第一调整尺寸选项885-1、与横向尺寸相关的第二调整尺寸选项885-2、以及与最大化尺寸相关的第三调整尺寸选项885-3。在一些示例中,用户界面842能够仅根据三个不同选项来调整尺寸。
图9图示了其中应用正在兼容性模式下执行的用户界面942。用户界面942包括UI元素955,在被选择时,其提供以下拉菜单形式的UI对象964。UI对象964包括多个预定义调整尺寸选项(例如,电话、平板、桌面)。例如,UI对象964包括与电话尺寸有关的第一调整尺寸选项985-1、与平板尺寸有关的第二调整尺寸选项985-2、以及与桌面尺寸有关的第三调整尺寸选项985-3。用户界面942可以根据三个不同的选项被调整尺寸。此外,UI对象964可以包括用于启用或禁用自由调整尺寸的可选择选项951。例如,当自由调整尺寸被禁用时,用户界面942仅能够根据三个不同的选项被调整尺寸。然而,当自由调整尺寸被启用时,用户界面942能够被自由调整尺寸。
图10图示了根据另一方面的其中应用正在兼容性模式下执行的用户界面1042。用户界面1042包括UI元素1055,在被选择时,其提供以下拉菜单形式的UI对象1064。UI对象1064包括多个预定义调整尺寸选项(例如,电话、平板、桌面)。例如,UI对象1064包括与电话尺寸有关的第一调整尺寸选项1085-1、与平板尺寸有关的第二调整尺寸选项1085-2、以及与桌面尺寸有关的第三调整尺寸选项1085-3。用户界面1042可以根据三个不同的选项被调整尺寸。此外,UI对象1064可以包括调整尺寸设置链接1080,在被选择时,其使得OS设置界面被呈现在显示器上,其中OS设置界面包括用于启用或禁用窗口调整尺寸锁的可选调整尺寸设置。
图11图示了根据另一方面的其中应用正在兼容性模式下执行的用户界面1142。用户界面1142包括UI元素1155,在被选择时,其提供以下拉菜单形式的UI对象1164。UI对象1164可以定义多个兼容性特征(例如,兼容性扩展)。在一些示例中,UI对象1164包括使得用户能够选择窗口尺寸1171、是否启用触摸覆盖1173和/或是否启用键盘快捷方式1175的UI元素。在一些示例中,响应于接收到窗口尺寸1171,UI对象1164可以提供能够由用户选择的多个调整尺寸选项。例如,UI对象1164包括与电话尺寸有关的第一调整尺寸选项1185-1、与平板尺寸有关的第二调整尺寸选项1185-2、以及与桌面尺寸有关的第三调整尺寸选项1185-3。此外,UI对象1164可以包括用于启用或禁用自由调整尺寸的可选择选项1151(或到设置界面的链接以启用或禁用自由调整尺寸)。例如,当自由调整尺寸被禁用时,用户界面1142仅能够根据三个不同的选项被调整尺寸。然而,当自由调整尺寸被启用时,用户界面1142能够被自由调整尺寸。
图12图示了根据另一方面的其中应用正在兼容性模式下执行的用户界面1242。用户界面1242包括UI元素1255,在被选择时,其提供以下拉菜单形式的UI对象1264。UI对象1264可以提供能够由用户选择的多个调整尺寸选项(例如,电话、平板、最大化)。例如,UI对象1264包括与电话尺寸有关的第一调整尺寸选项1285-1、与平板尺寸有关的第二调整尺寸选项1285-2、以及与桌面尺寸有关的第三调整尺寸选项1285-3。此外,UI对象1264可以包括用于启用或禁用自由调整尺寸(例如,拖动调整尺寸)的可选择选项1251。例如,当自由调整尺寸被禁用时,用户界面1242仅能够根据三个不同的选项被调整尺寸。然而,当自由调整尺寸被启用时,用户界面1242能够被自由调整尺寸。
图13图示了根据另一方面的其中应用正在兼容性模式下执行的用户界面1342。用户界面1342包括UI元素1355,在被选择时,其提供多个调整尺寸选项。例如,在图13中,电话尺寸被选择,但是用户可以具有选择其他尺寸(例如,平板、桌面、最大化等)的能力。此外,用户界面1342包括用于启用或禁用触摸鼠标的可选择控件1373。此外,用户界面1342包括用于启用诸如使用键盘上的“输入”按钮来发送消息的热键的可选择控件1375。
图14图示了其中应用正在兼容性模式下执行的显示器1440上呈现的用户界面1442。响应于在兼容性模式下启动应用,用户界面1442可以显示具有调整尺寸禁用指示符1447的UI对象1464(例如,飞溅UI屏幕),该调整尺寸禁用指示符1447指示自由调整尺寸被禁用(并且启用自由调整尺寸可能使得应用突然终止)。在一些示例中,UI对象1464包括调整尺寸设置链接1488,在被选择时,其使得OS设置界面被呈现以便启用或禁用窗口调整尺寸锁。
图15图示了其中应用正在兼容性模式下执行的显示器1540上呈现的用户界面1542。响应于在兼容性模式下启动应用,用户界面1542可以显示具有调整尺寸禁用指示符1566的UI对象1564(例如,飞溅UI屏幕),该调整尺寸禁用指示符1566指示自由调整尺寸被禁用(并且启用自由调整尺寸可能使得应用突然终止)。在一些示例中,UI对象1464包括用于启用自由调整尺寸的可选择选项1552。
图16图示了包括调整尺寸设置1680的OS设置界面1686。例如,调整尺寸设置1680可以使用户能够启用或禁用窗口调整尺寸锁(例如,自由调整尺寸)。在一些示例中,在还提供与应用相关联的其他设置的每应用设置界面1687中提供调整尺寸设置1680。在一些示例中,调整尺寸设置1680包括用于启用或禁用窗口调整尺寸锁的滑块控件1681。然而,调整尺寸设置1680可以定义任何类型的UI控件,诸如可选择按钮、切换开关等。
图17A图示了未在兼容性模式下操作的非优化应用的用户界面1742a。图17B图示了在兼容性模式下操作的非优化应用的用户界面1742b。在一些示例中,如图17A所示,显示尺寸1762和窗口尺寸1746可以不同。例如,一些移动应用在移动环境中以最大化布局执行。然而,当移动应用在较大显示器上执行时,一些应用开发者可能尚未考虑显示器与窗口尺寸之间的布局差异。如图17A所示,显示尺寸1762(例如,显示宽度)大于窗口尺寸1746(例如,窗口宽度)。然而,如图17B所示,当兼容性模式被激活时,窗口管理器可以将显示尺寸1762从应用的视点调整为对应于窗口尺寸1746。显示尺寸1762可以是在显示器上显示的应用的文本和图形的宽度和/或高度。在一些示例中,窗口管理器可以减小显示尺寸1762以对应于用户界面1742b的窗口尺寸1746。
图18图示了其中应用正在兼容性模式下执行的显示器1840上呈现的用户界面1842。用户界面1842可以显示具有调整尺寸禁用指示符1866的UI对象1864(例如,飞溅UI屏幕),其指示自由调整尺寸被禁用(并且启用自由调整尺寸可以使得应用突然终止)。在一些示例中,窗口管理器可以接收调整用户界面1842的尺寸的调整尺寸请求。响应于调整尺寸请求,UI对象1864被呈现,其中UI对象1864包括用于重新启动应用的重新启动指示符1884。然后,响应于接收到对重新调整指示符1884的选择,窗口管理器可以重新启动应用,使得用户界面1842根据调整尺寸请求在显示器1840上被调整尺寸。这允许对不支持动态调整尺寸的应用的调整尺寸。因此可以改善应用的性能。
图19图示了其中应用正在兼容性模式下执行的显示器1940上呈现的用户界面1942。当应用处于兼容性模式时,窗口管理器可以启用一个或多个热键(例如,1970-1、1970-2、1970-3等)以实现与应用相关联的特征(例如,1971-1、1971-2、1971-3等)。在一些示例中,当应用在移动环境中执行时,特征(例如,1971-1、1971-2、1971-3等)可以是触摸特征。在一些示例中,特征1971-1、特征1971-2和特征1971-3是在移动环境中作为触摸命令的可选择控件。在一些示例中,特征1971-1是插入表情符号的触摸命令。在一些示例中,特征1971-2是用于附接文件的触摸命令。然而,当应用处于兼容性模式时,窗口管理器可以附接用于执行特征1971-1、1971-2和1971-3的热键。例如,窗口管理器可以实现热键1970-1(例如,用于附接表情符号的“E”)、热键1970-2(例如,用于附接文件的“F”)和热键1970-3(例如,用于发送消息的“输入”)。
图20图示了其中应用正在兼容性模式下执行的显示器2040上呈现的用户界面2042。在一些示例中,当应用处于兼容性模式时,窗口管理器可以调整、添加或删除与应用的用户界面2042相关联的一个或多个UI控件2072。例如,当应用在其未被优化为执行的操作系统上执行时,用户界面2042可以提供一个或多个UI控件2072,该UI控件2072是冗余的、不适用的和/或不足以适当地导航应用。在一些示例中,UI控件2072包括后退导航按钮。在一些示例中,窗口管理器可以移除UI控件2072,该UI控件2072可能在用户界面2042中呈现时对用户造成混淆。
图21图示了其中应用正在兼容性模式下执行的显示器2140上呈现的用户界面2142。当应用处于兼容性模式时,窗口管理器可以启用拖放特征2176。拖放特征2176可以是UI特征,该UI特征允许用户选择文件或图像并使用鼠标将其拖动到放置区域中使得该文件或图像能够由应用接收。
图22是描绘根据一方面的计算设备的示例操作的流程图2200。尽管关于图1A至图1D的系统100解释了图22的流程图2200,但是流程图2200可以适用于本文中讨论的任何实施例。尽管图22的流程图2200以顺序次序图示了操作,但是将理解,这仅是示例,并且可以包括附加的或替代的操作。此外,图22的操作和相关操作可以以与所示不同的顺序、或以并行或重叠的方式执行。
操作2202包括在计算设备120上安装应用110。操作2204包括确定是否激活应用110的兼容性模式113。操作2206包括响应于激活兼容性模式113,确定对应用110的用户界面142的应用窗口尺寸的改变的限制。操作2208包括呈现定义用于应用110的用户界面142的多个预定义尺寸选项185的用户界面对象164。在一些示例中,定义应用110的多个预定义尺寸选项185的UI对象164的呈现是响应于(或响应)确定对应用110的用户界面142的应用窗口尺寸的改变的限制。例如,在确定应当存在对应用窗口尺寸的改变的限制之后,能够呈现定义多个预定义尺寸选项185的用户界面对象164(用于向用户输出或显示)。这些预定义尺寸选项185能够表示在所确定的限制下被允许的对显示维度的一个或多个改变。在一些示例中,预定义尺寸选项185可以基于对应用窗口尺寸的改变的所确定的限制。呈现具有预定义或预定尺寸选项(例如,窗口尺寸)的UI对象164能够在调整尺寸操作期间和/或在计算设备120处的应用110的后续执行期间减少应用不稳定性和/或减少计算设备120上的呈现问题。因此可以改善应用性能。
图23图示了可以利用这里描述的技术使用的计算机设备2300和移动计算机设备2350的示例。在一些实施方式中,图1A至图1D的计算设备120是计算机设备2300或移动计算机设备2350的示例。计算设备2300旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、平板、工作站、个人数字助理、电视、服务器、刀片服务器、大型机和其他适当的计算设备。计算设备2350旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话和其他类似的计算设备。这里所示的组件、它们的连接和关系及其功能仅仅是示例性的,并不意味着限制本文档中描述和/或要求保护的发明的实施方式。
计算设备2300包括处理器2302、存储器2304、存储设备2306、连接到存储器2304和高速扩展端口2310的高速接口2308、以及连接到低速总线2314和存储设备2306的低速接口2312。处理器2302能够是基于半导体的处理器。存储器2304能够是基于半导体的存储器。组件2302、2304、2306、2308、2310和2312中的每一个使用各种总线互连,并且可以安装在公共母板上或以其他方式适当安装。处理器2302能够处理用于在计算设备2300内执行的指令,包括存储在存储器2304中或存储设备2306上的指令,以在外部输入/输出设备(诸如耦合到高速接口2308的显示器2316)上显示GUI的图形信息。在其他实施方式中,可以适当使用多个处理器和/或多个总线以及多个存储器和存储器类型。此外,可以连接多个计算设备2300,其中每个设备提供必要操作的部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。
存储器2304存储计算设备2300内的信息。在一个实施方式中,存储器2304是易失性存储器单元或多个易失性存储器单元。在另一实施方式中,存储器2304是非易失性存储器单元或多个非易失性存储器单元。存储器2304还可以是另一种形式的计算机可读介质,诸如磁盘或光盘。
存储设备2306能够为计算设备2300提供大容量存储。在一个实施方式中,存储设备2306可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备、或磁带设备、闪存或其他类似的固态存储器设备、或设备阵列,包括存储区域网络或其他配置中的设备。计算机程序产品能够被有形地体现在信息载体中。计算机程序产品还可以包含指令,该指令在被执行时执行一种或多种方法,诸如上述那些方法。信息载体是计算机或机器可读介质,诸如存储器2304、存储设备2306或处理器2302上的存储器。
高速控制器2308管理用于计算设备2300的带宽密集型操作,而低速控制器2312管理较低带宽密集型操作。这种功能分配仅是示例性的。在一个实施方式中,高速控制器2308(例如,通过图形处理器或加速器)耦合到存储器2304、显示器2316和高速扩展端口2310,高速扩展端口2310可以接受各种扩展卡(未示出)。在该实施方式中,低速控制器2312耦合到存储设备2306和低速扩展端口2314。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口可以例如通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、定点设备、扫描仪或诸如交换机或路由器的联网设备。
计算设备2300可以以多种不同的形式实现,如图所示。例如,它可以被实现为标准服务器2320,或者在这样的服务器组中被多次实现。它也可以被实现为机架服务器系统2324的一部分。另外,它可以在诸如膝上型计算机2322的个人计算机中实现。可替选地,来自计算设备2300的组件可以与诸如设备2350的移动设备(未示出)中的其他组件组合。这样的设备中的每一个可以包含计算设备2300、2350中的一个或多个,并且整个系统可以由彼此通信的多个计算设备2300、2350组成。
计算设备2350包括处理器2352、存储器2364、诸如显示器2354的输入/输出设备、通信接口2366和收发机2368以及其他组件。设备2350还可以被提供存储设备,诸如微驱动器或其他设备,以提供附加存储。组件2350、2352、2364、2354、2366和2368中的每一个使用各种总线互连,并且组件中的若干组件可以安装在公共主板上或以其他方式适当安装。
处理器2352能够执行计算设备2350内的指令,包括存储在存储器2364中的指令。处理器可以被实现为包括单独的和多个模拟和数字处理器的芯片集。例如,处理器可以提供设备2350的其他组件的协调,诸如用户界面的控件、由设备2350运行的应用以及设备2350的无线通信。
处理器2352可以通过耦合到显示器2354的控制接口2358和显示接口2356与用户通信。显示器2354可以是例如TFT LCD(薄膜晶体管液晶显示器)或OLED(有机发光二极管)显示器、或其他适当的显示技术。显示接口2356可以包括用于驱动显示器2354向用户呈现图形和其他信息的适当电路。控制接口2358可以从用户接收命令并且将它们进行转换以提交给处理器2352。另外,可以提供与处理器2352通信的外部接口2362,以便实现设备2350与其他设备的近区域通信。例如,在一些实施方式中,外部接口2362可以提供有线通信,或者在其他实施方式中提供无线通信,并且还可以使用多个接口。
存储器2364存储计算设备2350内的信息。存储器2364能够被实现为计算机可读介质或多个计算机可读介质、易失性存储器单元或多个易失性存储器单元、或非易失性存储器单元或多个非易失性存储器单元中的一个或多个。扩展存储器2374还可以通过扩展接口2372提供并连接到设备2350,扩展接口2372可以包括例如SIMM(单线存储器模块)卡接口。这样的扩展存储器2374可以为设备2350提供额外的存储空间,或者还可以存储用于设备2350的应用或其他信息。具体地,扩展存储器2374可以包括用于执行或补充上述过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器2374可以被提供作为设备2350的安全模块,并且可以被编程有允许设备2350的安全使用的指令。另外,安全应用可以经由SIMM卡连同附加信息一起被提供,诸如以非侵入方式将标识信息放置在SIMM卡上。
存储器可以包括例如闪存和/或NVRAM存储器,如下所述。在一个实施方式中,计算机程序产品被有形地体现在信息载体中。计算机程序产品包含指令,该指令在被执行时执行一种或多种方法,诸如上述那些方法。信息载体是可以例如通过收发器2368或外部接口2362接收到的计算机可读介质或机器可读介质,诸如存储器2364、扩展存储器2374或处理器2352上的存储器。
设备2350可以通过通信接口2366无线地通信,通信接口2366可以在必要时包括数字信号处理电路。通信接口2366可以提供各种模式或协议下的通信,诸如GSM语音呼叫、SMS、EMS或MMS消息接发、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS等。这种通信可以例如通过射频收发器2368发生。另外,短程通信可以发生,诸如使用蓝牙、Wi-Fi或其他此类收发器(未示出)。另外,GPS(全球定位系统)接收器模块2370可以向设备2350提供附加的导航和位置相关的无线数据,设备2350可以由在设备2350上运行的应用适当使用。
设备2350还可以使用音频编解码器2360可听地通信,音频编解码器2360可以从用户接收口头信息并将其转换成可用的数字信息。音频编解码器2360同样可以诸如通过扬声器(例如,在设备2350的手机中)为用户生成可听声音。这样的声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如,语音消息、音乐文件等),并且还可以包括由在设备2350上操作的应用生成的声音。
计算设备2350可以以多种不同的形式实现,如图所示。例如,它可以被实现为蜂窝电话2380。它还可以被实现为智能电话2382、个人数字助理或另一类似移动设备的一部分。
除以上描述之外,可以向用户提供控件,该控件允许用户对于是否以及何时本文中描述的系统、程序或特征可以能够收集用户信息(例如,关于用户的社交网络的信息、社交动作或活动、职业、用户的偏好或用户的当前位置)、以及是否用户从服务器发送内容或通信进行选择。此外,某些数据在被存储或使用之前可能会以一种或多种方式进行处理,从而去除个人可识别信息。例如,可以对用户的身份进行处理,从而不能确定用户的个人可识别信息,或者可以在获得位置信息的地方对用户的地理位置进行概括(例如概括到城市、邮政编码或州级别),从而不能确定用户的特定位置。因此,用户可以控制收集关于用户的什么信息、如何使用该信息以及向用户提供什么信息。
这里描述的系统和技术的各种实施方式能够在数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些各种实施方式能够包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该可编程系统包括至少一个可编程处理器,该可编程处理器可以是特殊的或通用的,被耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并且向存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且能够以高级过程和/或面向对象的编程语言和/或汇编/机器语言来实现。如本文中所使用的,术语“机器可读介质”“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
为了提供与用户的交互,这里描述的系统和技术能够在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)和用户能够通过其向计算机提供输入的键盘和定点设备(例如,鼠标或轨迹球)的计算机上实现。其他类型的设备也能够用于提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感觉反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且能够以任何形式接收来自用户的输入,包括声学、语音或触觉输入。
这里描述的系统和技术能够在计算系统中实现,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面或Web浏览器的客户端计算机,用户能够通过该图形用户界面或Web浏览器与这里描述的系统和技术的实施方式进行交互),或者这种后端组件、中间件组件或前端组件的任何组合。系统的组件能够通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)和互联网。
计算系统能够包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络进行交互。客户端和服务器的关系借助于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。
在本说明书和所附权利要求中,除非上下文另有明确指示,否则单数形式“一(a)”、“一个(an)”和“该(the)”不排除复数引用。此外,除非上下文另有明确指示,否则诸如“和”、“或”和“和/或”的结合是包含性的。例如,“A和/或B”包括单独的A、单独的B,以及A连同B。此外,所呈现的各种图中所示的连接线或连接器旨在表示各种元件之间的示例性功能关系和/或物理或逻辑耦合。实际设备中可以存在许多替代或附加的功能关系、物理连接或逻辑连接。此外,除非该元件被具体描述为“必要的”或“关键的”,否则没有项或组件对于本文公开的实施例的实践是必要的。
本文中使用诸如但不限于大约、基本上、通常等的术语来指示不需要精确的值或其范围并且不需要被指定。如本文中所使用的,上述术语对于本领域的普通技术人员而言将具有现成的含义。
此外,在本文中使用诸如上、下、顶、底、侧、端、前、后等术语是参考当前考虑的或图示的定向使用的。如果相对于另一定向考虑它们,应当理解,这些术语必须被相应地修改。
此外,在本说明书和所附权利要求中,除非上下文另有明确指示,否则单数形式“一(a)”、“一个(an)”和“该(the)”不排除复数引用。此外,除非上下文另有明确指示,否则诸如“和”、“或”和“和/或”的结合是包含性的。例如,“A和/或B”包括单独的A、单独的B、以及A连同B。
尽管本文中已经描述了某些示例方法、装置和制品,但是本专利的覆盖范围不限于此。应当理解,本文中所采用的术语是为了描述特定方面的目的,而不旨在是限制性的。相反,本专利涵盖了相当落入本专利权利要求范围内的所有方法、装置和制品。

Claims (26)

1.一种方法,包括:
将应用安装在计算设备上;
确定是否激活所述应用的兼容性模式;
响应于激活所述兼容性模式,确定对所述应用的用户界面的应用窗口尺寸或形状的改变的限制;以及
呈现定义用于所述应用的所述用户界面的多个预定义尺寸选项的用户界面对象。
2.根据权利要求1所述的方法,还包括:
在所述计算设备的显示器上呈现所述应用的所述用户界面;
接收用于对在所述显示器上的所述用户界面调整尺寸或重新成形的调整尺寸请求;以及
不允许所述调整尺寸请求。
3.根据权利要求1所述的方法,还包括:
调整要在所述应用的所述用户界面内显示的应用内容的用户界面标度;
根据调整后的用户界面标度在所述用户界面中呈现所述应用内容。
4.根据权利要求1所述的方法,还包括:
将要在所述用户界面中显示的应用内容的显示尺寸调整为小于或等于所述用户界面的窗口尺寸。
5.根据权利要求1所述的方法,还包括:
移除用户界面控件元素,所述用户界面控件元素被配置为要在所述应用的所述用户界面内显示。
6.根据权利要求1所述的方法,还包括:
在所述计算设备的显示器上呈现所述应用的所述用户界面,其中,响应于所述用户界面被呈现在所述显示器上而呈现所述用户界面对象。
7.根据权利要求1所述的方法,还包括:
在所述计算设备的显示器上呈现所述应用的所述用户界面,所述用户界面包括可选择用户界面元素,其中,响应于接收到被选择的所述可选择用户界面元素而呈现所述用户界面对象。
8.根据权利要求1所述的方法,还包括:
改变所述用户界面的区域以指示调整尺寸被限制;以及
将具有改变后的区域的所述用户界面呈现在所述计算设备的显示器上。
9.根据权利要求1所述的方法,还包括:
启用所述应用的功能的热键;以及
在所述应用的所述用户界面中显示关于所述热键的信息。
10.根据权利要求1所述的方法,其中,所述应用是移动应用,所述移动应用是被配置为在移动计算设备的移动操作系统上执行的本地应用。
11.根据权利要求1所述的方法,还包括:
获得至少一个兼容性信号,所述至少一个兼容性信号包括应用列表或调整尺寸能力值中的至少一个;以及
基于所述至少一个兼容性信号来确定激活所述兼容性模式。
12.根据权利要求1所述的方法,还包括:
通过网络向能够由服务器计算机执行的应用商店平台发送兼容性请求;
通过所述网络从所述应用商店平台接收兼容性响应;以及
基于所述兼容性响应来确定激活所述兼容性模式。
13.根据权利要求1所述的方法,还包括:
获得与所述应用相关联的元数据;以及
基于所述元数据来确定激活所述兼容性模式。
14.根据权利要求1所述的方法,还包括:
经由进程间通信链接向被配置为在所述计算设备上执行所述应用的软件容器或虚拟机发送兼容性请求;
经由所述进程间通信链接从所述软件容器接收兼容性响应;以及
基于所述兼容性响应来确定激活所述兼容性模式。
15.一种装置,包括:
至少一个处理器;以及
非暂时性计算机可读介质,所述非暂时性计算机可读介质存储可执行指令,所述可执行指令在由所述至少一个处理器执行时使所述至少一个处理器:
将应用安装在计算设备上;
激活所述应用的兼容性模式,其中,所述兼容性模式的激活指示所述应用缺少功能或具有与所述计算设备的操作系统不兼容的功能;
响应于所述兼容性模式被激活,启用窗口调整尺寸锁以限制对所述应用的用户界面的应用窗口尺寸或形状的改变;以及
呈现定义用于所述应用的所述用户界面的多个预定义尺寸选项的用户界面对象。
16.根据权利要求15所述的装置,其中,所述可执行指令包括当由所述至少一个处理器执行时使所述至少一个处理器执行以下操作的指令:
获得至少一个兼容性信号,所述至少一个兼容性信号包括应用列表或调整尺寸能力值中的至少一个;以及
基于所述至少一个兼容性信号来确定激活所述兼容性模式。
17.根据权利要求15所述的装置,其中,所述可执行指令包括当由所述至少一个处理器执行时使所述至少一个处理器执行以下操作的指令:
通过网络向能够由服务器计算机执行的应用商店平台发送兼容性请求;
通过所述网络从所述应用商店平台接收兼容性响应;以及
基于所述兼容性响应来确定激活所述兼容性模式。
18.根据权利要求15所述的装置,其中,所述可执行指令包括当由所述至少一个处理器执行时使所述至少一个处理器执行以下操作的指令:
获得与所述应用相关联的元数据;以及
基于所述元数据来确定激活所述兼容性模式。
19.根据权利要求15所述的装置,其中,所述可执行指令包括当由所述至少一个处理器执行时使所述至少一个处理器执行以下操作的指令:
经由进程间通信链接向被配置为在所述计算设备上执行所述应用的软件容器或虚拟机发送兼容性请求;
经由所述进程间通信链接从所述软件容器接收兼容性响应;以及
基于所述兼容性响应来确定激活所述兼容性模式。
20.根据权利要求15所述的装置,其中,所述可执行指令包括当由所述至少一个处理器执行时使所述至少一个处理器执行以下操作的指令:
呈现操作系统设置界面,所述操作系统设置界面包括允许用户选择是否启用所述窗口调整尺寸锁的设置。
21.根据权利要求15所述的装置,其中,所述可执行指令包括当由所述至少一个处理器执行时使所述至少一个处理器执行以下操作的指令:
呈现指示所述应用缺少功能或具有与所述计算设备不兼容的功能的用户界面对象。
22.一种存储可执行指令的非暂时性计算机可读介质,所述可执行指令在由至少一个处理器执行时使所述至少一个处理器:
将应用安装在计算设备上;
激活所述应用的兼容性模式,其中,所述兼容性模式的激活指示所述应用缺少功能或具有与所述计算设备不兼容的功能;
响应于所述兼容性模式被激活,启用窗口调整尺寸锁以限制对所述应用的用户界面的应用窗口尺寸或形状的改变;
调整要在所述应用的所述用户界面内呈现的应用内容的用户界面标度;以及
根据调整后的用户界面标度,在所述应用的所述用户界面中呈现所述应用内容。
23.根据权利要求22所述的非暂时性计算机可读介质,其中,所述可执行指令包括当由所述至少一个处理器执行时使所述至少一个处理器执行以下操作的指令:
呈现定义用于所述应用的所述用户界面的多个预定义尺寸选项的用户界面对象。
24.根据权利要求22所述的非暂时性计算机可读介质,其中,所述可执行指令包括当由所述至少一个处理器执行时使所述至少一个处理器执行以下操作的指令:
接收用于对所述用户界面调整尺寸或重新成形的调整尺寸请求;
响应于所述调整尺寸请求来呈现用户界面对象,所述用户界面对象包括用于重新启动所述应用的可选择控件;以及
响应于接收到对所述可选择控件的选择,重新启动所述应用使得根据所述调整尺寸请求在显示器上调整尺寸或重新成形所述用户界面。
25.根据权利要求22所述的非暂时性计算机可读介质,其中,所述可执行指令包括当由所述至少一个处理器执行时使所述至少一个处理器执行以下操作的指令:
检测光标图标在显示器上的位置;以及
响应于在所述用户界面的边缘的阈值距离内检测到所述光标图标的所述位置来改变所述光标图标的形状。
26.根据权利要求22所述的非暂时性计算机可读介质,其中,所述可执行指令包括当由所述至少一个处理器执行时使所述至少一个处理器执行以下操作的指令:
启用用于所述应用的功能的拖放特征;以及
在所述应用的所述用户界面上呈现拖放界面,所述拖放界面被配置为允许用户将数据移动到所述应用中。
CN202280052181.5A 2021-07-28 2022-07-27 计算设备上的应用兼容性 Pending CN117716337A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/443,865 2021-07-28
US17/443,865 US11816318B2 (en) 2021-07-28 2021-07-28 Application compatibility on a computing device
PCT/US2022/074192 WO2023010040A1 (en) 2021-07-28 2022-07-27 Application compatibility on a computing device

Publications (1)

Publication Number Publication Date
CN117716337A true CN117716337A (zh) 2024-03-15

Family

ID=82932383

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280052181.5A Pending CN117716337A (zh) 2021-07-28 2022-07-27 计算设备上的应用兼容性

Country Status (4)

Country Link
US (2) US11816318B2 (zh)
EP (1) EP4352610A1 (zh)
CN (1) CN117716337A (zh)
WO (1) WO2023010040A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230230577A1 (en) * 2022-01-04 2023-07-20 Capital One Services, Llc Dynamic adjustment of content descriptions for visual components

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7565623B2 (en) * 2004-04-30 2009-07-21 Microsoft Corporation System and method for selecting a view mode and setting
JP4153011B2 (ja) * 2007-02-19 2008-09-17 シャープ株式会社 表示装置、表示装置の制御方法、表示装置の制御プログラム、および表示装置の制御プログラムを記録した記録媒体
AU2010200390A1 (en) * 2009-12-04 2011-06-23 Blades, Dian Ms A method and system to edit textual information entered by a user onto the text entry field used to create a message on a mobile device in creating a message for transmission within a cellular network
US9124934B2 (en) * 2012-01-10 2015-09-01 Intuit Inc. Rule-based classification of electronic devices
US20150195708A1 (en) * 2013-02-19 2015-07-09 Google Inc. Application installation system and method
US9710248B2 (en) * 2013-05-29 2017-07-18 Microsoft Technology Licensing, Llc Application install and layout syncing
US9535567B1 (en) * 2013-10-10 2017-01-03 Parallels International Gmbh Method for interception and blocking of mouse move and resize events on mobile device
US9098369B1 (en) * 2013-11-13 2015-08-04 Google Inc. Application installation using in-video programming
US20160342406A1 (en) * 2014-01-06 2016-11-24 Johnson Controls Technology Company Presenting and interacting with audio-visual content in a vehicle
US20180217727A1 (en) * 2014-06-30 2018-08-02 Google Inc. Method and system of scaling application windows
KR102387115B1 (ko) * 2015-11-18 2022-04-18 삼성전자주식회사 전자 장치 및 이의 제어 방법
US10805427B1 (en) * 2016-01-20 2020-10-13 Sprint Communications Company L.P. Backup and restore of customer devices
US20180218132A1 (en) * 2017-02-02 2018-08-02 Microsoft Technology Licensing, Llc Application portability via application(s) installed on a portable storage device
US10671357B2 (en) * 2017-06-05 2020-06-02 Apptimize Llc Preview changes to mobile applications at different display resolutions
US11398168B2 (en) * 2019-04-03 2022-07-26 Samsung Electronics Co., Ltd. Mobile device with a foldable display and method of providing user interfaces on the foldable display
US20210099590A1 (en) 2019-09-26 2021-04-01 Toshiba Tec Kabushiki Kaisha System and method for uniform software deployment to devices with different configurations

Also Published As

Publication number Publication date
WO2023010040A1 (en) 2023-02-02
US11816318B2 (en) 2023-11-14
US20240077998A1 (en) 2024-03-07
US20230034967A1 (en) 2023-02-02
EP4352610A1 (en) 2024-04-17

Similar Documents

Publication Publication Date Title
US20220137758A1 (en) Updating display of workspaces in a user interface for managing workspaces in response to user input
US10496268B2 (en) Content transfer to non-running targets
KR101733839B1 (ko) 사용자 인터페이스에서의 작업 공간 관리
US8881047B2 (en) Systems and methods for dynamic background user interface(s)
US10152192B2 (en) Scaling application windows in one or more workspaces in a user interface
US9658732B2 (en) Changing a virtual workspace based on user interaction with an application window in a user interface
US9501217B2 (en) Target region for removing icons from dock
US20060095865A1 (en) Dynamic graphical user interface for a desktop environment
WO2019206158A1 (zh) 一种界面显示方法、装置及设备
AU2008298533A1 (en) Methods and systems for generating desktop environments providing integrated access to remote and local resources
US11314391B2 (en) Navigation bar controlling method and terminal
WO2017113624A1 (en) System and method for operating system of mobile device
US20240077998A1 (en) Application compatibility on a computing device
JP2012510658A (ja) インジケータポップアップ
AU2019202690B2 (en) Managing workspaces in a user interface
AU2013216607B2 (en) Managing workspaces in a user interface

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