CN105431822A - 应用的预测预启动 - Google Patents
应用的预测预启动 Download PDFInfo
- Publication number
- CN105431822A CN105431822A CN201380077373.2A CN201380077373A CN105431822A CN 105431822 A CN105431822 A CN 105431822A CN 201380077373 A CN201380077373 A CN 201380077373A CN 105431822 A CN105431822 A CN 105431822A
- Authority
- CN
- China
- Prior art keywords
- application
- pretrigger
- prediction
- computer system
- user
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
-
- 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
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
公开了在计算机系统中预启动应用的系统和方法,所述应用很可能从终止和/或暂停进程状态由用户激活。应用的预启动可以基于正在被激活的应用的评估概率以及系统资源的可用性水平来影响这样的预启动。应用可以基于这些和其它条件/考虑被预启动,被设计成改善后台中的应用的快速启动的用户体验。若干个预测模型被呈现以提供正在由用户激活的应用的似然性的良好估计。这样的预测模型可以包括自适应预测器(基于过去的应用使用情形)和/或切换速率预测器(基于正在被切换的并且可能具有被应用到这样的切换速率测量的衰减速率的应用的历史数据)。
Description
背景技术
由于在初始化期间所使用的资源,所以启动应用是昂贵的操作。随着可以趋向于比传统台式机具有更多的硬件约束的低代价设备的普及,这个问题可能进一步加重。在过去,像高速缓存的解决方案已经用于加速应用启动。虽然这些解决方案改善了应用的启动时间,但是它们可能不足以给予用户足够的响应或所期望的性能,并且当高速缓存空间有限时,可能不太有效。
发明内容
以下内容呈现发明的简化概述以便提供对本文中所描述的一些方面的基本理解。该发明内容不是要求保护的主题的广泛概述。它既不旨在标识要求保护的主题的关键元素或必要元素,也不旨在描绘本主题发明的范围。其唯一目的是以简化形式呈现所要求保护的主题的一些概念,以作为稍后呈现的具体实施方式的前序。
公开了在计算机系统中预启动应用的系统和方法,所述应用很可能从终止和/或暂停进程状态由用户激活。应用的预启动可以基于正在被激活的应用的评估概率以及影响这样的预启动的系统资源的可用性水平。应用可以基于这些和其它条件/考虑被预启动,其被设计成改善后台中的应用的快速启动的用户体验。若干个预测模型被呈现以提供正在由用户激活的应用的似然性的良好估计。这样的预测模型可以包括自适应预测器(基于过去的应用使用情形)和/或切换速率预测器(基于被应用到这样的切换速率测量的正在被切换的并且可能具有衰减速率(decayrate)的应用的历史数据)。
在一个实施例中,公开了一种用于在计算机系统内预启动应用的方法。该方法可以包括以下步骤:对于给定的应用集合,所述应用能够由计算机系统的用户激活,将所述应用何时可以由所述用户激活的预测与所述应用相关联;监控所述计算机系统的系统资源;将预启动规则集合应用于所述应用集合,所述预启动规则包括组的其中一个,所述组包括:关于所述系统资源可用性的规则和关于与所述应用相关联的所述预测的规则;和基于所述预启动规则集合的满足来预启动一个所述应用。
在另一实施例中,公开了一种用于在计算机系统上预启动应用的系统。该系统可以包括:预测引擎,所述预测引擎能够提供给定应用可以由所述计算机系统的用户激活的似然性的预测测量;资源监控器,所述资源监控器能够提供所述计算机系统的系统资源利用的测量;预启动策略模块,所述预启动策略模块能够应用预启动策略规则集合,所述预启动策略规则包括组的其中一个,所述组包括:关于所述系统资源可用性的规则和关于与所述应用相关联的所述预测测量的规则;和预启动队列模块,所述预启动队列模块能够维护用于在所述计算机系统预启动的应用列表,所述应用列表取决于所述预启动策略规则的满足。
当结合在本申请中呈现的附图阅读时,下文在具体实施方式中呈现本系统的其它特征和方面。
附图说明
在参照的附图中图示了示例性实施例。旨在使本文中所公开的实施例和附图被认为是说明性的而非限制性的。
图1描绘了按照本申请的原理做出的本系统可以驻留在其中的许多个示例性环境。
图2示出了按照本申请的原理做出的本系统的一个实施例。
图3是用于在其中预测预启动是可能的应用的状态图的一个实施例。
图4描绘了范例示例以图示本系统和方法的使用。
图5和图6描绘了可以在本申请的一些实施例中采用的自适应预测器的一个实施例和一个范例示例。
图7和图8描绘了可以在本申请的一些实施例中采用的速率预测器的一个实施例和一个范例示例。
具体实施方式
如本文中所利用的,术语“组件”、“系统”、“接口”、“控制器”等旨在是指计算机相关的实体,或者是硬件、软件(例如,执行中的)和/或固件。例如,这些术语的任一个都可以是在处理器上运行的进程、处理器、对象、可执行程序、程序和/或计算机。通过图示的方式,在服务器上运行的应用和服务器两者可以是组件和/或控制器。一个或多个组件/控制器可以驻留在进程内,并且组件/控制器可以被定位在一个计算机上和/或分布在两个或更多个计算机之间。
参照附图对所要求保护的主题进行描述,其中,相同的附图标记在全文中被用于指代相同元件。在以下说明书中,出于解释的目的,许多特定细节被阐述以便提供对本主题发明的透彻理解。然而,明显的是,所要求保护的主题可以在没有这些具体细节的情况下被实施。在其它实例中,众所周知的结构和设备以方框图的形式示出,以便促进描述本发明。
预测预启动的概述
在很多实施例中,可以期望操作系统提供快速且流畅的用户体验。如所提及的,其中该愿望没有完全实现的一个领域是现代应用的启动时间。一个可能的实施例影响以下方面:因为启动应用趋向于比切换到暂停应用更加昂贵,所以在应用由用户启动(并且可能将它置于暂停状态)之前预加载该应用可能趋向于改善应用的所感知的起动性能。在另一实施例中,可以期望当终止应用时本系统做出正确的选择—作为潜在地减少昂贵的新的应用启动的实例的方式。另外,可以期望具有对用户透明地工作的这些特征,例如,用户可能仅注意到改善的性能,而没有注意到任何(或很多)实现方式细节。
在考虑本文中的预测预启动的各种实施例中,应当领会的是,预测预启动的方法和技术可以在许多不同场景中采用。在一些场景中,本系统可以执行用于单独应用的其预测预启动,例如,一次考虑一个。在其它情形中,本系统可以考虑有关应用的集合。例如,以下是用户应用和在其中本系统可以采用本申请的技术的方式的示例的部分列举:
(1)典型地一起使用而不管特定次序的应用的组,例如,办公应用(例如,文字处理器、演示软件、电子表格软件等)。
(2)典型地以一定顺序使用的应用:由浏览器跟随的新闻应用、照片编辑器或pdf阅读器跟随的电子邮件应用等。
(3)典型地在一天中的某些时间或一周中的某些天使用的应用:查看新闻、电子邮件、天气预报、上班前早上交通、从会议/午餐(会议通常周复一周的重复)回来后查看电子邮件/IM、下午6点下班之前查看交通、星期五下班之前查看周末天气、晚上在家查看新闻/体育、查看用户的日历等。
(4)在规律的时间间隔所使用的应用:每天在午餐时期间查看新闻/股票。
(5)位置特定的应用使用(例如,经由GPS/Wi-Fi、用户输入等收集的):平板设备在工作时用于工作,但在家里用于孩子们的游戏。
(6)响应于计算机中的某些事件所使用的应用:登录之后或者从睡眠状态唤醒计算机之后,使用电子邮件应用和IM应用。
示例性环境
图1是预测预启动可以驻留在其中的一些示例性环境的一个实施例。如在图1中可以看出,本系统的实施例可以安装在计算机系统102内。合适的计算机系统可以包括任意数量的系统,例如,PC/台式机102a、膝上型计算机102b、平板计算机102c或者任何智能设备、智能手机。该系统具有运行本系统的足够的处理和存储器能力可能就足够了。
如本领域已知的,计算机系统102还可以包括控制器104,该控制器104进而可以具有一个或多个处理器(例如,CPU和/或GPU)和计算机存储器。计算机系统102还可以具有安装在存储器中的和工作以控制可以由计算机系统的用户激活的各种应用的生命周期的操作系统106。
如本文所描述的,本申请的一个实施例可能已经安装预测预启动108模块,该预测预启动108模块可以与操作系统106结合工作以影响本系统的方法和技术以及它们的各种实施例。
在本系统的其它实施例中(并且如将在下文中更详细地讨论的),预测预启动可以(整体或部分)远离任何具体计算机系统而被安装。如图1所示,预测预启动模块可以在客户端-服务器模型(或任何其它合适的模型)中经由服务器110接入计算机系统。如下文将要讨论的,如果与应用的用户使用模式有关的某些数据和/或元数据可以被远程地共享,那么任何一个用户的预测预启动的效果可以跟随和/或迁移到用户可以拥有和/或访问的任何其它计算机系统112。
一个实施例
图2描绘了按照本申请的原理做出的本系统的一个可能实施例。
系统200包括可以驻留在操作系统中的许多(可能可选的)模块,其在计算机系统(例如,智能电话、智能设备、平板设备、膝上型计算机、台式机等)内的处理器上运行。在可替换的实施例中,这些模块的一些(或全部)可以远离操作系统驻留,但与计算机系统的操作系统通信。应当领会的是,存在许多本系统的可能实现方式,并且该本申请的范围涵盖所有这样的可能实现方式和/或实施例。
预启动服务模块202包括处理模块集合,例如,预测引擎204、资源监控器206、预启动策略208和预启动队列210。预测引擎204可以包括可以帮助本系统评估计算机系统的用户所需要和/或期望运行特定应用的概率规则和/或启发式集合,如本文中更详细地描述的。预测引擎可以关联任何给定应用可以何时由用户激活的预测。
应当领会的是,与应用相关联的预测可以包括任何已知的数据结构和/或元数据结构的形式。如果满足用于预启动的一些合适规则/启发式集合,则预测可以被本系统利用以帮助做出关于哪些应用可以被预启动的决定可能是足够的。这些规则可以包括:监控和/或测试可用系统资源和/或预启动策略规则/启发式,如将在本文中进一步讨论的。
资源监控器206可以评估计算机系统的资源的利用,例如,用于应用的潜在预启动的当前可用的处理和/或存储器资源。预启动策略208可以将用于本系统可以何时期望地预启动一个或多个应用的规则和/或启发式通知给本系统。预启动队列210可以访问关于可能已经预启动和/或被期望预启动的应用的元数据和/或数据集合。
将领会的是,出于本申请的目的,这些模块的一个或多个可以是可选的。本系统能够确定哪些应用是用于预启动的“良好”候选,例如,是否是由于由用户选择的概率、由于预启动应用的可用资源、由于规则和/或启发式已经选择用于预启动的特定应用还是上述因素的任何组合。
这些模块可以经由外部接口和/或API212(例如,允许其它模块访问本系统)集合来访问。例如,服务214可以向标识已经被预启动的应用的系统202发送信号。在一个实施例中,服务系统214可以仅向系统202发送应用更新、应用安装和请求预启动应用的通知。服务组件可能不知道哪个应用已经预启动,因此它可能不能够为系统202标识这样的应用。进程生存时间管理器(PLM)216可以请求用于可能应用的预测数据考虑预启动。另外,PLM可以请求预测数据以做出存储器管理或终止决定。预启动API218可以从系统202接收信号以便预启动特定应用。在一个实施例中,PLM可以负责决定用于任何APP的当前应用执行状态以及决定哪些应用应当保持存储器(暂停对终止)。
在另一实施例中,可能的是,预启动服务从系统中的其它组件接收关于应用安装、服务和使用的消息,以驱动其自己的预启动决定。另外,其它系统组件可以请求应用使用预测数据驱动它们自己的管理决定(例如,如与PLM和应用终止一样)。
图3描绘了当本系统在应用的生命周期期间可以影响时,用于应用的一个状态图300。一般地,运行和/或可用于计算机系统的应用可以包括多个进程状态,例如,未正在运行302、正在运行304和/或暂停306。如可以看出,如果应用处于未正在运行状态302,则可以以许多不同的方式促使应用处于正在运行状态304。例如,该应用可以由用户启动。在另一示例中,应用可以由本系统预启动,取决于数据/元数据和/或确定给定应用是否应该被预启动的本系统的规则/启发式的满足。
当应用处于正在运行状态304时,则应用可以由计算机系统的合适的用户置于暂停状态306。另外,可以由计算机系统的这样的合适用户终止正在运行的应用。这些转变可能全部或部分受到由本系统影响。如果应用处于暂停状态306,则正被讨论的应用可以由合适的用户恢复或可以例如由资源策略和/或服务模块而终止。
如可以看出,本系统可以允许终止的应用(例如,处于未正在运行状态302)在后台中被预启动。在一个实施例中,该预启动的终止应用可以转变为暂停状态306,并且准备好恢复,作为到正在运行状态304的路径。
应当领会的是,出于本申请的目的,预启动可能不要求该系统支持用于应用的“暂停”状态。对于仅具有用于应用的正在运行/未正在运行状态的系统,预启动是可能的。
在一个实施例中,可以针对正在由预启动激活的应用,启用节流(throttle)。如果应用先前由用户终止,则它可以由预启动激活至其初始状态,在一个场景中,当应用被激活时,闪动屏幕(splashscreen)可能会短暂出现。如果应用由PLM终止,则它可以由预启动激活至其上次保存的状态,其中先前的图形提示是完整的和/或其退栈(backstack)位置还原。如果应用已经存在于暂停状态,则预启动可以忽略它。在一些实施例中,当在后台中预启动应用时,可能不期望干扰用户活动并且同样地,预启动的应用可以指派低资源优先级(例如,CPU、I/O、GPU、存储器资源)。
在一个实施例中,当应用被预启动时,可以通知与用户激活相反地该激活是由于预启动。在预启动期间,该应用可能不可见。例如,预启动可能在后台而非在前台发生。另外,在预启动发生后的一段固定的时间内,应用可以被暂停。另外,可以期望允许应用检测它正在被预启动以使得例如该应用可以更改其行为(如果需要的话)。
新应用生命周期实施例和模型
如所提及的,可能存在通知本系统预启动任何特定应用的规则和/或启发式。在一个实施例中,可以为现代应用引入新应用生命周期模型。例如,与终止应用并且随后重新启动应用相反,可以期望当特定应用应该被暂停并且在第一次启动之后被恢复时,应用规则和/或启发式。在一个实施例中,系统可以应用以下规则和/或启发式以用于代替具有可能预启动机会的典型终止场景。
终止场景 | 预启动操作 |
重新起动计算机系统终止所有当前正在运行的应用 | 在重新启动(re-boot)之后预启动最有可能被启动的应用 |
服务终止应用以安装更新 | 在更新之后,预启动应用 |
进程生存时间管理器(PLM)终止应用以释放系统资源 | 防止PLM终止很可能被使用的应用 |
用户手动终止应用 | 如果应用很可能在不久的将来被启动,则预启动该应用。 |
当正在运行的应用崩溃时,另一终止场景发生。在这种情况下,可能存在很多可能的可替换方式以供考虑。例如,如果该应用很可能再次崩溃,则可能不期望预启动/重新启动该应用。这可能使计算机系统进入应用重新起动循环。在这样的情况下,可能的是:(1)预启动当用户正在主动使用其时崩溃的应用和/或(2)排除在起动时崩溃的应用而不预启动。将领会的是,其它规则和/或启发式可以被采用于崩溃的应用,或服务于这些和/或其它终止场景。
一个范例使用示例
为了获得对本系统和方法的更好的领会,图4描绘了本系统和方法的一个范例使用示例。用户401可以正在使用计算机系统402a(例如,智能设备、平板计算机、膝上型计算机、台式机等等)并且当登录到计算机系统上时,典型地喜欢使用至少三个应用,例如,旅行应用403a、新闻应用403b和403c。
这些应用可以经由计算机系统402的操作系统并且与预启动应用的本系统合作来管理,以提供给用户更好的用户体验、更快的启动应用和/或更好地利用计算机系统资源。
会话模块408可以维护关于应用(例如,403a,403b与403c)的先前会话使用的数据和/或元数据。这样的数据/元数据可以被存储或上传(在远程访问的情况下),以通知数据库或存储装置414这样的使用。该数据/元数据可以被预测预启动模块412访问。
所图4中所描绘的,在第一时间,可以发起新会话410(例如,或许在由用户或其它方式起动的计算机系统上)。在这样的情况下,或许在那时无正在运行的应用。预测预启动模块412(例如,咨询用户的使用数据和其采用用于决定预启动应用的规则和启发式集合)可以决定预启动旅行、邮件和新闻应用到后台,即使在用户已经命令激活这些应用之前。这些预启动的应用在新会话406(其处于空闲状态)中示出。
一段时间之后,或许用户可以激活邮件应用(其可以在后台从暂停转变为正在运行)。然后,会话404可以在这个时候从空闲(IDLE)转变到活跃(ACTIVE)状态。
在本系统的其它实施例中,可能(如果不期望)将本系统从单个计算机系统扩展到该用户可以拥有、使用和/或访问的其它计算机系统。例如,在另一实施例中,用户的应用使用模式的数据和/或元数据可以与用户可以拥有和/或访问的其它计算机系统(例如,402b和402c)共享。如果这些其它计算机系统已经安装了本系统,或者可以经由客户端-服务器或其它合适的模型访问,那么这样的预测预启动可以从计算机系统到计算机系统进行迁移并且跟随用户。
例如,当用户访问并且使用计算机系统402a时,用户可以惊讶地得知,常用邮件的应用、旅行应用和新闻应用正在更快地加载在计算机系统402b和402c上。
另外,对于需要访问用户的计算机系统外部的数据的应用(例如,需要典型地经由因特网或其它远程数据源更新内容的他的新闻应用),该用户可能还注意到他的新闻应用在启动时基本上瞬间显示最新的故事,并且“正在下载”指示符在屏幕上几乎没有花费任何时间。在一个实施例中,本系统可以定期标识需要外部数据和/或元数据并且取决于(或许)计算机资源的可用性主动检索这样的外部数据/元数据的这样的应用,来检索这样的数据,而不会对当前正在运行的应用产生负面影响。
在另一实施例中,对于周期性更新,相同改善的用户体验可以是可能的。例如,用户可以得到新计算机系统。用户可以从在线应用商店下载并安装应用。有利于应用普及的因素中的一个是开发人员针对他们的应用提供频繁更新、修正漏洞和增加新特征的能力。每当用户看到在网上应用商店处更新的通知,用户就选择安装所有更新的选项。在更新完成时,用户启动新更新的应用,以尝试新特征。用户可以看到更新后的应用仍然出现在他的当前正在运行的应用列表中,并启动它们是快速和无缝的。
预测引擎的实施例
针对合适的预测引擎,存在很多不同的可能实施例。在一个实施例中,预测引擎可以利用可以考虑单独应用和/或可以由用户激活的应用组的预测模型(如下文进一步所讨论的)。这样的模型可以确定用于应用何时可以由用户激活的概率和/或一些其它测量。如所提及的,除本文中所讨论的因素之外,这些模型可以包括在各种数据和/或信号,例如,在新应用安装处的过去应用使用的次序和频率、一天中的时间、一周中的时间。初始预测数据可以来源于多种源,例如,从社区收集的使用数据和/或聚合数据/元数据和正在升级的机器上的应用使用数据、或用户可以访问的新机器。这样的预测数据还可以跨系统备份/还原和/或计算机系统刷新而保留。
例如,出于本申请的目的,以下是可能预测器集合:
(1)最常见的预测器
该预测器可以针对前20个最频繁激活的应用返回概率1.0并且针对所有其它应用返回概率0.0。
(2)最常用的预测器
该预测器可以返回(应用的总使用时间)/(所有应用的总使用时间)的概率。
(3)空预测器
该预测器总是返回概率0.0。在这种情况下,本系统可能不使用指派给应用的任何预测值;但是仍然可以针对预启动应用来应用所期望的规则和/或启发式。
(4)自适应预测器
该预测器可以在过去通过考虑当前前台应用、最后前台应用和当前应用已经使用多久来标识与当前情形类似并且将它们与当前情形相比较的应用使用情形。一旦它已经标识了这些情形,预测器就可以返回导致所查询的事件(和/或正在被激活的应用)发生在预测窗口内的情形的百分比和/或测量。
参照图5和图6(并且在很多实施例中),自适应预测器可以对应用使用周期分组(被称为“情况”)进行操作。如图6所示,创建情况的一种方式可能受采用相邻应用使用周期组(例如,3个或任何所期望的数量)影响。将领会的是,还可能使用其它分组(诸如当前应用切换、先前应用切换和在应用切换之后落入预测窗口内的任何周期)创建情况。
为了确定“应用X”被切换到下一预测窗口的概率,预测器可以对所有情况迭代并且基于它们的特性分类它们的每一个。一旦情况被分类,本系统就可以调整该情况匹配的每个类别的计数。每个类别可以具有积极(positive)情况的计数和总情况的计数。如果应用X被切换到该情况内,则该情况为“积极的”。
一旦已经对这样的情况进行了分类并且对计数进行了更新,本系统可以确定当前情形匹配哪些类别并且将权重指派给类别。这些权重可以是静态的或可能取决于诸如类别中的总情况的数量和当前情形是否匹配该类别之类的因素,例如,指派权重(例如,0.4、0.4和0.2)。一旦已经指派了权重,可能通过针对每个类别取加权和(积极的情况)/(总情况)计算最终概率。
图5给出了按照本申请的原理作出的“自适应”预测引擎模块的一个实施例。预测引擎模块可以接收给定应用的生命周期的活动数据(例如,应用由用户激活的次数、激活的一天的时间、激活的时间长度等等)。应用的这些使用可以形成应用使用的“情况”集合。每个情况可以被评估未来和/或潜在的激活的计算的、预测的和/或估计的概率。
在502,自适应预测可以开始,并且如果正在由预测引擎考虑的应用之前从来没有看到过(在504),则需要被预启动的应用的概率可以被给予初始值,例如,0(在506),并且在508,该进程结束。
否则,之前已经看到和/或考虑应用。该发生可以被设定为该应用的最近情况(在510)。自适应预测可以分类该当前情况(在512),并且更新针对该情况的计数(在514)。引擎可以考虑是否存在任何进一步的附加的情况以在此时考虑(在516),并且如果是,引擎可以适当递增当前情况(在518)。在已经考虑了所有当前情况时,然后引擎可以分类当前情形(在522)。
在一些实施例中,“当前情形”可以包括当前应用、先前应用和系统已经在当前应用中存在多久。可能将该概念从最后2-3个应用扩展到最后N个应用。当计算概率时,自适应预测器可以考虑类似于当前情形的先前情况并且在那些情况之后,查看已经使用了哪些应用。在一个实施例中,“适应性”可以来自这样的事实:在过去,算法关于找到精确相同情形不是严格的,例如,如果在过去不存在类似于当前情形的足够数量的示例,则该算法可以放松“当前情形”的定义,并且通过考虑N-1个最近应用和/或通过归纳在当前应用中花费多长时间来使其不那么特定。
当已经如此分类和/或处理数据时,引擎然后可以基于所期望的规则和启发式计算潜在激活概率(在524)。这样的规则和/或启发式可能包括:应用正在运行的时间量的时间加权平均、在其中应用被激活和/或正在运行的一天中的时间等等。
图6描绘了可以由图5所描绘的自适应预测模块所维护的一个示例性数据/元数据集合。在适当时,该数据/元数据可以被存储在计算机系统内或计算机系统外部。如可以看出,本示例在所期望的时间段的过程内考虑了四个应用(即,A,B,C和D)的数据。将领会的是,时间段(例如,一天、一周等)可以根据本系统的期望而变化。
在该示例中,从时间=00:00直至14:20(示例中的当前时间),存在由本系统考虑的许多情况(情况1、…、情况9)。这些情况可以表示重叠时间段(例如,情况1和情况2等),或者它们根据需要可以不重叠。根据一些信号(例如,激活和/或使用应用(例如,将从应用暂停移动到正在运行)),每个情况可以开始。在该示例中,可以看出,最后的情况是当前情形(并且如影线所示),并且情况1-9表示历史条目。
当这些情况被处理时,每个情况可以分类为任何数量的类别。每个类别可以被预先定义为用户的使用情况和/或模型(例如,其可以取决于用户是否在工作、用户所进行的什么活动等等而变化)。自适应预测引擎可以继续处理这些情况,例如,以提供用于预测窗口的预测(其被示为经过当前时间的所期望的时间段)。
该分类数据可以被用于执行可能权重的概率计算。如可以看出,最终概率可以被计算和/或估计为可能与所期望的预测窗口相关。
一旦这些概率已经被设定,它们就可以作为规则和/或启发式的一部分由本系统的其它模块(例如,预启动策略)而利用,以确定是否预启动给定的应用。
(5)切换速率预测器
在该实施例中,可能基于单独和/或社区数据提供使用应用中的可能通用属性(比如切换频率和时间)以做出其预测的模型。
参照图7和图8,一个速率预测器可以对应用切换进行操作。这样的速率预测器可以迭代和/或考虑在历史中的所有应用切换,并且维护多种信息,例如,速率计数和持续时间。速率计数和持续时间可以被划分成类别,例如,可能针对一天的不同时间保持分开的计数和持续时间。
在一个实施例中,对于每个应用切换,预测器可以首先衰减所有计数和持续时间。这可以基于自从上次应用切换的时间通过应用指数衰减进行;然而,其它可能衰减函数确实存在。
一旦已经应用了衰减,本系统就可以分类该应用切换并且递增对应的速率计数。然后,本系统可以分类导致该应用切换的时间,可能在不同类别之间拆分时间段,并且将时间添加到对应的持续时间。例如,如果类别是中午之前(BeforeNoon)和下午(Afternoon),则当前时间为12:30,最后的应用切换是11:00,本系统可以将1小时添加到中午之前并且将30分钟添加到下午。
一旦本系统已经处理了应用切换,本系统就可以分类当前情形。然后,本系统可以将权重指派给每个类别并且计算加权和,例如,用于每个类别的(速率计数)/(持续时间)的加权和。这给予本系统然后可以转换成概率的最终速率。
附加的速率预测器实施例
在一个实施例中,速率预测器尝试估计感兴趣的事件(比如例如,用户切换到浏览器应用)将在当前时间(currenttime)t的某个间隔δ内发生的概率。也就是说,为了回答这个问题“事件将在时间t和t+δ之间发生的概率是什么?”。如果预测器知道,平均来说,该事件以每单位时间λ个事件的速率出现,则这个概率可以被计算为。因此,预测器可以集中于估计事件在每个时间的速率λ。
实施例1:总体速率预测器
如果预测器已经观察到用户持续时间d和事件发生n次,则自然估计是使用。如果t0为预测器开始观察用户的时间,则ti是目标事件的观察到的次数,并且t是当前时间,则预测器可以采用:
给出
实施例2:每个上下文(Per-Context)的速率预测器
假设预测器知道速率可以具有不同上下文。例如,假设速率在一周的不同天而不同。然后,如果t=“13:21.02、星期五、2013年5月31日”,则可能使用:
如果感兴趣的事件的速率在登录的第一分钟内不同,则可能使用:
一般而言,如果在时间t的上下文(例如,一周中的一天、一天中的时段、或者是否在登录的某个时间之内或之后)为c(t),则可能计算在每个上下文c(例如,在星期日、星期一、…、星期六)中观察到感兴趣事件的次数,其可以由nc(t)表示并且可能计算在每个上下文c中观察到用户的总持续时间,其可以由dc(t)表示,并且使用:
如果Ic(t)是当上下文是1时,等于1,否则为0的函数,则可能使用:
实施例3:衰减的速率预测器
随着t的增加,计数nc(t)和持续时间dc(t)增加地越来越大,并且变得受越来越过时的用户行为支配。为了克服这个问题,可能引入新近加权(recency-weighting),使得更近行为在计数和持续时间上被更重地加权。一个选项可以是指数加权,其中,当估算稍后时间Δ的计数和持续时间时,在时间的行为是给定的权重。在这种情况下,可能使用:
如果事件(在这种情况下,应用切换(appswitch))在上下文中改变(change)(例如,在一天中的改变)并且查询(query)(即,PLM查询预测器)在时间上向前(forward)发生,则这些计数(count)、速率和持续时间(duration)可以被计算,其在图7中以流程图的形式示出并且在此重复如下:
1.对于每个应用(app)和上下文(context):设定duration[app,context]=0,设定count[app,context]=0(702)
2.设定last_time=now,context=current_context(704)
3.等待下一应用切换,上下文改变或查询(706)
4.设定delay(延时)=now-last_time(708)
5.设定decay(衰减)=exp(-(delay)/delta)(710)
6.对于每个app'和context':设定duration[app',context']=decay*duration[app',context']+delay*(1—decay),设定count[app',context']*=decay(712)
7.如果(appswitch)count[app,context]++(714)
8.如果(appchange)设定context=current_context(716)
9.如果(query)返回count[queried_app,context]/duration[queried_app,context](718)
10.设定last_time=now(720)
11.转到3(722)。
图8描绘了示出随时间在各种应用之间的切换的关于4个应用(A,B,C和D)的一个示例性数据集合。例如,考虑在图8中被标记为“APPA”的速率曲线。当应用A被激活并且在该时间正在运行时,它开始于在时间00:00速率计数为1。该曲线的斜率小于1,示出了衰减速率正在随时间而被应用。这样的衰减速率可以取决于启发式(例如,用于应用的在切换之间的时间越长,对于用户来说该应用就越不“流行”)。将领会的是,即使衰减速率被示为线性下降,但是也可能存在更复杂的衰减速率和/或函数,以反映不同模型和/或启发式。
在时间07:49,APPA再次被激活,并且速率计数是从它所在之处逐渐增加。APPA的最终值可以是2或更小,这取决于正在被应用的衰减速率。对于APPA,类似的逐渐增加是在时间10:46和13:48发生,并且此后衰减速率被应用。
同类的描述可以以类似的方式被应用于每个APPB,C和D。然后,这些速率曲线根据一些规则和/或启发式由预启动模块应用,例如,切换速率大于某个阈值的某些应用可以被预启动。
预启动策略的实施例
在很多实施例中,预启动策略模块可以确定多种动作,例如,(1)什么触发运行预测;(2)确定应当通过预启动被激活的应用;和/或(3)随着计算机系统的电源状态和系统资源使用预启动行为如何表现。
存在许多可用于本系统的潜在预启动策略。仅对于两个示例,本系统可以采用:(1)简单预启动策略和(2)积极主动的(aggressive)预启动策略。
对于简单预启动策略,可以期望预启动在预启动预测窗口内被启动的概率大于所期望的概率阈值和/或横条(bar)的所有应用。可以期望只要适配于存储器就预启动尽可能多的应用,而不触发PLM策略,并且以递减的概率次序执行预启动。对于一个示例,可能只要适配于存储器就预启动尽可能多的应用,并且避免推动该系统超过阈值,其中它可能开始终止先前运行的应用。
对于更积极主动的预启动策略,可以期望选择性地预启动满足所期望的概率阈值/横条的应用,例如,例外之处在于它没有试图避免触发PLM。在一个这样的情况中,预启动策略模块可以启动这样的应用,直到存储器满。例如,一个积极主动的预启动策略将预启动如果其使用概率高于当前正在运行/暂停的应用的任一个,则可能发生的应用。因此,该系统可以保持具有最高概率的应用运行/暂停。
在很多实施例中,预测引擎和预启动策略模块可能并不总是运行,并且可以控制它们自己的调度。在一个实施例中,这些模块可以以所期望的间隔运行。例如,如果计算机系统不是处于连接待机,则预测引擎模块可以以固定间隔运行(例如,以15分钟的间隔等)。如果预测不被认为是非昂贵的进程,则该间隔可以变化或被减少。另外,预启动模块可以在各种点(诸如,用户登录、从睡眠/休眠中恢复等)期间被显式地触发。
当计算机系统处于连接待机时,存在用于触发预测的许多选项。
(1)使用预测以确定计算机系统何时可以退出连接待机,并且在计算机系统退出连接待机之前,抢先运行预测和预启动;
(2)当计算机系统退出“安静模式”时,运行预测和预启动。安静模式可以是其中不允许运行后台任务以便保存电池寿命的可配置的时间段(例如,典型地在午夜)。可以期望当计算机系统处于安静模式时,不运行预测。
(3)当计算机系统处于连接待机时,以较长的间隔运行预测。
如果在预测已经运行之前,计算机系统退出连接待机,那么可以期望运行关于退出连接待机的状态转变的预测。如果由预启动激活的应用被节流,则对用户体验的影响可能是最小的。
一个节流的实例可以在GPU节流的上下文中。在这种情况下,可以以以下方式建模GPU节流。
图形内核对每个进程维护“干扰计数器”。这个计数器计数因为GPU忙于处理来自目标进程的命令,所以来自前台进程的GPU分组/命令不得不等待的次数。可替换地,可以保持追踪该进程占用了多少GPU时间。另外,图形内核还维护可以从用户模式查询的整个GPU的利用度量。
当本系统决定预启动应用时,可以首先等待整个GPU利用安静下来(例如,以类似的方式,也像等待CPU和磁盘安静下来)。在预启动期间,本系统可以频繁地查询用于预启动应用的干扰计数器。可替换地,代替轮询,当干扰计数器达到一定值时,可以得到通知。
如果检测到干扰,则正在被预启动的应用可以暂时“中止”,这意味着其线程被暂停。该应用仍处于中止状态,要么直至整个GPU利用下降,要么直至它停留在用于阈值量的中止状态(例如,几秒钟、或某个期望的阈值,以避免网络连接失败)。
当应用离开中止状态时,该应用继续其离开之处的预启动。如果存在GPU连接,则应用可以在活跃状态和中止状态之间进行转换。最终,如果应用在中止状态下的合计时间超出了某个阈值(例如,存在太多的GPU连接),则它要么完成其预启动,要么本系统可以决定不进行预启动。在这样的情况下,应用可以被暂停。可替换地,GPU节流可以通过将低优先级指派给后台GPU分组来实现,使得前台分组可以抢占,如对于CPU、I/O和存储器而言,可以类似进行。
当预启动策略已经确定一个或多个应用要通过预启动而被激活时,这些应用可以添加到预启动队列。在一个实施例中,对于应用,可能存在进入预启动队列的很多方式:
(1)预测确定应用应该被添加到预启动队列。该确定可以基于由预测算法返回的概率阈值;和/或
(2)系统组件(例如,服务)请求预启动。
在一个实施例中,预启动队列中的应用可以被串行化以用于预启动。另外,可以期望在通过预启动激活每个应用之前,考虑系统资源(例如,存储器利用、CPU利用、GPU利用电池充电状态、I/O利用)。取决于计算机系统的性能规格,可以应用将可用的系统资源的因素以及对用户体验的潜在影响考虑在内的规则和/或启发式,并且预启动应该在低可用系统资源的时候发生。
仅对于一些示例,可以存在应用阈值测试的规则和/或启发式,例如,如果给定的系统资源或系统资源组合低于对计算机系统的给定的可用性阈值,则然后预启动可以被暂停或动态缩减,直至某些资源的可用性改变为止。这样的规则/启发式可以由用户通过应用激活的高预测进行修改。因此,如果本系统将特定激活评价为高的或紧急的,则取决于系统资源可用性的任何阈值可以动态地被改变,而且紧急激活可以在低可用性系统资源上被预启动。将领会的是,这些示例仅意味着为了解释的目的,并且在本申请的范围不因本文中它们的叙述而被缩窄。
如先前所提及的,如果应用的预启动由于已知的原因失败(例如,应用已经正在运行),则该应用可以被去离该队列(例如,将应用列入黑名单),并且可以基于预测或外部请求在将来将其再次添加。
可替换地,如果应用的预启动由于应用在起动时崩溃或由于GPU小故障终止而失败,则可以存在若干个选项以供本系统继续:
(1)可以阻止应用进入预启动队列,直至该应用得到更新为止;和/或
(2)在阻止该应用之前,可以以所期望的次数重试预启动该应用。
预启动成功度量
在一些实施例中,可以期望具有测量用于计算机系统的预测预启动成功的方式。可以期望定义一个或多个成功度量来计量(gauge)预测预启动对用户体验的性能。例如,以下可以是合适的度量:
(1)新的应用启动(不含预启动)的减少百分比的测量;和/或
(2)在被使用之前被杀死的由预启动激活的应用的百分比测量。
在一个实施例中,这些度量可以具有设定的阈值,并且如果系统性能低于所期望的阈值,则可以采取某些动作,例如,动态改变用于预启动应用的偏好,等等。
预启动引导
在一个实施例中,可以期望为用户提供令人愉快的“首次运行”体验,即,在起动新计算机系统时的快速性能。为了提供这样的体验,对于本系统,存在许多的选项:
(1)使用来自某个源(例如,应用使用遥测、SQM等)的收件箱应用数据;和/或
(2)给予OEM提供初始数据的方式。
在这样的选项中,特定用户的应用偏好可用于新计算机系统上的本系统可能就已足够。可替换地,具有更通用的用户偏好,例如,来自社区数据(或许来源于应用使用遥测、SQM等等)以引导预测器可能就已足够。
准确度和覆盖度量
在一些实施例中,可以期望采用两个其它度量以用于预启动,即,准确度和覆盖。准确度是策略、预测器对如何准确的测量,该值越高,浪费就越少。覆盖是提供多少的益处的测量。通过计算每个概率阈值/横条的这些值,本系统可以动态地更改这些值和任何折衷之间的关系,根据这样的度量,所述折衷是可能是期望的。
对于预启动,准确度可以被定义为所使用的预启动百分比,例如,其是在预启动实例被终止之前被切换到的应用。覆盖可以被定义为应用切换中的百分比降低,所述应用切换是相对于基线的启动。例如,可以定义:
准确度=(预启动点击)/预启动
覆盖=(基线应用启动—具有预启动的应用启动)/(基线应用启动)。
各种预测实施例
在很多实施例中,本系统可以采用可能趋向于使用应用(例如,预测数据)给出用户的概率的预测模型集合。预测可以基于各种信号,包括:
(1)过去应用使用的次序和频率;
(2)一天中的时间;
(3)一周中的一天;和/或
(4)新应用安装。
另外,若干个本系统可以从以下各项中“获得”(seed)初始预测数据:
(1)从用户社区收集的匿名数据;和/或
(2)正在被更新的计算机系统上的或来自较旧(可能不同的)计算机系统的应用使用数据。当用户正在访问新的和/或升级后的计算机系统时,这可能是有用的;但仍然可以期望体验由本申请的很多实施例提供的应用的快速启动。
在很多实施例中,本系统可以跨许多类型的事件保留预测数据,包括备份/还原事件和计算机系统刷新。
可替换的实施例-使用情况和工作流
以下是本系统的可替换实施例,并且从特定使用情况和/或工作流的观点来看,所述实施例可能是所期望的。
应当领会的是,当做出关于预启动哪些应用的决定时,除了应用使用的概率之外,可能存在其它考虑。例如,当两个应用A和B的使用概率是“关闭”时,预启动服务可以查看诸如应用“尺寸”之类的其它度量以便确定首先预启动哪一个。因此,该系统可以实现策略(例如,将最可能被使用的应用适配到存储器中)。
首次使用时的预测预启动
这可能是在首次使用计算机系统时所遵从的顺序:
(1)在计算机系统中获得默认预启动数据;
(2)用户登录到计算机系统;
(3)默认数据由预测器用于得到预启动的应用列表;
(4)预启动的应用列表被排队;
(5)预启动组件请求预启动队列中的所有应用;
(6)应用由预启动激活;
(7)用户运行已经通过预启动激活的应用中的一个,并且发现在无需预启动的情况下,起动时间比计算机系统上相同应用的起动时间快得多。
连续预测预启动
这可能是在用户使用计算机系统时所遵从的顺序:
(1)预测器以规律的间隔被触发;
(2)用户数据由预测器用于得到预启动的应用列表;
(3)预启动的应用列表被排队;
(4)预启动组件请求预启动队列中的所有应用;
(5)应用通过预启动激活;
(6)用户运行已经通过预启动激活的应用中的一个,并且发现在无需预启动的情况下,起动时间比计算机系统上相同应用的起动时间快得多。
转变到CS时的预测预启动
这可能是转变到CS发生时所遵从的顺序:
(1)用户按下电源按钮;
(2)当计算机系统可以退出CS时,预测器计算估计的时间;
(3)在计算机系统预计退出CS之前的给定间隔,预测器被触发;
(4)如果机器更早退出CS,则预测器在从CS中转变出来时,被触发;
(5)用户数据由预测器用于得到预启动的应用列表;
(6)预启动的应用列表被排队;
(7)预启动组件请求预启动队列中的所有应用;
(8)该应用由预启动激活;
(9)当机器退出CS时,用户运行已经通过预启动激活的应用中的一个,并且发现在无需预启动的情况下,起动时间比计算机系统上相同应用的起动时间快得多。
预测预启动和安静模式
这可能在安静模式中所遵从的顺序:
(1)计算机系统在夜间进入安静模式;
(2)在机器处于安静模式的同时,预测预启动被禁用;
(3)当机器退出安静模式时,预测器被触发;
(4)如果机器更早退出安静模式,则预测器在从安静模式中转变出来时,被触发;
(5)用户数据由预测器用于得到预启动的应用列表;
(6)预启动的应用列表被排队;
(7)预启动组件请求预启动队列中的所有应用;
(8)该应用是由预启动激活;
(9)当用户开始使用机器时,用户运行已经通过预启动激活的应用中的一个,并且发现在无需预启动的情况下,起动时间比计算机系统上相同应用的起动时间快得多。
预测预启动和应用错误
这可能是针对在起动时失败的应用所遵从的顺序:
(1)预测器以规律的间隔被触发;
(2)用户数据由预测器用于得到预启动的应用列表;
(3)预启动的应用列表被排队;
(4)预启动组件请求预启动队列中的所有应用;
(5)应用是通过预启动激活;
(6)由于起动时的某个错误,应用中的一个启动失败;
(7)该应用由预启动被添加到“忽略列表”;
(8)下次,预测器被触发,应用被排除在预启动之外。另外,当应用被升级和/或重新安装时或当系统得到用户正在成功使用应用的通知时,应用可以从任何“忽略”列表移除。
来自PLM的应用终止和预测预启动
这是由PLM遵从以便找出终止哪些应用的顺序:
(1)PLM请求来自服务的当前正在运行的应用的代价值;
(2)预测器和资源监控器一起工作来生成代价,并且将其返回给PLM;
(3)PLM通过这个数来对当前正在运行的应用进行分类,并且终止列表顶部的那些。
上文已经描述的内容包括本主题发明的示例。当然,不可能为了描述所要求保护的主题的目的,而描述组件或方法的每个可想象到的组合,但是本领域的普通技术人员可以认识到,本主题发明的进一步的组合和置换是可能的。因此,所要求保护的主题旨在涵盖落入所附权利要求的精神和范围内的所有这样的改变、修改和变化。
特别地,并且相对于由上文所描述的组件、设备、电路、系统等执行的各种功能,除非另有指示,用于描述这样的组件的术语(包括对“装置”的引用)旨在对应于执行所描述的组件(例如,功能等同物)的特定功能的任何组件,其执行本文中图示的所要求保护的主题的示例性方面中的功能,即使其在结构上所公开的结构并不等同。在这一点上,还将认识到,本发明包括系统以及具有用于执行所要求保护的主题的各种方法的动作和/或事件的计算机可读指令的计算机可读介质。
另外,尽管已经关于若干个实现方式的仅仅一种公开了本主题发明的特定特征,然而,如对于任意给定或特定应用而言是期望和有利的,这样的特征可以与其它实现方式的一个或多个其它特征相组合。此外,对于在具体实施方式或者权利要求中使用的术语“包括”和“含有”和其变型这方面而言,这些术语以类似于术语“包含”的方式而旨在为包括性的。
Claims (10)
1.一种用于在计算机系统内预启动应用的方法,所述计算机系统包括控制器、存储器和操作系统,所述方法包括:
对于给定应用集合,所述应用能够由所述计算机系统的用户激活,将所述应用何时可以由所述用户激活的预测相关联;
监控所述计算机系统的系统资源;
将预启动规则集合应用于所述应用集合,所述预启动规则包括组的其中一个,所述组包括关于所述系统资源可用性的规则和关于与所述应用相关联的所述预测的规则;和
基于所述预启动规则集合的所述满足预启动一个所述应用。
2.根据权利要求1所述的方法,其中,能够由用户激活的所述应用包括组的其中一个,所述组包括单独应用、由所述用户一起使用的应用、以一定顺序使用的应用、在所述一天的某些时间使用的应用、以规律的间隔使用的应用、在某个位置使用的应用和响应于所述计算机系统中的某些事件所使用的应用。
3.根据权利要求1所述的方法,其中,所述将所述应用何时可以被激活的预测相关联还包括:
预测建模以给出应用何时可以由用户激活的预测测量;和
进一步地,其中,所述预测模型是组的其中一个,所述组包括:基于应用使用次序的建模、基于应用的使用频率的建模、基于应用使用的一天的时间的建模、基于应用使用位置的建模、使用最常见的应用预测器的建模、使用最常用的预测器的建模、使用空预测器的建模、使用oracle预测器的建模、利用自适应预测器的建模和利用切换速率预测器的建模。
4.根据权利要求3所述的方法,其中,所述利用自适应预测器的建模还包括:
标识过去应用使用情形;
比较所述当前应用使用情形;
返回已查询的应用可以在所期望的预测窗口内被激活的测量。
5.根据权利要求3所述的方法,其中,所述利用切换速率预测器的建模还包括:
随时间维护应用上的切换速率数据;和
提供所述应用何时很可能被切换的测量。
6.根据权利要求3所述的方法,其中,所述利用切换速率预测器的建模还包括:
随时间将衰减速率应用于所述切换数据速率;和
根据所述衰减速率,改变所述测量。
7.根据权利要求1所述的方法,其中,所述应用预启动规则集合还包括:
将所述系统资源的所述可用性水平考虑到所期望的阈值,
考虑何时可以由用户激活应用的所述预测测量;和
基于所述可用性水平和所述预测测量,取决于条件的所述满足,确定是否预启动所述应用。
8.一种用于在计算机系统上预启动应用的系统,所述计算机系统包括控制器、存储器和操作系统,所述系统包括:
预测引擎,所述预测引擎能够提供给定应用可以由所述计算机系统的用户激活的似然性的预测测量;
资源监控器,所述资源监控器能够提供所述计算机系统的系统资源利用的测量;
预启动策略模块,所述预启动策略模块能够应用预启动策略规则集合,所述预启动策略规则包括组的其中一个,所述组包括:关于所述系统资源可用性的规则和关于与所述应用相关联的所述预测测量的规则;和
预启动队列模块,所述预启动队列模块能够维护用于在所述计算机系统中预启动的应用列表,所述应用列表取决于所述预启动策略规则的所述满足。
9.根据权利要求8所述的系统,其中,所述预测引擎还包括:
至少一个预测模块,所述预测模块包括组的其中一个,所述组包括:基于应用使用次序的预测模块、基于应用使用频率的预测模块、基于应用使用的一天的时间的预测模块、基于应用使用位置的预测模块、使用最常见的应用预测器的预测模块、使用最常用的预测器的预测模块、使用空预测器的预测模块、使用oracle预测器的预测模块、具有自适应预测器的预测模块和具有切换速率预测器的预测模块。
10.根据权利要求9所述的系统,其中,所述系统能够将在过去已经预启动失败的给定的应用列入黑名单。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/915,870 US9508040B2 (en) | 2013-06-12 | 2013-06-12 | Predictive pre-launch for applications |
US13/915870 | 2013-06-12 | ||
PCT/US2013/061047 WO2014200547A1 (en) | 2013-06-12 | 2013-09-20 | Predictive pre-launch for applications |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105431822A true CN105431822A (zh) | 2016-03-23 |
CN105431822B CN105431822B (zh) | 2019-02-22 |
Family
ID=49304362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380077373.2A Active CN105431822B (zh) | 2013-06-12 | 2013-09-20 | 应用的预测预启动 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9508040B2 (zh) |
EP (1) | EP3008589A1 (zh) |
CN (1) | CN105431822B (zh) |
WO (1) | WO2014200547A1 (zh) |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930213A (zh) * | 2016-04-22 | 2016-09-07 | 北京小米移动软件有限公司 | 应用运行方法及装置 |
CN105939416A (zh) * | 2016-05-30 | 2016-09-14 | 努比亚技术有限公司 | 移动终端及其应用预启动方法 |
CN106874095A (zh) * | 2017-02-28 | 2017-06-20 | 珠海市魅族科技有限公司 | 一种应用加载方法及装置 |
CN107368326A (zh) * | 2016-05-13 | 2017-11-21 | 腾讯科技(深圳)有限公司 | 进程控制方法和装置 |
CN108052359A (zh) * | 2017-12-25 | 2018-05-18 | 维沃移动通信有限公司 | 一种应用程序的启动控制方法及移动终端 |
CN108228270A (zh) * | 2016-12-19 | 2018-06-29 | 腾讯科技(深圳)有限公司 | 启动资源加载方法及装置 |
CN108595231A (zh) * | 2018-05-15 | 2018-09-28 | Oppo广东移动通信有限公司 | 应用程序预加载方法、装置、存储介质及智能终端 |
CN108681475A (zh) * | 2018-05-21 | 2018-10-19 | Oppo广东移动通信有限公司 | 应用程序预加载方法、装置、存储介质及移动终端 |
CN108776600A (zh) * | 2018-05-28 | 2018-11-09 | 努比亚技术有限公司 | 应用程序预启动方法、移动终端及计算机可读存储介质 |
CN108804157A (zh) * | 2018-06-05 | 2018-11-13 | Oppo广东移动通信有限公司 | 应用程序预加载方法、装置、存储介质及终端 |
CN108920156A (zh) * | 2018-05-29 | 2018-11-30 | Oppo广东移动通信有限公司 | 应用程序预测模型建立方法、装置、存储介质及终端 |
CN109151216A (zh) * | 2018-10-30 | 2019-01-04 | 努比亚技术有限公司 | 应用启动方法、移动终端、服务器及计算机可读存储介质 |
CN109669735A (zh) * | 2018-12-07 | 2019-04-23 | 武汉斗鱼鱼乐网络科技有限公司 | 基于延时注册的应用启动方法、装置和存储介质 |
CN109947497A (zh) * | 2017-12-20 | 2019-06-28 | 广东欧珀移动通信有限公司 | 应用程序预加载方法、装置、存储介质及移动终端 |
CN109947498A (zh) * | 2017-12-20 | 2019-06-28 | 广东欧珀移动通信有限公司 | 应用程序预加载方法、装置、存储介质及移动终端 |
CN109976821A (zh) * | 2017-12-14 | 2019-07-05 | 广东欧珀移动通信有限公司 | 应用程序加载方法、装置、终端及存储介质 |
CN110209975A (zh) * | 2019-05-30 | 2019-09-06 | 百度在线网络技术(北京)有限公司 | 用于提供对象的方法、装置、设备和存储介质 |
WO2019228134A1 (zh) * | 2018-05-29 | 2019-12-05 | Oppo广东移动通信有限公司 | 应用程序预加载方法、装置、存储介质及终端 |
CN110895721A (zh) * | 2018-09-12 | 2020-03-20 | 珠海格力电器股份有限公司 | 电器功能的预测方法及装置 |
CN113196724A (zh) * | 2018-11-07 | 2021-07-30 | 思杰系统有限公司 | 用于应用预启动的系统和方法 |
US11360817B2 (en) | 2016-09-27 | 2022-06-14 | Huawei Technologies Co., Ltd. | Method and terminal for allocating system resource to application |
US11397590B2 (en) | 2018-05-10 | 2022-07-26 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Method for preloading application, storage medium, and terminal |
US11442747B2 (en) | 2018-05-10 | 2022-09-13 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Method for establishing applications-to-be preloaded prediction model based on preorder usage sequence of foreground application, storage medium, and terminal |
US11604660B2 (en) | 2018-05-15 | 2023-03-14 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Method for launching application, storage medium, and terminal |
Families Citing this family (178)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8677377B2 (en) | 2005-09-08 | 2014-03-18 | Apple Inc. | Method and apparatus for building an intelligent automated assistant |
US9318108B2 (en) | 2010-01-18 | 2016-04-19 | Apple Inc. | Intelligent automated assistant |
US8977255B2 (en) | 2007-04-03 | 2015-03-10 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
US10002189B2 (en) | 2007-12-20 | 2018-06-19 | Apple Inc. | Method and apparatus for searching using an active ontology |
US9330720B2 (en) | 2008-01-03 | 2016-05-03 | Apple Inc. | Methods and apparatus for altering audio output signals |
US20100030549A1 (en) | 2008-07-31 | 2010-02-04 | Lee Michael M | Mobile device having human language translation capability with positional feedback |
US8676904B2 (en) | 2008-10-02 | 2014-03-18 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
US10706373B2 (en) | 2011-06-03 | 2020-07-07 | Apple Inc. | Performing actions associated with task items that represent tasks to perform |
US10276170B2 (en) | 2010-01-18 | 2019-04-30 | Apple Inc. | Intelligent automated assistant |
US8682667B2 (en) | 2010-02-25 | 2014-03-25 | Apple Inc. | User profiling for selecting user specific voice input processing information |
US9262612B2 (en) | 2011-03-21 | 2016-02-16 | Apple Inc. | Device access using voice authentication |
US10057736B2 (en) | 2011-06-03 | 2018-08-21 | Apple Inc. | Active transport based notifications |
US10134385B2 (en) | 2012-03-02 | 2018-11-20 | Apple Inc. | Systems and methods for name pronunciation |
US10417037B2 (en) | 2012-05-15 | 2019-09-17 | Apple Inc. | Systems and methods for integrating third party services with a digital assistant |
DE212014000045U1 (de) | 2013-02-07 | 2015-09-24 | Apple Inc. | Sprach-Trigger für einen digitalen Assistenten |
US10652394B2 (en) | 2013-03-14 | 2020-05-12 | Apple Inc. | System and method for processing voicemail |
US10748529B1 (en) | 2013-03-15 | 2020-08-18 | Apple Inc. | Voice activated device for use with a voice-based digital assistant |
WO2014197335A1 (en) | 2013-06-08 | 2014-12-11 | Apple Inc. | Interpreting and acting upon commands that involve sharing information with remote devices |
US10176167B2 (en) | 2013-06-09 | 2019-01-08 | Apple Inc. | System and method for inferring user intent from speech inputs |
JP6259911B2 (ja) | 2013-06-09 | 2018-01-10 | アップル インコーポレイテッド | デジタルアシスタントの2つ以上のインスタンスにわたる会話持続を可能にするための機器、方法、及びグラフィカルユーザインタフェース |
KR102078570B1 (ko) * | 2013-07-16 | 2020-02-19 | 삼성전자주식회사 | 휴대 단말기에서 사용자 행위 정보를 제공하는 장치 및 방법 |
US10296160B2 (en) | 2013-12-06 | 2019-05-21 | Apple Inc. | Method for extracting salient dialog usage from live data |
US10170123B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Intelligent assistant for home automation |
US9633004B2 (en) | 2014-05-30 | 2017-04-25 | Apple Inc. | Better resolution when referencing to concepts |
US9430463B2 (en) | 2014-05-30 | 2016-08-30 | Apple Inc. | Exemplar-based natural language processing |
US9715875B2 (en) | 2014-05-30 | 2017-07-25 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
WO2015184186A1 (en) | 2014-05-30 | 2015-12-03 | Apple Inc. | Multi-command single utterance input method |
US9338493B2 (en) | 2014-06-30 | 2016-05-10 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US11516309B2 (en) * | 2014-07-16 | 2022-11-29 | Tensera Networks Ltd. | Transparent pre-loading of user applications |
US11095743B2 (en) * | 2014-07-16 | 2021-08-17 | Tensera Networks Ltd. | Optimized content-delivery network (CDN) for the wireless last mile |
US11483415B2 (en) | 2014-07-16 | 2022-10-25 | Tensera Networks Ltd. | Background pre-rendering of user applications |
US9818400B2 (en) | 2014-09-11 | 2017-11-14 | Apple Inc. | Method and apparatus for discovering trending terms in speech requests |
US10127911B2 (en) | 2014-09-30 | 2018-11-13 | Apple Inc. | Speaker identification and unsupervised speaker adaptation techniques |
US10074360B2 (en) | 2014-09-30 | 2018-09-11 | Apple Inc. | Providing an indication of the suitability of speech recognition |
US9668121B2 (en) | 2014-09-30 | 2017-05-30 | Apple Inc. | Social reminders |
KR102283546B1 (ko) * | 2014-10-16 | 2021-07-29 | 삼성전자주식회사 | 웨어러블 디바이스 및 웨어러블 디바이스에서의 어플리케이션 실행 방법 |
US10114661B2 (en) * | 2014-11-07 | 2018-10-30 | Roku, Inc. | System and method for fast starting an application |
US10152299B2 (en) * | 2015-03-06 | 2018-12-11 | Apple Inc. | Reducing response latency of intelligent automated assistants |
US9886953B2 (en) | 2015-03-08 | 2018-02-06 | Apple Inc. | Virtual assistant activation |
US9721566B2 (en) | 2015-03-08 | 2017-08-01 | Apple Inc. | Competing devices responding to voice triggers |
BR112017020225B1 (pt) | 2015-04-13 | 2023-02-23 | Huawei Technologies Co., Ltd | Método e aparelho para exibir uma interface de gerenciamento de tarefas |
US10460227B2 (en) | 2015-05-15 | 2019-10-29 | Apple Inc. | Virtual assistant in a communication session |
US10200824B2 (en) | 2015-05-27 | 2019-02-05 | Apple Inc. | Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device |
US10083688B2 (en) | 2015-05-27 | 2018-09-25 | Apple Inc. | Device voice control for selecting a displayed affordance |
US9578173B2 (en) | 2015-06-05 | 2017-02-21 | Apple Inc. | Virtual assistant aided communication with 3rd party service in a communication session |
US10264319B2 (en) | 2015-06-07 | 2019-04-16 | Apple Inc. | Priming media applications and presenting primed media application data |
US11025565B2 (en) | 2015-06-07 | 2021-06-01 | Apple Inc. | Personalized prediction of responses for instant messaging |
US20160378747A1 (en) | 2015-06-29 | 2016-12-29 | Apple Inc. | Virtual assistant for media playback |
US11159646B1 (en) | 2015-07-13 | 2021-10-26 | Amazon Technologies, Inc. | Identifying, presenting, and launching preferred applications on virtual desktop instances |
KR20170016752A (ko) * | 2015-08-04 | 2017-02-14 | 엘지전자 주식회사 | 이동 단말기 및 그 제어 방법 |
US10747498B2 (en) | 2015-09-08 | 2020-08-18 | Apple Inc. | Zero latency digital assistant |
US10740384B2 (en) | 2015-09-08 | 2020-08-11 | Apple Inc. | Intelligent automated assistant for media search and playback |
US10331312B2 (en) | 2015-09-08 | 2019-06-25 | Apple Inc. | Intelligent automated assistant in a media environment |
US10671428B2 (en) | 2015-09-08 | 2020-06-02 | Apple Inc. | Distributed personal assistant |
KR102401772B1 (ko) * | 2015-10-02 | 2022-05-25 | 삼성전자주식회사 | 전자 장치에서 어플리케이션 실행 장치 및 방법 |
US10691473B2 (en) | 2015-11-06 | 2020-06-23 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US10956666B2 (en) | 2015-11-09 | 2021-03-23 | Apple Inc. | Unconventional virtual assistant interactions |
US11429883B2 (en) | 2015-11-13 | 2022-08-30 | Microsoft Technology Licensing, Llc | Enhanced computer experience from activity prediction |
US10769189B2 (en) | 2015-11-13 | 2020-09-08 | Microsoft Technology Licensing, Llc | Computer speech recognition and semantic understanding from activity patterns |
US10146842B2 (en) | 2015-11-19 | 2018-12-04 | Google Llc | Pre-instantiating native applications in background |
US10049668B2 (en) | 2015-12-02 | 2018-08-14 | Apple Inc. | Applying neural network language models to weighted finite state transducers for automatic speech recognition |
US10223066B2 (en) | 2015-12-23 | 2019-03-05 | Apple Inc. | Proactive assistance based on dialog communication between devices |
US11227589B2 (en) | 2016-06-06 | 2022-01-18 | Apple Inc. | Intelligent list reading |
US10049663B2 (en) | 2016-06-08 | 2018-08-14 | Apple, Inc. | Intelligent automated assistant for media exploration |
US10586535B2 (en) | 2016-06-10 | 2020-03-10 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
US10725761B2 (en) | 2016-06-10 | 2020-07-28 | Apple Inc. | Providing updated application data for previewing applications on a display |
US10747467B2 (en) | 2016-06-10 | 2020-08-18 | Apple Inc. | Memory management for application loading |
US10520979B2 (en) | 2016-06-10 | 2019-12-31 | Apple Inc. | Enhanced application preview mode |
DK201670540A1 (en) | 2016-06-11 | 2018-01-08 | Apple Inc | Application integration with a digital assistant |
DK179415B1 (en) | 2016-06-11 | 2018-06-14 | Apple Inc | Intelligent device arbitration and control |
US20180032374A1 (en) * | 2016-08-01 | 2018-02-01 | Intel Corporation | Application launch booster |
US10681071B1 (en) | 2016-08-02 | 2020-06-09 | ThreatConnect, Inc. | Enrichment and analysis of cybersecurity threat intelligence and orchestrating application of threat intelligence to selected network security events |
US10474753B2 (en) | 2016-09-07 | 2019-11-12 | Apple Inc. | Language identification using recurrent neural networks |
CN107817995B (zh) | 2016-09-12 | 2021-03-30 | 华为技术有限公司 | 一种后台静默启动应用的方法、装置及终端设备 |
US10043516B2 (en) | 2016-09-23 | 2018-08-07 | Apple Inc. | Intelligent automated assistant |
CN107220077B (zh) * | 2016-10-20 | 2019-03-19 | 华为技术有限公司 | 应用启动的管控方法和管控设备 |
US11281993B2 (en) | 2016-12-05 | 2022-03-22 | Apple Inc. | Model and ensemble compression for metric learning |
US10733054B2 (en) | 2016-12-30 | 2020-08-04 | Dropbox, Inc. | User engagement aware auto-restart |
US10732954B2 (en) | 2016-12-30 | 2020-08-04 | Dropbox, Inc. | User engagement aware auto-updater |
US11204787B2 (en) | 2017-01-09 | 2021-12-21 | Apple Inc. | Application integration with a digital assistant |
US10860342B2 (en) * | 2017-01-30 | 2020-12-08 | Citrix Systems, Inc. | Computer system providing cloud-based session prelaunch features and related methods |
GB2559792A (en) * | 2017-02-20 | 2018-08-22 | Sony Interactive Entertainment Inc | Game application launch system and method |
US10310872B2 (en) | 2017-02-21 | 2019-06-04 | Red Hat, Inc. | Transparent fast application launcher |
US11537615B2 (en) * | 2017-05-01 | 2022-12-27 | Futurewei Technologies, Inc. | Using machine learning to estimate query resource consumption in MPPDB |
US10417266B2 (en) | 2017-05-09 | 2019-09-17 | Apple Inc. | Context-aware ranking of intelligent response suggestions |
DK201770383A1 (en) | 2017-05-09 | 2018-12-14 | Apple Inc. | USER INTERFACE FOR CORRECTING RECOGNITION ERRORS |
US10395654B2 (en) | 2017-05-11 | 2019-08-27 | Apple Inc. | Text normalization based on a data-driven learning network |
DK180048B1 (en) | 2017-05-11 | 2020-02-04 | Apple Inc. | MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION |
US10726832B2 (en) | 2017-05-11 | 2020-07-28 | Apple Inc. | Maintaining privacy of personal information |
DK179496B1 (en) | 2017-05-12 | 2019-01-15 | Apple Inc. | USER-SPECIFIC Acoustic Models |
DK179745B1 (en) | 2017-05-12 | 2019-05-01 | Apple Inc. | SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT |
US11301477B2 (en) | 2017-05-12 | 2022-04-12 | Apple Inc. | Feedback analysis of a digital assistant |
DK201770427A1 (en) | 2017-05-12 | 2018-12-20 | Apple Inc. | LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT |
US10403278B2 (en) | 2017-05-16 | 2019-09-03 | Apple Inc. | Methods and systems for phonetic matching in digital assistant services |
US10311144B2 (en) | 2017-05-16 | 2019-06-04 | Apple Inc. | Emoji word sense disambiguation |
US10303715B2 (en) | 2017-05-16 | 2019-05-28 | Apple Inc. | Intelligent automated assistant for media exploration |
DK179549B1 (en) | 2017-05-16 | 2019-02-12 | Apple Inc. | FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES |
US20180336892A1 (en) | 2017-05-16 | 2018-11-22 | Apple Inc. | Detecting a trigger of a digital assistant |
US10657328B2 (en) | 2017-06-02 | 2020-05-19 | Apple Inc. | Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling |
US10445429B2 (en) | 2017-09-21 | 2019-10-15 | Apple Inc. | Natural language understanding using vocabularies with compressed serialized tries |
US10755051B2 (en) | 2017-09-29 | 2020-08-25 | Apple Inc. | Rule-based natural language processing |
CN110879750A (zh) * | 2017-10-13 | 2020-03-13 | 华为技术有限公司 | 资源管理的方法及终端设备 |
CN107783801B (zh) * | 2017-11-06 | 2021-03-12 | Oppo广东移动通信有限公司 | 应用程序预测模型建立、预加载方法、装置、介质及终端 |
CN109766138A (zh) * | 2017-11-08 | 2019-05-17 | 广东欧珀移动通信有限公司 | 应用程序预测模型建立、预加载方法、装置、介质及终端 |
CN109814938A (zh) * | 2017-11-20 | 2019-05-28 | 广东欧珀移动通信有限公司 | 应用程序预测模型建立、预加载方法、装置、介质及终端 |
CN109814937A (zh) * | 2017-11-20 | 2019-05-28 | 广东欧珀移动通信有限公司 | 应用程序预测模型建立、预加载方法、装置、介质及终端 |
US10636424B2 (en) | 2017-11-30 | 2020-04-28 | Apple Inc. | Multi-turn canned dialog |
CN109947495A (zh) | 2017-12-20 | 2019-06-28 | 广东欧珀移动通信有限公司 | 应用程序预加载方法、装置、存储介质及移动终端 |
CN109960539A (zh) * | 2017-12-21 | 2019-07-02 | 广东欧珀移动通信有限公司 | 应用程序预加载方法、装置、存储介质及移动终端 |
US10733982B2 (en) | 2018-01-08 | 2020-08-04 | Apple Inc. | Multi-directional dialog |
US10733375B2 (en) | 2018-01-31 | 2020-08-04 | Apple Inc. | Knowledge-based framework for improving natural language understanding |
CN108345478B (zh) * | 2018-02-28 | 2020-04-21 | Oppo广东移动通信有限公司 | 应用处理方法、装置、存储介质及电子设备 |
US10789959B2 (en) | 2018-03-02 | 2020-09-29 | Apple Inc. | Training speaker recognition models for digital assistants |
US11915012B2 (en) * | 2018-03-05 | 2024-02-27 | Tensera Networks Ltd. | Application preloading in the presence of user actions |
US11922187B2 (en) | 2018-03-05 | 2024-03-05 | Tensera Networks Ltd. | Robust application preloading with accurate user experience |
US20220179668A1 (en) * | 2018-03-05 | 2022-06-09 | Tensera Networks Ltd. | Robust Application Preloading with Accurate User Experience |
US10592604B2 (en) | 2018-03-12 | 2020-03-17 | Apple Inc. | Inverse text normalization for automatic speech recognition |
US10818288B2 (en) | 2018-03-26 | 2020-10-27 | Apple Inc. | Natural assistant interaction |
US10909331B2 (en) | 2018-03-30 | 2021-02-02 | Apple Inc. | Implicit identification of translation payload with neural machine translation |
CN108647052B (zh) * | 2018-04-28 | 2020-12-01 | Oppo广东移动通信有限公司 | 应用程序预加载方法、装置、存储介质及终端 |
US10928918B2 (en) | 2018-05-07 | 2021-02-23 | Apple Inc. | Raise to speak |
US11145294B2 (en) | 2018-05-07 | 2021-10-12 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
CN108614722B (zh) | 2018-05-10 | 2020-09-08 | 上海瑾盛通信科技有限公司 | 应用程序预加载方法、装置、存储介质及终端 |
US10984780B2 (en) | 2018-05-21 | 2021-04-20 | Apple Inc. | Global semantic word embeddings using bi-directional recurrent neural networks |
CN108762839B (zh) * | 2018-05-22 | 2020-12-18 | 北京小米移动软件有限公司 | 应用程序的界面显示方法及装置 |
CN108829456A (zh) * | 2018-05-29 | 2018-11-16 | Oppo广东移动通信有限公司 | 应用程序预加载方法、装置、存储介质及终端 |
CN108762843B (zh) * | 2018-05-29 | 2020-05-05 | Oppo广东移动通信有限公司 | 应用程序的预加载方法、装置、存储介质及智能终端 |
DK201870355A1 (en) | 2018-06-01 | 2019-12-16 | Apple Inc. | VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS |
DK179822B1 (da) | 2018-06-01 | 2019-07-12 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
DK180639B1 (en) | 2018-06-01 | 2021-11-04 | Apple Inc | DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT |
US11386266B2 (en) | 2018-06-01 | 2022-07-12 | Apple Inc. | Text correction |
US10892996B2 (en) | 2018-06-01 | 2021-01-12 | Apple Inc. | Variable latency device coordination |
US10504518B1 (en) | 2018-06-03 | 2019-12-10 | Apple Inc. | Accelerated task performance |
CN109240763A (zh) * | 2018-08-20 | 2019-01-18 | 奇酷互联网络科技(深圳)有限公司 | 应用程序加速启动的方法、移动终端和存储介质 |
WO2020045925A1 (en) | 2018-08-27 | 2020-03-05 | Samsung Electronics Co., Ltd. | Methods and systems for managing an electronic device |
US20200081930A1 (en) * | 2018-09-06 | 2020-03-12 | Branch Metrics, Inc. | Entity-based search system using user engagement |
US11010561B2 (en) | 2018-09-27 | 2021-05-18 | Apple Inc. | Sentiment prediction from textual data |
US11170166B2 (en) | 2018-09-28 | 2021-11-09 | Apple Inc. | Neural typographical error modeling via generative adversarial networks |
US11462215B2 (en) | 2018-09-28 | 2022-10-04 | Apple Inc. | Multi-modal inputs for voice commands |
US10839159B2 (en) | 2018-09-28 | 2020-11-17 | Apple Inc. | Named entity normalization in a spoken dialog system |
US11475898B2 (en) | 2018-10-26 | 2022-10-18 | Apple Inc. | Low-latency multi-speaker speech recognition |
US11093620B2 (en) | 2018-11-02 | 2021-08-17 | ThreatConnect, Inc. | Ahead of time application launching for cybersecurity threat intelligence of network security events |
US11638059B2 (en) | 2019-01-04 | 2023-04-25 | Apple Inc. | Content playback on multiple devices |
US11301780B2 (en) | 2019-02-15 | 2022-04-12 | Samsung Electronics Co., Ltd. | Method and electronic device for machine learning based prediction of subsequent user interface layouts |
US11348573B2 (en) | 2019-03-18 | 2022-05-31 | Apple Inc. | Multimodality in digital assistant systems |
US11153373B2 (en) | 2019-05-03 | 2021-10-19 | EMC IP Holding Company LLC | Method and system for performance-driven load shifting |
US11475884B2 (en) | 2019-05-06 | 2022-10-18 | Apple Inc. | Reducing digital assistant latency when a language is incorrectly determined |
US11423908B2 (en) | 2019-05-06 | 2022-08-23 | Apple Inc. | Interpreting spoken requests |
US11307752B2 (en) | 2019-05-06 | 2022-04-19 | Apple Inc. | User configurable task triggers |
DK201970509A1 (en) | 2019-05-06 | 2021-01-15 | Apple Inc | Spoken notifications |
US11140099B2 (en) | 2019-05-21 | 2021-10-05 | Apple Inc. | Providing message response suggestions |
US11289073B2 (en) | 2019-05-31 | 2022-03-29 | Apple Inc. | Device text to speech |
DK201970510A1 (en) | 2019-05-31 | 2021-02-11 | Apple Inc | Voice identification in digital assistant systems |
US11496600B2 (en) | 2019-05-31 | 2022-11-08 | Apple Inc. | Remote execution of machine-learned models |
DK180129B1 (en) | 2019-05-31 | 2020-06-02 | Apple Inc. | USER ACTIVITY SHORTCUT SUGGESTIONS |
US11227599B2 (en) | 2019-06-01 | 2022-01-18 | Apple Inc. | Methods and user interfaces for voice-based control of electronic devices |
US11360641B2 (en) | 2019-06-01 | 2022-06-14 | Apple Inc. | Increasing the relevance of new available information |
EP4004767A4 (en) | 2019-07-30 | 2023-03-08 | Tensera Networks Ltd. | PRE-RENDERING APPLICATION USER INTERFACES INTO USER DEVICES |
US11488406B2 (en) | 2019-09-25 | 2022-11-01 | Apple Inc. | Text detection using global geometry estimators |
US11474828B2 (en) | 2019-10-03 | 2022-10-18 | Micron Technology, Inc. | Initial data distribution for different application processes |
US11436041B2 (en) * | 2019-10-03 | 2022-09-06 | Micron Technology, Inc. | Customized root processes for groups of applications |
US11599384B2 (en) | 2019-10-03 | 2023-03-07 | Micron Technology, Inc. | Customized root processes for individual applications |
US11429445B2 (en) | 2019-11-25 | 2022-08-30 | Micron Technology, Inc. | User interface based page migration for performance enhancement |
US20210240801A1 (en) * | 2020-02-03 | 2021-08-05 | Arris Enterprises Llc | Digital rights management system resource manager |
US11863573B2 (en) | 2020-03-06 | 2024-01-02 | ThreatConnect, Inc. | Custom triggers for a network security event for cybersecurity threat intelligence |
US11366752B2 (en) | 2020-03-19 | 2022-06-21 | Micron Technology, Inc. | Address mapping between shared memory modules and cache sets |
US20210342192A1 (en) * | 2020-04-29 | 2021-11-04 | Dell Products L.P. | Systems And Methods For Optimizing Perceived Software Application Load Delays |
US11061543B1 (en) | 2020-05-11 | 2021-07-13 | Apple Inc. | Providing relevant data items based on context |
US11183193B1 (en) | 2020-05-11 | 2021-11-23 | Apple Inc. | Digital assistant hardware abstraction |
US11490204B2 (en) | 2020-07-20 | 2022-11-01 | Apple Inc. | Multi-device audio adjustment coordination |
US11438683B2 (en) | 2020-07-21 | 2022-09-06 | Apple Inc. | User identification using headphones |
WO2022055538A1 (en) * | 2020-09-09 | 2022-03-17 | Google Llc | Pre-launching an application using interprocess communication |
CN116670646A (zh) | 2020-12-03 | 2023-08-29 | 腾赛拉网络有限公司 | 预加载具有现有任务的应用 |
US11836087B2 (en) | 2020-12-23 | 2023-12-05 | Micron Technology, Inc. | Per-process re-configurable caches |
CN113220552B (zh) * | 2021-05-12 | 2022-05-17 | 亿咖通(湖北)技术有限公司 | 车载信息娱乐系统中限制应用运行数量的方法和电子设备 |
US11985144B2 (en) | 2021-06-25 | 2024-05-14 | ThreatConnect, Inc. | Browser extension for cybersecurity threat intelligence and response |
CN115617421B (zh) * | 2022-12-05 | 2023-04-14 | 深圳市欧瑞博科技股份有限公司 | 进程智能调度方法、装置、可读存储介质及嵌入式设备 |
US11971801B1 (en) * | 2022-12-15 | 2024-04-30 | Google Llc | Launching determination based on login status |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040030882A1 (en) * | 2002-08-08 | 2004-02-12 | Forman George Henry | Managed application pre-launching |
US20040193813A1 (en) * | 2003-03-24 | 2004-09-30 | Sony Corporation | Application pre-launch to reduce user interface latency |
US20050204198A1 (en) * | 2004-03-15 | 2005-09-15 | International Business Machines Corporation | Method and system for adding frequently selected applications to a computer startup sequence |
US20120324481A1 (en) * | 2011-06-16 | 2012-12-20 | Samsung Electronics Co. Ltd. | Adaptive termination and pre-launching policy for improving application startup time |
CN103077224A (zh) * | 2011-12-30 | 2013-05-01 | 微软公司 | 用于基于上下文的装置动作预测的方法和系统 |
US20130152047A1 (en) * | 2011-11-22 | 2013-06-13 | Solano Labs, Inc | System for distributed software quality improvement |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004049225A1 (ja) * | 2002-11-22 | 2004-06-10 | Matsushita Electric Industrial Co., Ltd. | 操作履歴利用システム及びその方法 |
WO2012018431A1 (en) * | 2010-07-26 | 2012-02-09 | Seven Networks, Inc. | Prediction of activity session for mobile network use optimization and user experience enhancement |
US8176437B1 (en) | 2011-07-18 | 2012-05-08 | Google Inc. | Responsiveness for application launch |
-
2013
- 2013-06-12 US US13/915,870 patent/US9508040B2/en active Active
- 2013-09-20 CN CN201380077373.2A patent/CN105431822B/zh active Active
- 2013-09-20 WO PCT/US2013/061047 patent/WO2014200547A1/en active Application Filing
- 2013-09-20 EP EP13773500.7A patent/EP3008589A1/en not_active Ceased
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040030882A1 (en) * | 2002-08-08 | 2004-02-12 | Forman George Henry | Managed application pre-launching |
US20040193813A1 (en) * | 2003-03-24 | 2004-09-30 | Sony Corporation | Application pre-launch to reduce user interface latency |
US20050204198A1 (en) * | 2004-03-15 | 2005-09-15 | International Business Machines Corporation | Method and system for adding frequently selected applications to a computer startup sequence |
US20120324481A1 (en) * | 2011-06-16 | 2012-12-20 | Samsung Electronics Co. Ltd. | Adaptive termination and pre-launching policy for improving application startup time |
US20130152047A1 (en) * | 2011-11-22 | 2013-06-13 | Solano Labs, Inc | System for distributed software quality improvement |
CN103077224A (zh) * | 2011-12-30 | 2013-05-01 | 微软公司 | 用于基于上下文的装置动作预测的方法和系统 |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930213B (zh) * | 2016-04-22 | 2019-06-14 | 北京小米移动软件有限公司 | 应用运行方法及装置 |
CN105930213A (zh) * | 2016-04-22 | 2016-09-07 | 北京小米移动软件有限公司 | 应用运行方法及装置 |
CN107368326A (zh) * | 2016-05-13 | 2017-11-21 | 腾讯科技(深圳)有限公司 | 进程控制方法和装置 |
CN105939416A (zh) * | 2016-05-30 | 2016-09-14 | 努比亚技术有限公司 | 移动终端及其应用预启动方法 |
US11360817B2 (en) | 2016-09-27 | 2022-06-14 | Huawei Technologies Co., Ltd. | Method and terminal for allocating system resource to application |
CN108228270A (zh) * | 2016-12-19 | 2018-06-29 | 腾讯科技(深圳)有限公司 | 启动资源加载方法及装置 |
US11169827B2 (en) | 2016-12-19 | 2021-11-09 | Tencent Technology (Shenzhen) Company Limited | Resource loading at application startup using attributes of historical data groups |
CN106874095A (zh) * | 2017-02-28 | 2017-06-20 | 珠海市魅族科技有限公司 | 一种应用加载方法及装置 |
CN109976821A (zh) * | 2017-12-14 | 2019-07-05 | 广东欧珀移动通信有限公司 | 应用程序加载方法、装置、终端及存储介质 |
CN109976821B (zh) * | 2017-12-14 | 2022-02-11 | Oppo广东移动通信有限公司 | 应用程序加载方法、装置、终端及存储介质 |
US10908920B2 (en) | 2017-12-20 | 2021-02-02 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Method for preloading application, computer readable storage medium, and terminal device |
CN109947497A (zh) * | 2017-12-20 | 2019-06-28 | 广东欧珀移动通信有限公司 | 应用程序预加载方法、装置、存储介质及移动终端 |
CN109947498A (zh) * | 2017-12-20 | 2019-06-28 | 广东欧珀移动通信有限公司 | 应用程序预加载方法、装置、存储介质及移动终端 |
CN108052359A (zh) * | 2017-12-25 | 2018-05-18 | 维沃移动通信有限公司 | 一种应用程序的启动控制方法及移动终端 |
US11442747B2 (en) | 2018-05-10 | 2022-09-13 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Method for establishing applications-to-be preloaded prediction model based on preorder usage sequence of foreground application, storage medium, and terminal |
US11397590B2 (en) | 2018-05-10 | 2022-07-26 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Method for preloading application, storage medium, and terminal |
CN108595231A (zh) * | 2018-05-15 | 2018-09-28 | Oppo广东移动通信有限公司 | 应用程序预加载方法、装置、存储介质及智能终端 |
WO2019218885A1 (zh) * | 2018-05-15 | 2019-11-21 | Oppo广东移动通信有限公司 | 应用程序预加载方法以及装置、存储介质及智能终端 |
US11604660B2 (en) | 2018-05-15 | 2023-03-14 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Method for launching application, storage medium, and terminal |
CN108681475A (zh) * | 2018-05-21 | 2018-10-19 | Oppo广东移动通信有限公司 | 应用程序预加载方法、装置、存储介质及移动终端 |
CN108776600A (zh) * | 2018-05-28 | 2018-11-09 | 努比亚技术有限公司 | 应用程序预启动方法、移动终端及计算机可读存储介质 |
WO2019228134A1 (zh) * | 2018-05-29 | 2019-12-05 | Oppo广东移动通信有限公司 | 应用程序预加载方法、装置、存储介质及终端 |
CN108920156A (zh) * | 2018-05-29 | 2018-11-30 | Oppo广东移动通信有限公司 | 应用程序预测模型建立方法、装置、存储介质及终端 |
CN108804157A (zh) * | 2018-06-05 | 2018-11-13 | Oppo广东移动通信有限公司 | 应用程序预加载方法、装置、存储介质及终端 |
US11467855B2 (en) | 2018-06-05 | 2022-10-11 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Application preloading method and device, storage medium and terminal |
CN110895721A (zh) * | 2018-09-12 | 2020-03-20 | 珠海格力电器股份有限公司 | 电器功能的预测方法及装置 |
CN109151216A (zh) * | 2018-10-30 | 2019-01-04 | 努比亚技术有限公司 | 应用启动方法、移动终端、服务器及计算机可读存储介质 |
CN109151216B (zh) * | 2018-10-30 | 2021-01-26 | 努比亚技术有限公司 | 应用启动方法、移动终端、服务器及计算机可读存储介质 |
CN113196724A (zh) * | 2018-11-07 | 2021-07-30 | 思杰系统有限公司 | 用于应用预启动的系统和方法 |
CN109669735A (zh) * | 2018-12-07 | 2019-04-23 | 武汉斗鱼鱼乐网络科技有限公司 | 基于延时注册的应用启动方法、装置和存储介质 |
CN109669735B (zh) * | 2018-12-07 | 2022-02-22 | 武汉斗鱼鱼乐网络科技有限公司 | 基于延时注册的应用启动方法、装置和存储介质 |
CN110209975A (zh) * | 2019-05-30 | 2019-09-06 | 百度在线网络技术(北京)有限公司 | 用于提供对象的方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20140372356A1 (en) | 2014-12-18 |
WO2014200547A1 (en) | 2014-12-18 |
US9508040B2 (en) | 2016-11-29 |
EP3008589A1 (en) | 2016-04-20 |
CN105431822B (zh) | 2019-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105431822A (zh) | 应用的预测预启动 | |
CN109960395B (zh) | 资源调度方法和计算机设备 | |
US20200241917A1 (en) | Resource management method and terminal device | |
KR102106744B1 (ko) | 피어 이벤트 데이터에 기초한 모바일 디바이스의 동적 조정 | |
US9372898B2 (en) | Enabling event prediction as an on-device service for mobile interaction | |
US10491499B2 (en) | Analyzing resource utilization of a cloud computing resource in a cloud computing environment | |
US10223156B2 (en) | Initiating background updates based on user activity | |
EP2919438B1 (en) | Method and system to estimate user desired delay for resource allocation for mobile-cloud applications | |
EP3745264A1 (en) | Automated scaling of resources based on long short-term memory recurrent neural networks and attention mechanisms | |
WO2014179591A1 (en) | Battery drain analysis and prediction for wireless devices | |
CN111405030B (zh) | 一种消息推送方法、装置、电子设备和存储介质 | |
CN101981531A (zh) | 聚集循环调度以优化资源消耗 | |
US20230267133A1 (en) | Systems and methods for providing predictions to applications executing on a computing device | |
US20220294027A1 (en) | Battery management system for monitoring a battery status | |
CN115803716A (zh) | 用于流处理应用程序的自动调整大小 | |
CN111625456A (zh) | 一种卡顿定位方法和装置 | |
KR20230069490A (ko) | 마이크로 데이터센터 내 운용 서비스별 작업 부하 예측 모델 적용 방법 | |
US11671317B2 (en) | Objective driven dynamic object placement optimization | |
Zhou et al. | Cushion: A proactive resource provisioning method to mitigate SLO violations for containerized microservices | |
US20200219333A1 (en) | Automatic classification of inactive vehicle tracking unit | |
US20240028403A1 (en) | Systems and methods for job assignment based on dynamic clustering and forecasting | |
US20230009182A1 (en) | System for identifying and diagnosing a degradation of a performance metric associated with providing a service | |
KR102448702B1 (ko) | 엣지 서비스 증설 제어 시스템 및 그 제어방법 | |
CN112306666B (zh) | 云端资源管理系统及方法、以及非暂态电脑可读取记录媒体 | |
US11735920B2 (en) | Cognitive framework for improving responsivity in demand response programs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |