CN116670646A - 预加载具有现有任务的应用 - Google Patents
预加载具有现有任务的应用 Download PDFInfo
- Publication number
- CN116670646A CN116670646A CN202180076802.9A CN202180076802A CN116670646A CN 116670646 A CN116670646 A CN 116670646A CN 202180076802 A CN202180076802 A CN 202180076802A CN 116670646 A CN116670646 A CN 116670646A
- Authority
- CN
- China
- Prior art keywords
- displays
- user
- preloading
- stack
- app
- 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
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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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
- 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/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44578—Preparing or optimising for loading
-
- 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/545—Gui
-
- 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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
Abstract
一种方法包括:在用户设备(24)的处理器(44)中,决定预加载用户应用(26),该用户应用具有一个或更多个用户界面(UI)显示,其状态由处理器保持在用户设备的存储器中。以后台模式预加载用户应用的至少一部分,并且恢复预加载的用户应用的状态,以匹配一个或更多个UI显示的保持的状态。
Description
相关申请的交叉引用
本申请要求提交于2020年12月3日的美国临时专利申请63/120,806的权益,其公开内容通过引用并入本文。
发明领域
本发明总体上涉及用户设备中的用户应用的处理,尤其涉及用于预加载应用和内容的方法和系统。
发明背景
在用户设备(诸如智能手机)上运行的应用(“app”)中,影响用户体验的主要因素之一是用户界面(UI)的延迟。已经提出了用于减少延迟并提供更具响应性的UI的各种技术。一些技术涉及内容的预取(prefetch)。其他技术涉及app的后台预加载。另外的其他技术涉及app的UI的预渲染。例如,在标题为“An Optimized CDN for the Wireless LastMile”的PCT国际公布WO 2018/055506中描述了此类技术,该国际公布通过引用并入本文。
标题为“Application Preloading in the Presence of User Actions”的PCT国际公布WO 2019/171237描述了一种在用户设备的处理器中的方法,该PCT国际公布的公开内容通过引用并入本文。该方法包括以后台模式预加载一个或更多个用户应用。检测在处理器中被调用并与给定预加载的用户应用相关联的活动。处理器评估活动是否是由于给定用户应用的预加载而调用的预加载发起的活动,或者活动是否是由于用户的动作而调用的用户发起的活动。如果该活动被评估为预加载发起的活动,则使用第一处理方案处理该活动。如果该活动被评估为用户发起的活动,则使用不同于第一处理方案的第二处理方案来处理该活动。
发明概述
本文描述的本发明的实施例提供了一种方法,方法包括在用户设备的处理器中决定预加载用户应用,该用户应用具有一个或更多个用户界面(UI)显示,其状态由处理器保持在用户设备的存储器中。以后台模式预加载用户应用的至少一部分,并且恢复预加载的用户应用的状态,以匹配一个或更多个UI显示的保持状态。
在一些实施例中,一个或更多个UI显示当前不是活动的(live)。在公开的实施例中,存储器中保持的状态指示当一个或更多个UI显示处于活动的状态时一个或更多个UI显示的状态。
在一些实施例中,一个或更多个UI显示被布置成堆叠。在实施例中,预加载用户应用的至少一部分包括(i)检查位于堆叠顶部处的UI显示是否是用户应用的主UI显示,以及(ii)仅当位于堆叠顶部的UI显示是用户应用的主UI显示时才预加载用户应用。在另一实施例中,预加载用户应用的至少一部分包括仅预加载位于堆叠顶部处的UI显示。
在一些实施例中,一个或更多个UI显示包括多个UI显示,并且预加载用户应用的至少一部分包括预加载该多个UI显示。在实施例中,预加载多个UI显示包括以从堆叠的底部进行到堆叠的顶部的顺序预加载多个UI显示。在替代实施例中,预加载多个UI显示包括以从堆叠的顶部进行到堆叠的底部的顺序预加载多个UI显示。在公开的实施例中,预加载多个UI显示包括单独预加载多个UI显示中的每一个,以及组合单独预加载的UI显示以重建堆叠。
在一些实施例中,一个或更多个UI显示包括一个或更多个Android活动。
根据本文描述的实施例,还提供了一种包括显示屏和处理器的用户设备。显示屏被配置成向用户显示用户应用的用户界面(UI)显示。处理器被配置成决定预加载具有一个或更多个用户界面(UI)显示的用户应用,其状态由处理器保持在用户设备的存储器中,以后台模式预加载用户应用的至少一部分,并恢复预加载的用户应用的状态,以匹配一个或更多个UI显示的保持的状态。
根据对本发明的实施例的以下详细描述并结合以下附图,本发明将得到更充分的理解。
附图简述
图1是示意性地示出根据本发明的实施例的采用预加载的通信系统的框图;
图2是示出根据本发明的实施例的被移动到后台的用户应用的任务的图;以及
图3是示意性地示出根据本发明的实施例的用于预加载具有现有任务的用户应用的方法的流程图。
具体实施方式
定义
本公开涉及应用(“app”)和诸如用户界面(UI)显示的app组件的预加载。在本上下文中,术语“预加载”是指以用户不注意的后台模式加载、启动和至少部分运行app的过程,而不是响应于用户与app交互的请求进行该过程。可以被预加载的app组件包括例如app的主订阅源(main feed)、app的其他UI显示和/或app内的内容(即在启动app时用户不立即可见的app内容)。app预加载可能涉及例如在后台预渲染app的一个或更多个UI显示。
在2021年2月10日提交的题为“Preloading of Applications and In-Application Content in User Devices”的PCT国际公布WO 2021/161174中陈述了预加载的某些方面,其公开内容通过引用并入本文。
在本上下文中,术语“UI显示”指的是逻辑UI元素——由app使用以与用户实现交互的视图或窗口。例如,在Android操作系统(OS)中,UI显示被称为“视图”或“活动”。举例来说,下面的描述将主要涉及Android OS和活动。
活动通常在“任务”中维护。任务通常包括容器(container),该容器将用户在执行某个作业时与之交互的活动记录存储为堆叠。
OS可以将活动(或通常的UI显示)设置为各种状态。例如,“活动的”活动是存在于现有进程内的存储器中的活动,其通常在存储器中具有渲染的UI,并且系统中存在指向该活动的活动记录。作为另一示例,处于“销毁”状态的活动是曾经活动的但不再存在于存储器中的活动。更确切地,只存在活动的记录,可能保持已保存的状态。在适当的时候,OS可以创建新的活动,该活动在结构和状态上与先前活动的活动相似。
综述
本文描述的本发明的实施例提供了用于预加载app和诸如活动的app组件的改进的方法和系统。所公开的技术解决了常见的场景,其中用户设备的OS决定预加载具有现有任务的app。例如,考虑以下事件链:
用户与某个app的一个或更多个活动交互(例如,查看),这意味着该app在用户设备的前台运行。
然后,用户将app移动到后台,例如,以便与不同的app交互。
在某个时间点,OS决定杀死(kill)在后台运行的app的进程,例如为了释放存储器资源。尽管app进程被杀死,但OS会保持该任务(该任务现在包括处于“销毁”状态的活动记录,通常是用户与其交互的活动)。以这种方式,所讨论的活动的状态被保持在存储器中(易失性或非易失性),使app能够从用户将其移动到后台时的状态恢复。
稍后,出于任何原因,OS决定预加载app。
在这一点上,用户的期望是,当他或她返回到app时,app将从(至少近似)其被移动到后台时的状态恢复。因此,预加载操作不应以app的初始状态(app正常启动时将达到的状态)结束,而应以用户将其移动到后台时的状态结束。在本上下文中,术语“正常启动”和“正常预加载”指的是(相应地)不具有现有任务和/或现有保存的状态的app的启动和预加载操作。
本发明的实施例提供了在符合上述要求的同时预加载app的几种技术。一般来说,在一些实施例中,用户设备中的处理器决定预加载用户应用,该用户应用已经具有一个或更多个用户界面(UI)显示,其状态由处理器保持在用户设备的存储器中。处理器以后台模式预加载用户应用的至少一部分,并恢复预加载的用户应用的状态,以匹配UI显示的保持的状态。
因此,所公开的技术提供了由于预加载的延迟减小,并且同时保留了用户所期望的用户体验。在本文描述的用例中,在决定预加载app之前的某个时间点,app进程被杀死。然而,所公开的技术不限于这样的用例。例如,可以在用户设备断电之前保存任务和活动状态。当用户设备稍后再次上电时,任务仍然存在,并且没有app进程。
系统描述
图1是示意性地示出根据本发明的实施例的采用预加载的通信系统20的框图。
系统20包括运行一个或更多个用户应用(“app”)26的用户设备24。设备24可以包括任何合适的无线或有线设备,诸如例如蜂窝电话或智能手机、支持无线的膝上型或平板计算机、台式个人计算机、视频游戏控制台、智能TV、可穿戴设备、汽车用户设备或能够向用户呈现内容的任何其他合适类型的用户设备。为了清楚起见,该图示出了单个用户设备24。现实生活中的系统通常包括大量各种类型的用户设备。
在本上下文中,术语“用户应用”、“应用(application)”和“app”可互换使用,并且指的是在用户设备上运行并可由用户调用(激活)的任何合适的计算机程序。一些app 26可以是专用的特殊用途应用,诸如游戏app。其他app 26可以是通用应用,诸如Web浏览器。
在一些实施例中(然而不是必须的),app 26由一个或更多个网络侧服务器(例如,门户28)提供和/或通过网络32与一个或更多个网络侧服务器通信。网络32可以包括例如广域网(WAN)(诸如互联网)、局域网(LAN)、无线网络(诸如蜂窝网络或无线LAN(WLAN))或任何其他合适的网络或网络的组合。
在本示例中,用户设备24包括执行用户设备的各种处理功能的处理器44。除其他功能外,处理器44运行操作系统(OS)48,操作系统(OS)48继而运行app 26。本文描述的实施例主要涉及Android OS。然而,所公开的技术适用于可以在用户设备上运行的任何其他合适的OS,例如,iOS、Windows、Linux等。OS 48包括被称为预加载代理50的软件组件,其处理app的预加载。App 26、OS 48和预加载代理50被示意性地绘制在处理器44内部,以指示它们包括在处理器上运行的软件。
另外,用户设备24包括非易失性存储器(NVM)54,例如闪存。NVM 54可以尤其用于存储高速缓存存储器52,以用于缓存与app相关联的内容。在一些实施例中,用户设备使用单个高速缓存52。在图中同样示意性描绘的其他实施例中,可以为每个app定义单独的高速缓存存储器52。混合实现也是可能的,其中高速缓存52的一部分是集中的,而某个部分是app特定的。为了清楚起见,下面的描述将简单涉及“高速缓存52”,意指任何合适的高速缓存配置。
用户设备24还包括用于向用户呈现视觉内容的显示屏56、以及用于连接到网络32的合适的网络接口(未在图中示出)。该网络接口可以是有线的(例如,以太网网络接口控制器NIC)或无线的(例如,蜂窝调制解调器或Wi-Fi调制解调器)。典型地,用户设备24还包括一些内部存储器,例如用于存储相关代码和/或数据的随机存取存储器(RAM)(未在图中示出)。
在图1的示例实施例中(然而不是必须的),系统20还包括在网络侧执行预加载相关功能的预加载服务器60。服务器60包括用于通过网络32通信的网络接口64、以及执行预加载服务器的各种功能的处理器68。在本示例中,处理器68运行执行网络侧预加载相关功能的预加载控制单元72。
网络侧预加载相关的功能可以包括,例如,决定预加载哪些app以及何时预加载,选择是否预加载以及预加载哪些app内的内容,决定预加载多少app组件(例如,仅执行一些初始可执行代码,或者app的用户界面的预渲染和/或关于前台模拟的持续时间的决定)。另一个可能的网络侧预加载相关的功能可以包括,例如,决定适用的预加载模式(例如,其中限制或禁止对网络的访问的离线预加载,或其中允许网络访问的在线预加载)。例如,在PCT申请PCT/IB2020/057046中论述了预加载模式,该PCT申请的公开内容通过引用并入本文。又一示例是如下所述的允许进行预加载的app的“白名单(whitelist)”。在实施例中,预加载服务器60可以被实现为基于云的应用。
在本文描述的实施例中,为了清楚起见,预加载功能被描述为由用户设备24的处理器44执行。然而,一般来说,预加载功能可以由设备24的处理器44、服务器60的处理器68或两者来执行。
预加载app 26可以涉及预加载任何app元素,诸如与app相关联的可执行代码,例如启动代码、app馈送、app登陆页面、与app相关联的各种UI元素、与app相关联的内容、与app相关联的app数据、和/或通过诸如点击的用户动作使用app可获得的代码或内容(“app内的内容”)。内容的预渲染可以涉及任何合适类型的UI显示或其一部分的后台处理。例如,在Android术语中,预渲染可以包括一个或更多个Android活动的后台处理。在后台模式中,与app相关联的UI元素不在显示屏56上呈现给用户,即对用户隐藏。当用户调用先前预加载的app时,用户设备切换到以用户可见的前台模式运行该app。(为了简洁起见,术语“后台模式”和“前台模式”在本文简称为“后台”和“前台”。)
图1中所示出的系统20及其各个元素的配置是示例配置,选定它们仅出于概念清晰的目的。在替代的实施例中,可以使用任何其它合适的配置。例如,在一些实施例中,预加载功能可以完全在用户设备24的处理器44中实现,在这种情况下,子系统60可以被完全消除。
预加载代理50可以在处理器44上运行的软件模块中、在处理器44上运行的应用中、在嵌入在处理器44上运行的应用中的软件开发工具包(SDK)中、作为在处理器44上运行的OS的一部分(可能由用户设备供应商或其他方添加到OS)、在处理器44上运行的代理服务器中、使用上述两种或更多种的组合或以任何其他合适的方式来实现。在接下来的大部分描述中,假设预加载代理50是用户设备24的OS 48的一部分。
虽然本文中所描述的实施例主要指人类用户,但术语“用户”还指机器用户。例如,机器用户可包括使用无线通信的各种主机系统,诸如在各种物联网(IoT)应用中的主机系统。
系统20的不同元素可使用合适的软件、使用合适的硬件(例如,使用一个或更多个专用集成电路(ASIC)或现场可编程门阵列(FPGA))、或使用硬件和软件元素的组合来实现。高速缓存52可以使用一个或更多个任何合适类型的存储器或存储设备来实现。在一些实施例中,可以使用在软件中编程以执行本文描述的功能的一个或更多个通用处理器来实现预加载代理50和/或预加载服务器60。例如,可通过网络以电子形式将软件下载到处理器,或者软件可以可替代地或附加地被提供和/或存储在非暂时性有形介质上,诸如磁存储器、光学存储器或电子存储器。
预加载具有现有任务的app
在一些实施例中,预加载代理50可以在某个点决定预加载app 26,该app 26具有被移动到后台的现有任务。所讨论的任务可以包括一个或更多个活动。通常,这些活动处于“销毁”状态,例如,因为app的进程先前已被OS 48杀死。
例如,Android OS通常将每个活动称为“实例状态”的对象保存在用户设备闪存(例如,NVM 54)中。默认情况下,“实例状态”包括多个与UI相关的配置参数。然而,当活动转换到“销毁”状态时,app通常也有机会向“实例状态”对象添加状态参数。如果活动稍后重新启动,OS会将保存的“实例状态”提供回至app,该“实例状态”包括app向其添加的参数。这种机制允许app本身将活动启动到适当的状态。
图2是示出根据本发明的实施例的被移动到后台的app 26的任务80的图。在本示例中,任务80包括从下到上排列在堆叠中的多个活动。堆叠中活动的顺序对应于用户与活动交互的顺序,其中最近的活动在顶部。
如图所示,任务底部的活动是app的主要活动84。主要活动是其中正常预加载操作(即预加载没有任何现有任务或保存的状态的app)或正常启动app将结束的活动。换句话说,主要活动84是app的初始状态中的最后一个活动。
一个或更多个附加活动88可以存在于主要活动84之上。位于任务最顶部处的活动被称为顶部活动92。顶部活动通常是用户在将app移动到后台之前与之交互(例如,查看)的最近活动。
图2中所示的任务80的配置是示例配置。例如,任务80可以包括较少数量的活动。在一个示例中,任务80可以仅包括主要活动84和顶部活动92,或者甚至包括单个活动(例如,当用户在将其移动到后台之前仅查看主要活动时,意味着主要活动也是顶部活动)。作为另一个示例,任务80可以包括在主要活动84之下的一个或更多个活动88。换句话说,主要活动不一定是任务中的底部活动。
在任务80被移动到后台之后,OS 48可以决定将任务80的一个或更多个活动设置为“销毁”状态。OS 48可以将活动设置为“销毁”状态,例如,作为杀死app进程的一部分或在任何其他合适的时间进行设置。
图3是示意性地示出了根据本发明的实施例的用于预加载具有现有任务的app 26的方法的流程图。该方法开始于(在处理器44上运行的)OS 48在任务移动操作100将具有一个或更多个活动的任务移动到后台。例如,响应于用户将app从屏幕上滑走、切换到与另一个app交互、或者执行被解释为将app移动到后台的请求的任何其他UI动作,OS可以将任务移动到后台。
在进程杀死操作104,OS 48杀死所讨论的app的app进程。OS可能会例如,由于存储器不足,决定杀死app进程,以释放存储器资源。然而,用户与之交互的任务被OS以“销毁”状态保持在存储器中。在销毁状态,任务活动的状态被保持在存储器中(在处理器44的内部存储器RAM中或在NVM 54中),并且如果需要的话可以被恢复。
在稍后的时间点,在预加载决定操作108,OS 48中的预加载代理50决定预加载app。代理50可以基于任何合适的标准来决定预加载app。预加载的决定也被称为“预加载触发器”。例如,代理50可以预测用户可能启动app。上述PCT国际公布WO 2018/055506(“AnOptimized CDN for the Wireless Last Mile”)中陈述了各种类型的预加载触发器。
在预加载操作112,预加载代理50预加载app的至少一部分。在预加载app的适当部分时,代理50恢复app的状态,以便匹配现有任务的保持的状态。因此,如果用户返回到app时,app将从(至少近似)任务被移到后台时的状态恢复。特别是,用户将看到他上次在将app移到后台之前看到的相同的一系列活动。
在各种实施例中,预加载代理50可以使用各种技术来恢复用户所期望的app的状态。在下面的各种示例中,每当预加载活动时,代理50恢复该活动的保存的状态。没有被预加载的活动通常保持在销毁状态,直到用户导航到它们。
在一个实施例中,响应于预加载触发,预加载代理50仅在app的主要活动位于现有任务的顶部时预加载app。如果主要活动(主UI显示)是顶部活动(任务顶部处的UI显示),代理50预加载app,否则不加载。
在另一实施例中,预加载代理50通过仅预加载现有任务的顶部活动来响应预加载触发。
在又一实施例中,预加载代理50通过预加载现有任务的两个或更多个活动(包括顶部活动),例如任务的所有活动,来响应预加载触发。
当预加载现有任务的多个活动时,代理50可以以各种顺序预加载活动。在一个实施例中,代理50以从任务的底部进行到任务的顶部的顺序预加载活动。在替代实施例中,顺序从任务的顶部进行到任务的底部。
当预加载现有任务的多个活动时,代理50可以单独预加载每个活动,然后组合单独预加载的活动以便重建任务。例如,通过在单独的临时任务中预加载每个活动,可以单独地预加载每个活动。例如,可以通过将活动移动到单个任务中来执行对单独预加载的活动的组合。
上述实施例的相对优点和缺点在上面引用的美国临时专利申请63/120,806中论述。在替代实施例中,代理50可以使用任何其他合适的技术来预加载app的选定部分并恢复现有任务的预期状态。
尽管本文描述的实施例解决了选定的示例用例,但是本文描述的方法和系统可以用于OS需要预加载具有现有任务和/或一个或更多个现有活动和/或一个或更多个UI保存的状态的app的其他情况。
因此,将认识到的是,以上描述的实施例是通过示例引用的,并且本发明并不限于上文已具体示出和描述的内容。更确切地,本发明的范围包括上文所描述的各种特征的组合及子组合以及本发明的变型和修改,该变型和修改将在本领域的技术人员阅读上述描述之后被想到并且在现有技术中未被公开。通过引用并入本专利申请中的文件被视为本申请的组成部分,除了任何术语在这些并入的文件中在某种程度上以与本说明书中明确地或隐含地做出的定义冲突的方式被定义之外,应该仅考虑本说明书中的定义。
Claims (22)
1.一种方法,包括:
在用户设备的处理器中,决定预加载用户应用,所述用户应用具有一个或更多个用户界面(UI)显示,所述一个或更多个UI显示的状态由所述处理器保持在所述用户设备的存储器中;以及
以后台模式预加载所述用户应用的至少一部分,并恢复预加载的用户应用的状态,以匹配所述一个或更多个UI显示的保持的状态。
2.根据权利要求1所述的方法,其中,所述一个或更多个UI显示当前不是活动的。
3.根据权利要求2所述的方法,其中,所述存储器中保持的状态指示当所述一个或更多个UI显示处于活动状态时所述一个或更多个UI显示的状态。
4.根据权利要求1-3中任一项所述的方法,其中,所述一个或更多个UI显示被布置成堆叠。
5.根据权利要求4所述的方法,其中,预加载所述用户应用的所述至少一部分包括:
检查位于所述堆叠的顶部处的UI显示是否是所述用户应用的主要UI显示;以及
仅当所述堆叠的顶部处的所述UI显示是所述用户应用的所述主要UI显示时,预加载所述用户应用。
6.根据权利要求4所述的方法,其中,预加载所述用户应用的所述至少一部分包括预加载仅位于所述堆叠的顶部处的UI显示。
7.根据权利要求4所述的方法,其中,所述一个或更多个UI显示包括多个UI显示,并且其中,预加载所述用户应用的所述至少一部分包括预加载所述多个UI显示。
8.根据权利要求7所述的方法,其中,预加载所述多个UI显示包括以从所述堆叠的底部进行到所述堆叠的顶部的顺序预加载所述多个UI显示。
9.根据权利要求7所述的方法,其中,预加载所述多个UI显示包括以从所述堆叠的顶部进行到所述堆叠的底部的顺序预加载所述多个UI显示。
10.根据权利要求7所述的方法,其中,预加载所述多个UI显示包括单独预加载所述多个UI显示中的每一个,以及组合单独预加载的UI显示以重建所述堆叠。
11.根据权利要求1-3中任一项所述的方法,其中,所述一个或更多个UI显示包括一个或更多个Android活动。
12.一种用户设备,包括:
显示屏,其被配置成向用户显示用户应用的用户界面(UI)显示;以及
处理器,其被配置成:
决定预加载用户应用,所述用户应用具有一个或更多个用户界面(UI)显示,所述一个或更多个UI显示的状态由所述处理器保持在所述用户设备的存储器中;以及
以后台模式预加载所述用户应用的至少一部分,并恢复预加载的用户应用的状态,以匹配所述一个或更多个UI显示的保持的状态。
13.根据权利要求12所述的用户设备,其中,所述一个或更多个UI显示当前不是活动的。
14.根据权利要求13所述的用户设备,其中,所述存储器中保持的状态指示当所述一个或更多个UI显示处于活动状态时所述一个或更多个UI显示的状态。
15.根据权利要求12-14中任一项所述的用户设备,其中,所述一个或更多个UI显示被布置成堆叠。
16.根据权利要求15所述的用户设备,其中,所述处理器被配置成:
检查位于所述堆叠的顶部处的UI显示是否是所述用户应用的主要UI显示;以及
仅当所述堆叠的顶部处的所述UI显示是所述用户应用的所述主要UI显示时,预加载所述用户应用。
17.根据权利要求15所述的用户设备,其中,所述处理器被配置成仅预加载位于所述堆叠的顶部处的UI显示。
18.根据权利要求15所述的用户设备,其中,所述一个或更多个UI显示包括多个UI显示,并且其中,所述处理器被配置成预加载所述多个UI显示。
19.根据权利要求18所述的用户设备,其中,所述处理器被配置成以从所述堆叠的底部进行到所述堆叠的顶部的顺序预加载所述多个UI显示。
20.根据权利要求18所述的用户设备,其中,所述处理器被配置成以从所述堆叠的顶部进行到所述堆叠的底部的顺序预加载所述多个UI显示。
21.根据权利要求18所述的用户设备,其中,所述处理器被配置成单独预加载所述多个UI显示中的每一个,并且组合单独预加载的UI显示以重建所述堆叠。
22.根据权利要求12-14中任一项所述的用户设备,其中,所述一个或更多个UI显示包括一个或更多个Android活动。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063120806P | 2020-12-03 | 2020-12-03 | |
US63/120,806 | 2020-12-03 | ||
PCT/IB2021/060789 WO2022118131A1 (en) | 2020-12-03 | 2021-11-21 | Preloading of applications having an existing task |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116670646A true CN116670646A (zh) | 2023-08-29 |
Family
ID=81853025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180076802.9A Pending CN116670646A (zh) | 2020-12-03 | 2021-11-21 | 预加载具有现有任务的应用 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11734023B2 (zh) |
CN (1) | CN116670646A (zh) |
WO (1) | WO2022118131A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200252281A1 (en) * | 2019-02-05 | 2020-08-06 | Microstrategy Incorporated | System performance using semantic graph data |
Family Cites Families (109)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6807570B1 (en) | 1997-01-21 | 2004-10-19 | International Business Machines Corporation | Pre-loading of web pages corresponding to designated links in HTML |
US20030101234A1 (en) | 2001-11-28 | 2003-05-29 | International Business Machines Corporation | System and method for indicating whether a document is cached |
US7580972B2 (en) | 2001-12-12 | 2009-08-25 | Valve Corporation | Method and system for controlling bandwidth on client and server |
US6868439B2 (en) | 2002-04-04 | 2005-03-15 | Hewlett-Packard Development Company, L.P. | System and method for supervising use of shared storage by multiple caching servers physically connected through a switching router to said shared storage via a robust high speed connection |
WO2003107186A1 (ja) | 2002-06-18 | 2003-12-24 | 松下電器産業株式会社 | プログラム実行処理端末装置、プログラム実行処理方法及びプログラム |
US20040030882A1 (en) | 2002-08-08 | 2004-02-12 | Forman George Henry | Managed application pre-launching |
US7360161B2 (en) | 2003-12-12 | 2008-04-15 | Sap Aktiengesellschaft | Refreshing a transaction screen |
WO2005109886A2 (en) * | 2004-04-30 | 2005-11-17 | Vulcan Inc. | Controlling one or more media devices |
US7437364B1 (en) | 2004-06-30 | 2008-10-14 | Google Inc. | System and method of accessing a document efficiently through multi-tier web caching |
US8224964B1 (en) | 2004-06-30 | 2012-07-17 | Google Inc. | System and method of accessing a document efficiently through multi-tier web caching |
US8037527B2 (en) | 2004-11-08 | 2011-10-11 | Bt Web Solutions, Llc | Method and apparatus for look-ahead security scanning |
US20080307339A1 (en) | 2006-03-20 | 2008-12-11 | Kidzui, Inc. | Child-oriented computing system |
US8140997B2 (en) | 2005-12-26 | 2012-03-20 | International Business Machines Corporation | Manipulating display of multiple display objects |
US9385914B1 (en) * | 2006-04-06 | 2016-07-05 | Versata Development Group, Inc. | Application state client-side cache for a state-based client-server application |
US20130275899A1 (en) | 2010-01-18 | 2013-10-17 | Apple Inc. | Application Gateway for Providing Different User Interfaces for Limited Distraction and Non-Limited Distraction Contexts |
US20100058248A1 (en) | 2008-08-29 | 2010-03-04 | Johnson Controls Technology Company | Graphical user interfaces for building management systems |
US8812451B2 (en) | 2009-03-11 | 2014-08-19 | Microsoft Corporation | Programming model for synchronizing browser caches across devices and web services |
US8418190B2 (en) * | 2009-11-24 | 2013-04-09 | Microsoft Corporation | Responsive user interface with background application logic for working on an object |
US8798445B2 (en) | 2010-02-26 | 2014-08-05 | Blackberry Limited | Enhanced banner advertisements |
US8620914B1 (en) * | 2010-05-18 | 2013-12-31 | Google Inc. | Ranking of digital goods in a marketplace |
US8832559B2 (en) | 2010-06-25 | 2014-09-09 | LeftsnRights, Inc. | Content distribution system and method |
US8429674B2 (en) * | 2010-07-20 | 2013-04-23 | Apple Inc. | Maintaining data states upon forced exit |
US20120023226A1 (en) | 2010-07-26 | 2012-01-26 | Steve Petersen | Prediction of activity session for mobile network use optimization and user experience enhancement |
US8601052B2 (en) | 2010-10-04 | 2013-12-03 | Qualcomm Incorporated | System and method of performing domain name server pre-fetching |
US9529866B2 (en) | 2010-12-20 | 2016-12-27 | Sybase, Inc. | Efficiently handling large data sets on mobile devices |
CN102063302B (zh) | 2010-12-20 | 2014-07-02 | 北京握奇数据系统有限公司 | 窗口管理方法、系统及终端 |
US20120167122A1 (en) | 2010-12-27 | 2012-06-28 | Nokia Corporation | Method and apparatus for pre-initializing application rendering processes |
US20130283283A1 (en) | 2011-01-13 | 2013-10-24 | Htc Corporation | Portable electronic device and control method therefor |
GB2496537B (en) | 2011-04-27 | 2014-10-15 | Seven Networks Inc | System and method for making requests on behalf of a mobile device based on atmoic processes for mobile network traffic relief |
US8788711B2 (en) | 2011-06-14 | 2014-07-22 | Google Inc. | Redacting content and inserting hypertext transfer protocol (HTTP) error codes in place thereof |
US20120324481A1 (en) * | 2011-06-16 | 2012-12-20 | Samsung Electronics Co. Ltd. | Adaptive termination and pre-launching policy for improving application startup time |
KR20140053036A (ko) | 2011-06-29 | 2014-05-07 | 록스타 컨소시엄 유에스 엘피 | 통신 네트워크를 통해 정보를 프리-로딩하기 위한 방법 및 장치 |
US8612418B2 (en) | 2011-07-14 | 2013-12-17 | Google Inc. | Mobile web browser for pre-loading web pages |
US9384297B2 (en) | 2011-07-28 | 2016-07-05 | Hewlett Packard Enterprise Development Lp | Systems and methods of accelerating delivery of remote content |
US20130067050A1 (en) | 2011-09-11 | 2013-03-14 | Microsoft Corporation | Playback manager |
US8341245B1 (en) | 2011-09-26 | 2012-12-25 | Google Inc. | Content-facilitated speculative preparation and rendering |
EP2792121B1 (en) | 2011-12-16 | 2019-02-20 | Telefonaktiebolaget LM Ericsson (publ) | Network controlled client caching system and method |
US9189252B2 (en) | 2011-12-30 | 2015-11-17 | Microsoft Technology Licensing, Llc | Context-based device action prediction |
US8959431B2 (en) | 2012-01-16 | 2015-02-17 | Microsoft Corporation | Low resolution placeholder content for document navigation |
WO2013126084A2 (en) | 2012-02-21 | 2013-08-29 | Ensighten, Inc. | Graphical overlay related to data mining and analytics |
US20150193395A1 (en) | 2012-07-30 | 2015-07-09 | Google Inc. | Predictive link pre-loading |
CN111614980B (zh) | 2012-08-14 | 2022-04-12 | 俄亥俄州立创新基金会 | 用于通过移动设备来优化网络带宽的使用的系统和方法 |
US9898445B2 (en) | 2012-08-16 | 2018-02-20 | Qualcomm Incorporated | Resource prefetching via sandboxed execution |
US10057726B2 (en) | 2012-10-02 | 2018-08-21 | Razer (Asia-Pacific) Pte. Ltd. | Managing user data on an electronic device |
US9776078B2 (en) * | 2012-10-02 | 2017-10-03 | Razer (Asia-Pacific) Pte. Ltd. | Application state backup and restoration across multiple devices |
WO2014110294A1 (en) | 2013-01-09 | 2014-07-17 | Mcgushion Kevin D | Active web page consolidator and internet history management system |
US9874991B2 (en) | 2013-01-15 | 2018-01-23 | Apple Inc. | Progressive tiling |
US8984058B2 (en) | 2013-03-15 | 2015-03-17 | Appsense Limited | Pre-fetching remote resources |
US9508040B2 (en) | 2013-06-12 | 2016-11-29 | Microsoft Technology Licensing, Llc | Predictive pre-launch for applications |
US20140373032A1 (en) | 2013-06-12 | 2014-12-18 | Microsoft Corporation | Prefetching content for service-connected applications |
US9588897B2 (en) | 2013-07-19 | 2017-03-07 | Samsung Electronics Co., Ltd. | Adaptive application caching for mobile devices |
US9565233B1 (en) | 2013-08-09 | 2017-02-07 | Google Inc. | Preloading content for requesting applications |
US10013497B1 (en) | 2013-12-20 | 2018-07-03 | Google Llc | Background reloading of currently displayed content |
US9513888B1 (en) | 2014-01-30 | 2016-12-06 | Sprint Communications Company L.P. | Virtual preloads |
US10623351B2 (en) | 2014-03-31 | 2020-04-14 | Htc Corporation | Messaging system and method thereof |
CN105094861A (zh) | 2014-05-06 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 网页应用程序加载方法、装置及系统 |
US9959506B1 (en) | 2014-06-17 | 2018-05-01 | Amazon Technologies, Inc. | Predictive content retrieval using device movements |
US9646254B2 (en) | 2014-06-20 | 2017-05-09 | Amazon Technologies, Inc. | Predicting next web pages |
WO2018055506A1 (en) * | 2016-09-22 | 2018-03-29 | Tensera Networks Ltd. | An optimized content-delivery network (cdn) for the wireless last mile |
US9979796B1 (en) | 2014-07-16 | 2018-05-22 | Tensera Networks Ltd. | Efficient pre-fetching notifications |
KR102260177B1 (ko) | 2014-07-16 | 2021-06-04 | 텐세라 네트워크스 리미티드 | 선택된 시각에서 개런티 프리페칭을 사용하는 무선 네트워크를 통한 효과적인 콘텐트 전달 |
US11483415B2 (en) | 2014-07-16 | 2022-10-25 | Tensera Networks Ltd. | Background pre-rendering of user applications |
US11095743B2 (en) | 2014-07-16 | 2021-08-17 | Tensera Networks Ltd. | Optimized content-delivery network (CDN) for the wireless last mile |
US11516309B2 (en) | 2014-07-16 | 2022-11-29 | Tensera Networks Ltd. | Transparent pre-loading of user applications |
US10432748B2 (en) | 2014-07-16 | 2019-10-01 | Tensera Networks Ltd. | Efficient content delivery over wireless networks using guaranteed prefetching at selected times-of-day |
US9509715B2 (en) | 2014-08-21 | 2016-11-29 | Salesforce.Com, Inc. | Phishing and threat detection and prevention |
US9798581B2 (en) | 2014-09-24 | 2017-10-24 | Facebook, Inc. | Multi-threaded processing of user interfaces for an application |
US20160103608A1 (en) | 2014-10-09 | 2016-04-14 | Vellum Tech Corporation | Virtual keyboard of a computing device to create a rich output and associated methods |
US20160180762A1 (en) | 2014-12-22 | 2016-06-23 | Elwha Llc | Systems, methods, and devices for controlling screen refresh rates |
US10083494B2 (en) | 2015-01-30 | 2018-09-25 | Huawei Technologies Co., Ltd. | Systems, devices and methods for distributed content pre-fetching to a user device |
US10691472B2 (en) * | 2015-02-27 | 2020-06-23 | Mitsubishi Electric Corporation | User interface execution apparatus and user interface designing apparatus |
US10152299B2 (en) | 2015-03-06 | 2018-12-11 | Apple Inc. | Reducing response latency of intelligent automated assistants |
US10567477B2 (en) | 2015-03-08 | 2020-02-18 | Apple Inc. | Virtual assistant continuity |
KR102367882B1 (ko) | 2015-03-31 | 2022-02-25 | 엘지전자 주식회사 | 디지털 디바이스 및 상기 디지털 디바이스에서 애플리케이션 데이터 처리 방법 |
US20180241837A1 (en) | 2015-04-21 | 2018-08-23 | Tensera Networks Ltd. | Efficient Pre-Fetching Notifications |
US10459887B1 (en) | 2015-05-12 | 2019-10-29 | Apple Inc. | Predictive application pre-launch |
US10216709B2 (en) | 2015-05-22 | 2019-02-26 | Microsoft Technology Licensing, Llc | Unified messaging platform and interface for providing inline replies |
US11449560B2 (en) | 2015-07-27 | 2022-09-20 | WP Company, LLC | Native integration of arbitrary data sources |
US10452497B2 (en) | 2015-08-14 | 2019-10-22 | Oracle International Corporation | Restoration of UI state in transactional systems |
KR102401772B1 (ko) | 2015-10-02 | 2022-05-25 | 삼성전자주식회사 | 전자 장치에서 어플리케이션 실행 장치 및 방법 |
US10613713B2 (en) | 2015-10-07 | 2020-04-07 | Google Llc | Integration of content in non-browser applications |
US9860336B2 (en) | 2015-10-29 | 2018-01-02 | International Business Machines Corporation | Mitigating service disruptions using mobile prefetching based on predicted dead spots |
US9954665B2 (en) | 2015-11-12 | 2018-04-24 | Telefonaktiebolaget Lm Ericsson (Publ) | Server, wireless device, methods and computer programs for distributing performance of a control task based on a connection quality |
KR102498451B1 (ko) | 2016-03-24 | 2023-02-13 | 삼성전자주식회사 | 전자 장치 및 전자 장치에서의 정보 제공 방법 |
CN107817995B (zh) * | 2016-09-12 | 2021-03-30 | 华为技术有限公司 | 一种后台静默启动应用的方法、装置及终端设备 |
US20180129537A1 (en) | 2016-11-10 | 2018-05-10 | Microsoft Technology Licensing, Llc | Managing memory usage using soft memory targets |
US10089219B1 (en) | 2017-01-20 | 2018-10-02 | Intuit Inc. | Mock server for testing |
KR102340199B1 (ko) | 2017-06-14 | 2021-12-16 | 삼성전자주식회사 | 영상 표시 장치 및 그 동작방법 |
WO2018234967A1 (en) | 2017-06-19 | 2018-12-27 | Tensera Networks Ltd. | SILENT CONTENT UPDATE IN USER DEVICES |
US20190087205A1 (en) | 2017-09-18 | 2019-03-21 | Microsoft Technology Licensing, Llc | Varying modality of user experiences with a mobile device based on context |
WO2019082042A1 (en) | 2017-10-26 | 2019-05-02 | Tensera Networks Ltd. | AUDIO INHIBITION OF APPLICATIONS IN BACKGROUND MODE, PRELOADING AND REFRESHING THEREOF |
CN109976821B (zh) | 2017-12-14 | 2022-02-11 | Oppo广东移动通信有限公司 | 应用程序加载方法、装置、终端及存储介质 |
US10846109B2 (en) | 2017-12-20 | 2020-11-24 | Google Llc | Suggesting actions based on machine learning |
CN109960539A (zh) * | 2017-12-21 | 2019-07-02 | 广东欧珀移动通信有限公司 | 应用程序预加载方法、装置、存储介质及移动终端 |
US20200159816A1 (en) | 2018-01-23 | 2020-05-21 | Grant Bostrom | Methods and systems for automatically delivering content using a refresh script based on content viewability |
US11915012B2 (en) | 2018-03-05 | 2024-02-27 | Tensera Networks Ltd. | Application preloading in the presence of user actions |
US10613735B1 (en) | 2018-04-04 | 2020-04-07 | Asana, Inc. | Systems and methods for preloading an amount of content based on user scrolling |
CN108647052B (zh) * | 2018-04-28 | 2020-12-01 | Oppo广东移动通信有限公司 | 应用程序预加载方法、装置、存储介质及终端 |
CN108762839B (zh) * | 2018-05-22 | 2020-12-18 | 北京小米移动软件有限公司 | 应用程序的界面显示方法及装置 |
CN108920156A (zh) | 2018-05-29 | 2018-11-30 | Oppo广东移动通信有限公司 | 应用程序预测模型建立方法、装置、存储介质及终端 |
CN108804157A (zh) * | 2018-06-05 | 2018-11-13 | Oppo广东移动通信有限公司 | 应用程序预加载方法、装置、存储介质及终端 |
US11003468B2 (en) * | 2018-11-07 | 2021-05-11 | Citrix Systems, Inc. | Preloading of application on a user device based on content received by the user device |
US10824483B2 (en) | 2018-11-20 | 2020-11-03 | R Software Inc. | Application programming interface scoring, ranking and selection |
US11128676B2 (en) | 2019-04-16 | 2021-09-21 | Citrix Systems, Inc. | Client computing device providing predictive pre-launch software as a service (SaaS) sessions and related methods |
WO2021019415A1 (en) | 2019-07-30 | 2021-02-04 | Tensera Networks Ltd. | Pre-rendering of application user-interfaces in user devices |
US11481231B2 (en) | 2019-10-02 | 2022-10-25 | Citrix Systems, Inc. | Systems and methods for intelligent application instantiation |
CN112882777A (zh) | 2019-11-30 | 2021-06-01 | 华为技术有限公司 | 一种分屏显示方法及电子设备 |
US20230054174A1 (en) | 2020-02-13 | 2023-02-23 | Tensera Networks Ltd. | Preloading of applications and in-application content in user devices |
US20210304096A1 (en) | 2020-03-27 | 2021-09-30 | Intel Corporation | Device, system and method to dynamically prioritize a data flow based on user interest in a task |
-
2021
- 2021-11-21 WO PCT/IB2021/060789 patent/WO2022118131A1/en active Application Filing
- 2021-11-21 CN CN202180076802.9A patent/CN116670646A/zh active Pending
-
2022
- 2022-05-08 US US17/739,122 patent/US11734023B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11734023B2 (en) | 2023-08-22 |
WO2022118131A1 (en) | 2022-06-09 |
US20220261258A1 (en) | 2022-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200249864A1 (en) | Systems and methods for performing live migrations of software containers | |
US11915012B2 (en) | Application preloading in the presence of user actions | |
US8572337B1 (en) | Systems and methods for performing live backups | |
RU2736857C2 (ru) | Способ, устройство и терминал для загрузки файлов | |
US20160361644A1 (en) | Method and apparatus of preloading browser game on client | |
US20230054174A1 (en) | Preloading of applications and in-application content in user devices | |
US20220121725A1 (en) | Prefetching using a chain of fetch operations | |
US11734023B2 (en) | Preloading of applications having an existing task | |
CN114467099A (zh) | 用于不同应用程序进程的初始数据分布 | |
US8904093B1 (en) | Managing lifetime of limited usage storage devices in a caching system | |
US10831369B2 (en) | System and method for synchronizing caches after reboot | |
US20210049070A1 (en) | FaaS In-Memory Checkpoint Restore | |
US11922187B2 (en) | Robust application preloading with accurate user experience | |
US20220179668A1 (en) | Robust Application Preloading with Accurate User Experience | |
CN116783576A (zh) | 应用预加载的调度 | |
US20210026809A1 (en) | Data caching method and node based on hyper-converged infrastructure | |
CN111857580B (zh) | 一种分布式存储系统的相同写方法和装置 | |
CN112436953B (zh) | 页面数据备份、容灾页面显示方法及装置 | |
CN117063156A (zh) | 具有准确的用户体验的稳健应用预加载 | |
US20170083167A1 (en) | Preserving form data in background browser tabs | |
WO2022180505A1 (en) | Robust application preloading with accurate user experience | |
CN114296653A (zh) | 基于固态硬盘的加速映射表更新方法、装置及计算机设备 | |
KR101445779B1 (ko) | 단말 초기화 서비스 제공 방법 및 장치 | |
FR3057969A1 (fr) | Systeme de pilotage deterministe du fonctionnement de moyens de transfert de donnees par acces direct a des moyens de memorisation |
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 |