CN116670646A - 预加载具有现有任务的应用 - Google Patents

预加载具有现有任务的应用 Download PDF

Info

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
Application number
CN202180076802.9A
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.)
Tensera Networks Ltd
Original Assignee
Tensera Networks Ltd
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 Tensera Networks Ltd filed Critical Tensera Networks Ltd
Publication of CN116670646A publication Critical patent/CN116670646A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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
    • 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/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading
    • 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/46Multiprogramming arrangements
    • G06F9/48Program 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活动。
CN202180076802.9A 2020-12-03 2021-11-21 预加载具有现有任务的应用 Pending CN116670646A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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