CN116235145A - 使用进程间通信预启动应用 - Google Patents
使用进程间通信预启动应用 Download PDFInfo
- Publication number
- CN116235145A CN116235145A CN202080103874.3A CN202080103874A CN116235145A CN 116235145 A CN116235145 A CN 116235145A CN 202080103874 A CN202080103874 A CN 202080103874A CN 116235145 A CN116235145 A CN 116235145A
- Authority
- CN
- China
- Prior art keywords
- application
- content
- initialization
- request
- computing device
- 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
- 238000000034 method Methods 0.000 title claims abstract description 276
- 238000004891 communication Methods 0.000 title claims description 82
- 230000008569 process Effects 0.000 claims abstract description 137
- 230000009471 action Effects 0.000 claims abstract description 47
- 230000015654 memory Effects 0.000 claims description 74
- 230000004044 response Effects 0.000 claims description 64
- 238000009434 installation Methods 0.000 description 17
- 238000004590 computer program Methods 0.000 description 13
- 239000011230 binding agent Substances 0.000 description 12
- 239000000047 product Substances 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/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
-
- 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
-
- 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/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4831—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
- G06F9/4837—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent
-
- 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/54—Interprogram communication
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
根据一个方面,方法包括执行第一应用作为计算设备的操作系统的前台进程,以及由所述第一应用在所述计算设备的显示器上显示内容,其中所述内容与可由第二应用执行的动作相关联。该方法包括在针对显示在显示器上的内容所采取的用户动作之前,由第一应用向第二应用的初始化应用编程接口(API)发送初始化请求,其中该初始化请求被配置成使第二应用被启动作为计算设备的操作系统的后台进程。
Description
技术领域
本公开涉及使用进程间通信来预启动应用。
背景技术
在设备上执行的应用可以显示当被选择时使得另一应用被启动的内容。然而,从选择内容然后启动和呈现链接到内容的应用的延迟可能相对较长。
发明内容
本公开涉及使用进程间通信(IPC)来预启动应用以改善深度链路着陆等待时间。例如,应用A可以作为前台进程执行,其中应用A在设备的显示器上显示内容。如果用户选择内容,则可以启动应用B并将其显示在计算设备的显示器内。然而,根据实施例,在针对所显示的内容采取动作接收之前(例如,在用户选择内容之前),应用A可调用应用B的初始化API,使得可将应用B作为后台进程启动。然后,当用户实际选择内容时,由于应用B被预启动,所以应用B可以相对快速地呈现在显示器上。
根据一个方面,一种方法包括执行第一应用作为计算设备的操作系统的前台进程,以及由所述第一应用在所述计算设备的显示器上显示内容,其中所述内容与可由第二应用执行的动作相关联。该方法包括在针对显示在显示器上的内容所采取的用户动作之前,由第一应用向第二应用的初始化应用编程接口(API)发送初始化请求,其中该初始化请求被配置成使第二应用作为计算设备的操作系统的后台进程而被启动。
根据一个方面,一种存储可执行指令的非暂时性计算机可读介质,所述可执行指令在由至少一个处理器执行时使所述至少一个处理器执行第一应用作为计算设备的操作系统的前台进程,由所述第一应用在所述计算设备的显示器上显示内容,其中所述内容与可由第二应用执行的动作相关联,并且在针对显示在显示器上的内容所采取的用户动作之前,由所述第一应用向第二应用的初始化应用编程接口(API)发送初始化请求,初始化请求被配置为使第二应用作为计算设备的操作系统的后台进程而被启动
根据一个方面,一种装置包括至少一个处理器,以及存储可执行指令的非暂时性计算机可读介质,所述可执行指令在由至少一个处理器执行时使所述至少一个处理器在针对显示在计算设备的显示器上的内容采取的用户动作之前,在第一应用的初始化应用编程接口(API)处接收来自第二应用的初始化请求,所述第二应用作为所述计算设备的操作系统的前台进程执行。响应于所述初始化请求,在所述第一应用和所述第二应用之间建立进程间通信连接,以使所述第一应用和所述第二应用能够彼此通信,并且响应于所述初始化请求,启动所述第一应用作为所述计算设备的操作系统的后台进程。
在附图和下面的描述中阐述了一个或多个实现的细节。从说明书和附图以及从权利要求书中,其它特征将是显而易见的。
附图说明
图1A是根据一个方面被配置为使得应用能够使用进程间通信来预启动另一应用的计算设备的图。
图1B示出了根据一个方面将内容显示为前台进程的应用,其中所述内容与另一应用的动作相关联。
图1C示出了根据一个方面的已被移动到前台进程中的预启动应用。
图1D示出了根据一个方面的用于使应用能够使另一应用通过网络从服务器计算预取内容的系统。
图1E说明根据一个方面用于确定是预启动还是预取的信号的示例。
图1F示出了根据一个方面的用于确定是否预启动应用的请求决定模块的示例。
图1G示出了根据一个方面的用于确定是否预启动和预取的请求决定模块的示例。
图1H示出了根据一个方面的用于确定是否发送终止请求以终止正在预启动应用的后台进程的终止决定模块的示例。
图2示出了根据一个方面的被配置为使得应用能够使用进程间通信来预启动另一应用的计算设备的图。
图3示出了根据另一个方面的被配置为使得应用能够使用进程间通信来预启动另一个应用的计算设备的图。
图4A示出了根据一个方面使应用能够使用进程间通信来预启动数字商店应用的系统。
图4B示出了根据一个方面的使得应用能够使用进程间通信来预启动数字商店应用的计算设备。
图5示出了根据一个方面的描绘使用进程间通信预启动应用的示例操作的流程图。
图6示出了根据另一方面的描述使用进程间通信来预启动应用的示例操作的流程图。
图7示出了根据另一方面的描述使用进程间通信来预启动应用的示例操作的流程图。
图8是示出可用于实现这里描述的技术的计算机设备和移动计算机设备的示例的图。
在各个附图中相同的附图标记表示相同的元件。
具体实施方式
本公开涉及使用进程间通信来预启动应用。例如,应用A可以作为前台进程执行,其中应用A在计算设备(例如,移动计算设备)的显示器上显示内容。该内容与应用B的动作相关联。例如,如果用户选择该内容,则可以在计算设备的显示器内启动和显示应用B。然而,根据实施例,在接收到关于显示内容的动作之前(例如,在用户选择内容之前),应用A可以向应用B发送初始化请求,使得可以将应用B作为后台进程启动。然后,当用户实际选择内容时,由于应用B被预启动,所以应用B可以相对快速地呈现在显示器上。在一些示例中,初始化请求还指定一个或多个预取参数,这使得应用B在后台预取并存储内容。然后,当用户实际选择内容时,可以在应用B中相对快速地呈现预取的内容。
应用B包括接口定义语言,其定义初始化应用编程接口(API),该API向调用应用(例如,应用A)提供调用预启动服务的能力。换句话说,初始化API(例如,也被称为预启动API)定义了预启动接口,该预启动接口可以被其他应用(例如,应用A)用来预启动应用B作为操作系统的后台进程。初始化请求在初始化API处被接收,这使得应用B作为后台进程被启动。在一些示例中,初始化请求的接收使得在应用A和应用B之间创建(或建立)进程间通信(IPC)连接,以使得应用A和应用B能够彼此通信。
IPC连接是允许进程(例如,应用)彼此通信并同步其动作的通信协议。在一些示例中,初始化请求的接收绑定应用A和应用B,以便可以在应用A和应用B之间交换信息。在一些示例中,响应于从调用应用(例如,应用A)对初始化API的调用,应用B可以向应用A提供服务实例(例如,绑定器),其中绑定器用于标识要调用的方法,并且在应用之间传递参数。当IPC连接保持活动时,应用A和应用B可以彼此通信。在一些实现中,当调用应用被绑定到被调用应用时,操作系统可能不终止被调用应用。
在一些示例中,如果IPC连接被终止(例如,去激活),则底层服务(例如,预启动服务)被终止,从而使得执行应用B的后台进程被终止。在一些示例中,响应于内容被移出屏幕(例如,内容不再显示在应用A中)或者在定时器期满(例如,一分钟,两分钟等)时,应用A可以向应用B的初始化API发送终止请求(例如,解除绑定服务调用),这使得IPC连接被终止,从而终止正在执行应用B的后台进程。如此,如果用户可能不选择内容,则应用B(已经作为后台进程被预启动)将被关闭,以便使那些计算机资源(例如,存储器,处理器)可用于其它程序。
图1A至1H示出了根据一个方面使用进程间通信来预启动应用108a的系统100。例如,系统100使应用108b能够将初始化请求126发送到应用108a的初始化应用编程接口(API)116,以初始化(例如,启动)应用108a作为计算设备102的操作系统104的后台进程106。
计算设备102可以包括形成在衬底中的、被配置为执行一个或多个机器可执行指令或软件,固件或其组合的一个或多个处理器103。处理器103可以是基于半导体的,即,处理器可以包括可以执行数字逻辑的半导体材料。计算设备102可以包括一个或多个存储器设备107。存储器设备107可包括主存储器,其以可由处理器103读取和/或执行的格式存储信息。存储器设备107可存储应用108,操作系统104和模块(例如,请求决定模块148,终止决定模块149),所述模块在由处理器103执行时执行某些操作。
在一些示例中,计算设备102是移动计算设备。在一些示例中,计算设备102是智能电话或平板。在一些示例中,计算设备102是可佩戴设备,智能电视或其它计算设备。在一些示例中,计算设备102是游戏控制台。在一些示例中,计算设备102是汽车加热单元。操作系统104是管理计算机硬件、软件资源并为计算程序提供公共服务的系统软件。在一些示例中,操作系统104可操作以在移动计算机(例如智能电话或平板电脑)上运行。计算设备包括显示器142(例如,触摸屏显示器,LED显示器等),其可以显示用于由计算设备102执行的应用108的用户界面。一次可以执行多于一个的应用108。然而,在一些示例中(例如,在智能电话的情况下),显示器142的大小更适于一次显示单个执行应用108。
应用108可包括可由操作系统104执行的任何类型的计算机程序。应用108可以包括移动应用,例如为移动平台或移动设备开发的软件程序。应用108包括应用108a和应用108b。应用108b是与应用108a不同(和分开)的软件程序。应用108a和应用108b安装在计算设备102的操作系统104上。在一些示例中,应用108a和/或应用108b从在线数字存储下载并由计算设备102的操作系统104安装。在一些示例中,应用108a和/或应用108b已经预先安装在计算设备102的操作系统104上。
在一些示例中,应用108a是移动应用(例如,被配置为由移动平台或移动设备执行的应用)。在一些示例中,应用108b是移动应用。如果用户选择显示在计算设备102的显示器142上的应用108a(或应用108b)的图标,则操作系统104可以启动应用108a(或应用108b)作为前台进程134并在显示器142上显示应用108a(或应用108b)的应用内容。在一些示例中,应用108a是能够在计算设备102上下载和安装数字媒体(例如,应用108(例如,移动应用))的数字商店应用。在一些示例中,应用108a是电子商务应用。在一些示例中,应用108b是非浏览器应用(例如,不是web浏览器或移动web浏览器)。然而,应用108a和应用108b可以是被配置成在计算设备102的操作系统104上执行的任何类型的应用。
参照图1A和1B,应用108b可以在计算设备102的显示器142上显示内容144,其中应用108b作为前台进程134执行。对于用户所做的事情需要前台进程134,并且前台进程134具有最高的存储器优先级。例如,当系统存储器为低时,操作系统104可以首先终止后台进程以释放存储器。在一些示例中,作为前台进程134执行的应用108生成显示在显示器142上的内容。在一些示例中,作为前台进程134执行的应用108可以指位于显示器142上的应用108,或者换句话说,用户当前正在使用的应用。在一些示例中,作为前台进程134执行的应用108可以指能够消耗数据和/或当前在操作系统104上运行的活动应用。
显示在显示器142上的来自应用108b的内容144可以与可由不同应用(例如,应用108a)执行的动作146相关联。换句话说,应用108b可以显示内容144(当它作为前台进程134执行时),但是内容144(当被选择时)可以启动应用108a中的接口。例如,如果针对内容144采取用户提供的动作(例如,用户在内容144上选择(例如,轻拍,点击等)),则显示器142可切换到应用108a,如图1C所示。在图1C中,应用108a现在作为前台进程134执行。
内容144可以是由应用108b生成的任何类型的内容,包括到由另一应用108(例如,应用108a)执行的动作146的链接。在一些示例中,内容144包括关于产品或服务的信息,当选择该信息时,使得应用108a在前台进程134中被启动。在一些示例中,内容144包括广告内容(例如,移动广告)。在一些示例中,内容144包括广告安装广告。例如,内容144可以引用未安装在计算设备102上的另一应用,但是当被选择时,使得操作系统104启动应用108a(例如,数字商店应用),使得用户可以下载和安装由内容144所引用的应用。在一些示例中,移动广告(例如,内容144)的选择使得动作146启动具有深度链接或特定意图的数字商店应用(例如,应用108a),例如,到用于下载其它应用的用户界面。然而,注意,内容144可以是由应用108b提供的任何类型的内容,其在被选择时需要另一应用108的动作146。
参考图1A和1B,在针对内容144采取的用户动作之前(例如,在用户选择广告之前),应用108b使应用108a作为操作系统104的后台进程106被预启动。在一些示例中,作为后台进程106执行的应用108不呈现在计算设备102的显示器142上显示的用户界面(例如,不具有活动UI)。在一些示例中,作为后台进程106执行的应用108可以指非活动应用,但是在后台执行活动。在一些示例中,用户不知道后台进程106正在运行。后台进程106对于用户当前正在做的事情可能不如前台进程134重要,并且在一些示例中,由操作系统104给予较低的存储器优先级。
参照图1A,应用108a定义接口定义语言110。接口定义语言110定义允许应用108a与包括应用108b的其它应用108通信的编程接口。根据这里讨论的实施例,接口定义语言110定义初始化API 116,调用应用(例如,应用108b)使用该初始化API 116来调用预启动服务。换句话说,初始化API 116(例如,也称为预启动API)定义了预启动接口,该预启动接口可以被其他应用108(例如,应用108b)用来启动应用108a作为后台进程106。
在一些示例中,当应用108b的内容144显示在显示器142上时(在用户选择内容144之前),应用108b可以通过向应用108a的初始化API 116发送初始化请求126来调用初始化API 116。在初始化API 116处接收初始化请求126,这使得操作系统104启动应用108a作为后台进程106(例如,在后台运行但不显示活动UI)。在一些示例中,启动操作可以包括为新进程分配新存储器(例如,后台进程106),将应用代码加载到进程存储器中,和/或调度新进程的CPU时间。在一些示例中,初始化请求126的接收使得在应用108a和应用108b之间创建(或建立)进程间通信(IPC)连接111,以使得应用108a和应用108b能够彼此通信。
IPC连接111是允许进程彼此通信并同步其动作的通信协议。在一些示例中,初始化请求126的接收绑定应用108a和应用108b(例如,应用108a和应用108b被链接),以便可以在应用108a和应用108b之间交换信息。在一些示例中,当IPC连接111被建立时,它们的执行状态被链接或绑定。例如,如果用户关闭应用108b,则应用108a将被关闭。
在一些示例中,当应用108a绑定到应用108b时(换句话说,前台进程134绑定到后台进程106),后台进程106被给予与前台进程134相同的高优先级,这允许即使设备存储器为低时也继续预启动进程。例如,传统上,如果设备存储器低于阈值水平,则操作系统104可以终止后台进程。然而,当前台进程134绑定到后台进程106时(例如,在建立IPC连接111时),并且如果设备存储器低于阈值水平,则防止操作系统104终止正在执行预启动进程的后台进程106。
在一些示例中,应用108a可向应用108b提供服务实例(例如,绑定),其中服务实例(例如,绑定)用于识别可被调用的方法,并在应用108a与应用108b之间传递参数。当进程间通信连接111保持活动时,应用108a和应用108b可以彼此通信。在一些示例中,如果进程间通信连接111被终止(例如,去激活),则底层服务(例如,预启动服务)被终止,从而使得执行应用108a的后台进程106被终止。
因为应用108a是预启动的,所以响应于接收到关于内容144所采取的用户动作(其需要应用108a的动作146),应用108a的用户界面可更快速地呈现在显示器142上,从而减少显示与应用108a相关联的信息的等待时间。例如,当在图1B中选择内容144时,如图1C所示,可以将应用108a快速加载到显示器142(在前台进程134中)中,这里因为应用108a作为后台进程106被预启动,所以可以减少(例如,显著减少)加载应用108的等待时间。
图1D说明根据一个方面将内容105预取为后台进程106的示例。在一些示例中,如图1D所示,初始化请求126指示预取内容105。在一些示例中,术语“预取”可以指在应用108a作为操作系统104的后台进程106执行的同时,从通过网络150连接到计算设备102的服务器计算机160检索信息。
应用108b可以在前台进程134中显示内容144,并且在用户已经选择内容144之前,应用108b可以发送初始化请求126,该初始化请求126调用初始化API 116来预启动应用108a,其中初始化请求126可以指定一个或多个预取参数132。在一些示例中,如果应用108a是数字商店应用,则预取参数132可以为内容144所引用的应用提供应用标识符,并且应用108a可以预取关于应用的细节,例如名称,下载,评级和/或评论等。在一些示例中,预取参数132包括内容144所引用的资源(例如,产品,应用,服务等)的标识符。在一些示例中,预取参数132包括应用标识符。在一些示例中,预取参数132包括产品或服务标识符。在一些示例中,预取参数132包括统一资源定位符(URL)。然而,预取参数132的类型可以取决于应用108a的类型。在一些示例中,如果应用108a是电子商务站点,则预取参数132可以包括要预取的产品标识符和/或产品页面。
如果初始化请求126指定一个或多个预取参数132,则应用108a可以根据后台中的预取参数132预取内容105,并且在相对于内容144采取的用户动作之前(例如,在用户选择广告之前)将内容105存储(例如,高速缓存)在存储器(例如,存储器设备107)中。在一些示例中,为了预取内容105,应用108a可以通过网络150与服务器计算机160通信,以便从存储在服务器计算机160处的资源154中检索内容105。然后,当用户选择内容144时,可以将显示器142快速切换到应用108a(例如,因为应用108a被预启动),其中应用108a快速显示内容105(例如,因为内容105被预取)。
服务器计算机160可以是采用多个不同设备形式的计算设备,例如标准服务器,一组这样的服务器,或机架服务器系统。在一些示例中,服务器计算机160可以是共享诸如处理器和存储器等组件的单个系统。资源154可以是任何类型的计算机资源,诸如经由网络150可访问的网页或信息。网络150可以包括因特网和/或其它类型的数据网络,例如局域网(LAN),广域网(WAN),蜂窝网络,卫星网络或其它类型的数据网络。网络150还可以包括被配置成在网络150内接收和/或发送数据的任何数目的计算设备(例如,计算机,服务器,路由器,网络交换机等)。网络150还可以包括任何数量的硬连线和/或无线连接。
服务器计算机160可以包括形成在衬底中的一个或多个处理器161,操作系统(未示出)和一个或多个存储器设备163。存储器设备163可表示任何类型(或多种类型)的存储器(例如,RAM,快闪存储器,高速缓冲存储器,磁盘,磁带等)。在一些示例(未示出)中,存储器设备163可以包括外部存储器,例如,物理上远离服务器计算机160但可由服务器计算机160访问的存储器。服务器计算机160可以包括代表专门编程的软件的一个或多个模块或引擎。
在一些示例中,初始化请求126指示预启动。在一些示例中,初始化请求126包括要预启动和预取的信息。在一些示例中,使用单独的请求来指示应用108a预启动和预取。例如,第一请求可以被发送到初始化API 116以预启动应用108a作为后台进程106,然后第二请求可以被发送到初始化API 116以作为后台进程106预取内容105,其中第二请求可以在第一请求之后被发送,或者第一和第二请求可以在同一时间周围被发送。
应用108b可以响应于内容144被显示在显示器142上而发送初始化请求126。在一些示例中,应用108b包括请求决定模块148,其确定应用108b是否应将初始化请求126传输到初始化API 116以预启动和/或预取。在一些示例中,当内容144显示在显示器142上时,发生预启动和/或预取的决定。在一些示例中,在内容144被显示在显示器142上之前的时刻发生预启动和/或预取的决定。在一些示例中,在内容144被显示在显示器142上之后的时刻发生预启动和/或预取的决定。
请求决定模块148可基于一个或多个信号152来确定是否将初始化请求传输到初始化API 116。信号152可以包括由计算设备102生成的一个或多个信号。在一些示例中,信号152可以包括由服务器计算机生成的一个或多个信号。图1E示出了用于确定是否预启动和/或预取的信号152的各种示例。例如,参考图1E,信号152可以包括电池充电水平172,可用存储器水平174,计算设备102的网络条件179,点进率176和/或预测转换速率178。
电池充电水平172指示计算设备102的电池的当前充电水平。可用存储器水平174指示可用的计算设备102的当前存储器水平。点进率176是内容144已被用户选择的次数与内容144已被显示给用户的次数的比率。预测转换速率178是用户将执行某一目标(例如,下载内容144所引用的应用)的预测速率。网络条件179可以包括关于计算设备102到网络150的连接的带宽/速度的一个或多个网络度量。
图1F示出了根据一个方面的确定是否预启动应用108a的示例操作。参考图1F,在操作121中,请求决定模块148可以获得一个或多个信号152。在一些示例中,请求决定模块148可以响应于应用108b的内容144被显示在显示器142上(例如,参见图1B)并且在用户已经选择内容144之前获得信号152。在一些示例中,请求决定模块148可以响应于所请求的内容144来获得信号152。然后,在操作123中,请求决定模块148可以基于信号152来确定是否预启动应用108a。在一些示例中,如果电池充电水平172低于阈值水平(例如,低电池)和/或如果可用存储器水平174低于阈值水平(例如,低可用存储器),则请求决定模块148可确定不预启动应用108a。在一些示例中,如果点进率176低于阈值水平和/或如果预测转换速率178低于阈值水平,则请求决定模块148可以确定不预启动应用108a。
在一些示例中,如果电池充电水平172高于阈值水平,则请求决定模块148可确定预启动。在一些示例中,如果可用存储器水平174高于阈值水平,那么请求决定模块148可确定预启动。在一些示例中,如果点进率176高于阈值水平,则请求决定模块148可以确定预启动。在一些示例中,如果预测转换速率178高于阈值水平,则请求决定模块148可以确定预启动。在一些示例中,如果网络条件179高于阈值水平,则请求决定模块148可以确定预启动。在一些示例中,请求决定模块148可以使用上述信号152的任何组合来确定是否预启动。
在一些示例中,请求决定模块148将信号152输入到产生预启动记分值的记分算法中,并且如果预启动记分值高于阈值,则请求决定模块148确定预启动应用108a。在一些示例中,请求决定模块148可以执行确定是否预启动应用108a的机器学习算法。在一些示例中,机器学习算法包括神经网络。
如果请求决定模块148确定要预启动(是),则在操作125中,应用108b可以发送初始化请求126。例如,应用108b可以将初始化请求126发送到应用108a的初始化API 116,这使得应用108a作为后台进程106被启动。如果请求决定模块148确定不要预启动(否),则在操作127中,应用108b可以不发送初始化请求126,这使得应用108a不作为后台进程106被启动。
图1G示出了根据一个方面的确定是否预启动和预取的示例性操作。参照图1G,在操作131中,请求决定模块148可以获得一个或多个信号152。在一些示例中,请求决定模块148可以响应于应用108b的内容144被显示在显示器142上(例如,参见图1B)并且在用户已经选择内容144之前获得信号152。然后,在操作133中,请求决定模块148可以基于信号152来确定是否预启动应用108a。操作133可以类似于图1F的操作123,并且可以包括参考该操作讨论的任何细节。如果请求决定模块148确定不预启动(否),则在操作135中,请求决定模块148可以不向初始化API 116发送初始化请求126。
如果请求决定模块148确定要预启动(是),则在操作137中,请求决定模块148可以基于信号152来确定是否预取。在一些示例中,请求决定模块148可以使用网络条件179来确定是否预取内容105。例如,如果设备到网络150的连接的网络条件179(例如,带宽/速度)低于阈值水平,则请求决定模块148可以确定不预取内容105。然而,如果网络条件179等于或大于阈值水平,则请求决定模块148可以确定预取内容105。在一些示例中,请求决定模块148可使用另一信号152(或多个信号152)来确定是否预取内容105。例如,请求决定模块148可以将一个或多个信号152与一个或多个阈值进行比较,使用计分算法,或使用机器学习算法来确定是否预取内容105。
如果请求决定模块148确定不预取(137,否),则在操作139中,应用108b将初始化请求126发送到应用108a,其中初始化请求126指示仅预启动应用108a。例如,应用108b可以将初始化请求126发送到应用108a的初始化API 116,而无需预取参数132。如果请求决定模块148确定预取(137,是),则在操作141中,应用108b确定预取参数132。预取参数132可识别待预取的内容105和/或内容105将被检索的源。在一些示例中,预取参数132包括内容144所引用的资源(例如,产品,应用,服务等)的标识符。在一些示例中,预取参数132包括应用标识符。在一些示例中,预取参数132包括产品或服务标识符。在一些示例中,预取参数132包括统一资源定位符(URL)。
在操作143中,应用108b将具有预取参数132的初始化请求126发送到应用108a的初始化API 116。在一些示例中,为预启动和预取发送单独的请求。例如,响应于确定应用108a应该被预启动,应用108b可以向初始化API 116发送第一请求,并且,响应于确定应用108a应该预取内容105,应用108b可以向初始化API 116发送带有预取参数132的第二请求。
在一些示例中,信号152包括用户控制信号。例如,用户能够选择预启动/预取。如果请求决定模块148接收到指示用户已经选择退出预启动的信号,则请求决定模块148可以确定不发送初始化请求126(例如,不预启动应用108a)。在一些示例中,信号152包括指示设备在一段时间(例如,过去的小时等)内预启动应用108的次数的信号。如果次数超过阈值,则请求决定模块148可以确定不发送初始化请求126(例如,如果设备在过去的时间内发起至少X次的预启动,则跳过预启动/预取)。
当在应用108a的初始化API 116处接收到初始化请求126时,应用108a可以作为后台进程106被预启动。此外,在一些示例中,初始化请求126可以包括预取参数132,其将指示应用108a预取并存储内容105。在一些示例中,应用108b包括终止决定模块149,用于确定是否终止执行应用108a的后台进程106。例如,如果终止决定模块149确定终止后台进程106,则应用108b可以向初始化API 116发送终止请求129,这使得操作系统104终止正在执行应用108a的后台进程106。在一些示例中,终止请求129使应用108b和应用108a变为未绑定(例如,进程间通信连接111被终止)。在一些示例中,当内容144未在应用108b中显示(例如,用户已将内容144移离屏幕)或定时器151已期满时,终止决定模块149发送终止请求129。在一些示例中,当用户关闭应用108b时,终止决定模块149发送终止请求129。以此方式,已被分配给执行应用108a的后台进程106的存储器可用于其它程序,因为存在用户将不选择内容144的相对较好的机会。
图1H示出了终止决定模块149的示例操作。参照图1H,终止决定模块149可以执行进程180和进程190。在一些示例中,进程190与进程180并行地执行。
关于进程180,在操作181中,终止决定模块149确定(例如,连续地或周期性地)内容144是否不再显示在显示器142上(例如,内容是否已经移出屏幕)。如果内容144仍然显示在显示器142上(否),则终止决定模块149继续监视内容144是否已经移出显示器142。如果内容144不再显示在显示器上(是),则在操作183中,终止决定模块149将终止请求129发送到应用108a的初始化API 116。响应于在初始化API 116处接收到终止请求129,终止(或关闭)正在执行应用108a的后台进程106。在一些示例中,响应于在初始化API 116处接收到终止请求129,终止进程间通信连接111,这使得执行应用108a的后台进程106被终止。换句话说,响应于接收到初始化请求126而建立进程间通信连接111,并且进程间通信连接111保持活动,直到在初始化API 116处接收到终止请求129。当进程间通信连接111活动时,应用108a和应用108b可以彼此通信。然而,响应于接收到终止请求129,去激活(例如,终止)进程间通信连接111,这使得底层服务(例如,预启动服务)终止。
对于进程190,在操作191中,终止决定模块149确定定时器151是否已经期满。定时器151可以被设置为任何时间长度,例如30秒,1分钟,2分钟,5分钟等。定时器151的发起可以响应于应用108被预启动的时间和/或进程间通信连接111被建立(例如,创建或激活)的时间而开始。如果终止决定模块149确定定时器尚未期满(否),则终止决定模块149继续确定定时器是否已期满。如果终止决定模块149确定定时器已经期满(是),则在操作193中,终止决定模块149将终止请求129发送到应用108a的初始化API116。响应于在初始化API 116处接收到终止请求129,终止(或关闭)正在执行应用108a的后台进程106。例如,一旦用户不再可能或不能选择内容144,进程180和190确保由预启动应用108a消耗的系统资源尽可能早地被释放。这确保了计算设备102有效地操作,同时如果用户确实选择了内容144,则仍然减少了加载应用108a的等待时间。
图2示出了计算设备202,其使得一个应用(例如,应用108b)能够在用户已经选择了需要应用108a的动作246的内容244之前,预启动另一个应用(例如,应用108a)作为后台进程。图2的计算设备202可以是图1A到1H的系统的示例,并且可以包括参考那些附图讨论的任何细节。例如,应用208a和应用208a可以分别是图1A到1H的应用108a和图1A到1H的应用108b的示例。
应用208a包括定义初始化API 216(例如,预启动API)的接口定义语言210,在针对应用208b的内容244采取的动作之前,调用应用(例如,应用208b)使用初始化API216来预启动应用208a,其中应用208b作为计算设备202的操作系统的前台进程执行。例如,响应于在显示器242上显示内容244,应用208b可以通过向初始化API 216发送预启动服务调用226来调用初始化API 216。预启动服务调用226可以是图1A到1H的初始化请求126的示例。
更详细地,响应于内容244被显示在显示器242上(或者响应于图1A到1H的请求决定模块148确定预启动应用208a),应用208b可以创建引用在接口定义语言210中定义的初始化API 216的意图213。意图213可以是要执行的预启动操作的抽象描述。然后,应用208b向初始化API 216发送预启动服务调用226,其中预启动服务调用226包括意图213,服务连接对象215和标志217。在一些示例中,预启动服务调用226是绑定服务方法,其将应用208b绑定到初始化API 216的预启动服务。在一些示例中,服务连接对象215定义了用于监视预启动服务的状态的接口。在一些示例中,标志217是这样的标志,其在被设置时,只要存在绑定(例如,当进程间通信连接211活动时)就自动创建预启动服务。
响应于预启动服务调用226的接收,启动应用208a作为计算设备202的操作系统的后台进程。此外,响应于预启动服务调用226的接收,应用208a获得绑定器212(例如,服务实例)(以接口定义语言定义)并将绑定器212返回到应用208b。绑定器212可以定义应用208b使用(例如,调用)向应用208a发送信息的一个或多个方法214。进程间通信连接211可以响应于绑定器212的接收而建立。进程间通信连接211可以保持活动,直到在初始化API 216处接收到解除绑定服务调用233,其中解除绑定服务调用233终止进程间通信连接211。解除绑定服务调用233可以是图1A到1H的终止请求129的示例。在进程间通信连接211保持活动期间,应用208b可以调用由绑定器212定义的方法214来向应用208a发送信息。
根据这里讨论的实施例,由于应用208a将需要在用户选择内容244时运行,因此解除绑定服务调用233被延迟。例如,解除绑定服务调用233被延迟,直到定时器(例如图1A的定时器151)到期或者内容244未在前台进程中显示。换句话说,应用208b(例如,图1A的终止决定模块149)确定内容244是否已移出屏幕或定时器是否已过期,且如果内容244已移出屏幕或定时器已过期,则应用208b传输解除绑定服务调用233以终止进程间通信连接211,这致使执行应用208a的后台进程被终止。
在一些示例中,在将解除绑定服务调用233发送到应用208a的初始化API 216之前,可以通过调用由绑定器212定义的方法214将一个或多个预取参数232传递到应用208a。例如,如上所述,应用208a响应于预启动服务调用226而向应用208b返回绑定器212,其中绑定器212定义由应用208b调用以将信息传递到应用208a的一个或多个方法214。在一些示例中,应用208b使用一个或多个方法214来调用初始化API 216以向应用208a提供预取参数232。
图3示出了具有应用(例如,308b)的计算设备302,该应用可以使两个应用(例如,应用308a,应用308c)根据一个方面被预启动和/或预取。计算设备302可以是图1A到1H的计算设备102和/或图2的计算设备202的示例,并且可以包括关于那些附图讨论的任何细节。例如,计算设备302可以包括一个或多个处理器303,一个或多个存储器设备307,操作系统304和应用308(例如,应用308a,应用308b,应用308c)。
如图3所示,应用308b可以作为前台进程334执行,其中应用308b在计算设备302的显示器342上显示内容344。内容344可以与应用308a的动作346-1以及应用308c的动作346-2相关联。在一些示例中,当应用308b的内容344显示在显示器342上时(在用户选择内容344之前),应用308b可以将第一初始化请求(例如,图1A到1H的初始化请求126)发送到应用308a的初始化API 316-1,并且可以将第二初始化请求(例如,图1A到1H的初始化请求126)发送到应用308c的初始化API 316-2。初始化API 316-1是以应用308a的接口定义语言来定义的。初始化API 316-2是以应用308c的接口定义语言来定义的。在一些示例中,至少部分地彼此并行地发送第二初始化请求和第一初始化请求。在一些示例中,第一初始化请求包括一个或多个预取参数,以使应用308a预取内容。在一些示例中,第二初始化请求包括一个或多个预取参数,以使应用308c预取内容。
在初始化API 316-1处接收第一初始化请求,这使得应用308a作为后台进程306被启动。在一些示例中,第一初始化请求的接收使得在应用308a和应用308b之间创建(或建立)第一IPC连接311-1,以使得应用308a和应用308b能够彼此通信。在初始化API 316-2处接收第二初始化请求,这使得应用308c作为后台进程306被启动。在一些示例中,第二初始化请求的接收使得在应用308c和应用308b之间创建(或建立)第二IPC连接311-2,以使得应用308c和应用308b能够彼此通信。然后,当接收到关于内容344的用户动作时,应用308a和/或应用308c可以以相对快速的方式切换到显示器242,因为这两个应用都被预启动。
图4A和4B示出了使应用(例如,应用408b)能够预启动另一应用(例如,数字商店应用408a)和/或使数字商店应用408a预取内容的系统400。系统400可以是图1A到1H的系统100,图2的计算设备202和/或图3的计算设备302的示例,并且可以包括参考那些附图讨论的任何细节。例如,系统400可以包括服务器计算机460,服务器计算机460具有一个或多个处理器461,一个或多个存储器设备463,存储用户可以下载和安装的数字媒体481的在线数字存储480,以及被配置成将应用安装内容444插入应用的广告引擎482。系统400包括计算设备402,其被配置为通过网络450与服务器计算机460通信。计算设备402包括执行多个应用408的操作系统404,应用408包括数字商店应用408a和应用408b。
应用408b可以在计算设备402的显示器442上显示应用安装内容444,其中应用408b作为前台进程434执行。例如,应用安装内容444可以引用未安装在计算设备402上的另一应用(例如,应用408c),但是当被选择时,使得操作系统404启动数字商店应用408a,使得用户可以下载和安装应用安装内容444所引用的应用408c。在一些示例中,对应用安装内容444的选择引起启动数字商店应用408a的动作。
在针对应用安装内容444所采取的用户动作之前(例如,在用户选择广告之前),应用408b使数字商店应用408a作为操作系统404的后台进程406被预启动。数字商店应用408a定义接口定义语言410。接口定义语言410定义允许数字商店应用408a与包括应用408b的其它应用408通信的编程接口。根据这里讨论的实施例,接口定义语言410定义初始化API416,其中调用应用(例如,应用408b)用于调用预启动服务。换句话说,初始化API 416(例如,也称为预启动API)定义了可以由其他应用408(例如,应用408b)用来预启动数字商店应用408a作为后台进程406的预启动接口。
在一些示例中,当应用408b的应用安装内容444显示在显示器442上时(在用户已经选择了应用安装内容444之前),应用408b可以向数字商店应用408a发送初始化请求426。初始化请求426在初始化API 416处被接收,这使得数字商店应用408a作为后台进程406被启动。在一些示例中,初始化请求426的接收使得在数字商店应用408a和应用408b之间创建(或建立)进程间通信(IPC)连接411,以使得数字商店应用408a和应用408b能够彼此通信。
IPC连接411是允许进程彼此通信并同步其动作的通信协议。在一些示例中,初始化请求426的接收绑定了数字商店应用408a和应用408b(例如,数字商店应用408a和应用408b被链接),从而可以在数字商店应用408a和应用408b之间交换信息。在一些示例中,数字商店应用408a和应用408b根据参考图2描述的技术来链接。当进程间通信连接411保持活动时,数字商店应用408a和应用408b可以彼此通信。在一些示例中,如果进程间通信连接411被终止(例如,去激活),则底层服务(例如,预启动服务)被终止,从而使得执行数字商店应用408a的后台进程406被终止。
然后,当接收到关于应用安装内容444的用户动作时,数字商店应用408a可更快速地加载,从而减少显示与数字商店应用408a相关联的信息的等待时间。例如,当选择了应用安装内容444时,数字商店应用408a可以被快速地加载到显示器442中(在前台进程434中),其中可以减少(例如,显著减少)呈现数字商店应用408a的等待时间,因为数字商店应用408a作为后台进程406被预启动。
在一些示例中,初始化请求426指定一个或多个预取参数432。在一些示例中,预取参数432可以为应用安装内容444所引用的应用408c提供应用标识符,并且数字商店应用408a可以预取关于应用408c的细节,例如名称,下载,评级和/或评论等。举例来说,如果初始化请求426指定一个或多个预取参数432,那么数字商店应用408a可作为后台进程406根据(一个或多个)预取参数432来预取内容,且在相对于应用安装内容444采取的用户动作之前(例如,在用户选择广告之前)将内容存储(例如,高速缓存)在存储器中。然后,当用户选择应用安装内容444时,可以将显示器442快速切换到数字商店应用408a(例如,因为数字商店应用408a是预启动的),其中数字商店应用408a快速显示预取的内容。
在一些示例中,应用408b包括请求决定模块448,其确定应用408b是否应将初始化请求426传输到初始化API 416以预启动和/或预取。在一些示例中,请求决定模块448基于一个或多个信号452来确定是否将初始化请求传输到初始化API 416。信号452可以是参考图1A到1H描述的任何信号152。请求决定模块448可以执行参考图1A到1H描述的任何操作。
在数字商店应用408a的初始化API 416处接收到初始化请求426时,数字商店应用408a可以作为后台进程406被预启动。此外,在一些示例中,初始化请求426可以包括预取参数432,其将指示数字商店应用408a预取和存储内容。在一些示例中,应用408b包括终止决定模块449,以确定是否终止执行数字商店应用408a的后台进程406。例如,如果终止决定模块449确定终止后台进程406,则应用408b可以向初始化API 416发送终止请求429,这使得后台进程406被终止。在一些示例中,当应用安装内容444未在应用408b中显示(例如,用户已将应用安装内容444移出屏幕)或定时器451期满时,终止决定模块449发送终止请求429。以这种方式,已经分配给执行数字商店应用408a的后台进程406的存储器可以用于其它程序,因为存在用户将不选择应用安装内容444的相对好的机会。终止决定模块449可以执行参考图1A到1H的终止决定模块449描述的任何操作。
图5是描述根据一个方面使用进程间通信来预启动应用的示例操作的流程图500。尽管关于图1A到1H的系统100解释了图5的流程图500,但是流程图500可适用于这里讨论的任何实施例。尽管图5的流程图500以依次的顺序示出了操作,但是应当理解,这仅仅是一个示例,并且可以包括附加的或替代的操作。此外,图5的操作和相关操作可以以与所示不同的顺序执行,或者以并行或重叠的方式执行。流程图500的操作可以从调用应用(例如,应用108b,应用208b,应用308b,应用408b)的角度来看。
操作502包括执行第一应用108b作为计算设备102的操作系统104的前台进程134。操作504包括由第一应用108b在计算设备102的显示器142上显示内容144,其中内容144与可由第二应用108a执行的动作146相关联。操作506包括在针对显示在计算设备102的显示器142上的内容144采取的用户动作之前,由第一应用108b将初始化请求126发送到第二应用108a的初始化应用编程接口(API)116,其中初始化请求126被配置成使第二应用108a被启动作为计算设备102的操作系统104的后台进程106。
在一些示例中,操作包括由第一应用108b响应于内容144未显示在显示器142上而向第二应用108a的初始化API 116发送终止请求129,其中终止请求129被配置为使得执行第二应用108a的后台进程106被终止。
在一些示例中,操作包括由第一应用108b响应于定时器151的期满而向第二应用108a的初始化API 116发送终止请求129,其中终止请求129被配置为使得执行第二应用108a的后台进程106被终止。
在一些示例中,初始化请求126被配置为使得在第一应用108b和第二应用108a之间建立进程间通信连接111,以使得第一应用108b和第二应用108a能够彼此通信。
在一些示例中,操作包括由第一应用108b响应于内容144没有显示在显示器142上或者响应于定时器151的期满而向第二应用108a的初始化API 116发送终止请求129,其中终止请求129被配置为终止进程间通信连接111。
在一些示例中,操作包括由第二应用108a基于至少一个信号152来确定是否将初始化请求126发送到第二应用108a的初始化API 116。
在一些示例中,至少一个信号152包括电池充电水平172,其中响应于电池充电水平172大于阈值水平而传输初始化请求126。在一些示例中,至少一个信号152包括可用存储器水平174,其中响应于可用存储器水平174大于阈值水平而传输初始化请求126。在一些示例中,至少一个信号152包括与由第一应用108b显示的内容144相关联的点进率176,其中响应于点进率176大于阈值水平来发送初始化请求126。在一些示例中,至少一个信号152包括与由第一应用108b显示的内容144相关联的预测转换速率178,其中响应于预测转换速率178大于阈值水平来发送初始化请求126。在一些示例中,至少一个信号152包括计算设备102的网络条件179,其中响应于网络条件179大于阈值水平来发送初始化请求126。在一些示例中,初始化请求126包括至少一个预取参数132,以使得第一应用108b能够在网络150上从服务器计算机160预取内容105作为后台进程106。
图6是描述根据一个方面使用进程间通信来预启动应用的示例操作的流程图600。尽管关于图2的计算设备202解释了图6的流程图600,但是流程图600可适用于本文讨论的任何实施例。尽管图6的流程图600以依次的顺序示出了操作,但是应当理解,这仅仅是一个示例,并且可以包括附加的或替代的操作。此外,图6的操作和相关操作可以以与所示不同的顺序执行,或者以并行或重叠的方式执行。流程图600的操作可以从调用应用(例如,应用108b,应用208b,应用308b,应用408b)的角度来看。
操作602包括接收预启动服务调用226。例如,响应于确定应用208a将被预启动(在针对显示在计算设备202的显示器242上的应用208b的内容244采取的用户动作之前),应用208a的初始化API 216从应用208b接收预启动服务调用226。在一些示例中,预启动服务调用226包括意图213,服务连接对象215和标志217。在一些示例中,预启动服务调用226的接收使得应用208a被预启动。
操作604包括发送服务实例(例如,绑定器212),其中服务实例(例如,绑定器212)包括将由应用(例如,应用208a)用来调用初始化API 216的一个或多个方法214。在一些示例中,服务实例的接收使得进程间通信连接211被建立,其中应用208a和应用208b可以在进程间通信连接211活动时彼此通信。
操作606包括启动与进程间通信连接211相关联的定时器(例如图1A的定时器151)。在一些示例中,当建立进程间通信连接211时启动定时器。在一些示例中,定时器定义的持续时间可以是任何值,例如30秒,1分钟,2分钟,5分钟等。
操作608包括确定内容244是否已移出屏幕或定时器是否已期满。例如,应用208b监视定时器以及内容244是否仍然显示在显示器242上,或者是否不再显示。如果否,则过程返回到操作608以继续确定内容244是否已移出屏幕或定时器是否已期满。如果是,则过程继续到操作610。
操作610包括终止进程间通信连接211。在一些示例中,应用208b向初始化API 216发送解除绑定服务调用233,这使得正在执行应用208b的后台进程被终止。
图7是描绘根据一个方面使用进程间通信来预启动应用的示例操作的流程图700。尽管关于图1A到1H的系统100解释了图7的流程图700,但是流程图700可适用于这里讨论的任何实施例。尽管图7的流程图700以依次的顺序示出了操作,但是应当理解,这仅仅是一个示例,并且可以包括附加的或替代的操作。此外,图7的操作和相关操作可以以与所示不同的顺序执行,或者以并行或重叠的方式执行。流程图700的操作是从链接的应用(例如,应用108a,应用208a,应用308a,数字商店应用408a)的角度来看的。
操作702包括在相对于显示在计算设备102的显示器142上的内容144采取的用户动作之前,在第一应用108a的初始化应用编程接口(API)116处从第二应用108b接收初始化请求126,第二应用108b作为计算设备102的操作系统104的前台进程134执行。
操作704包括响应于初始化请求126,在第一应用108a和第二应用108b之间建立进程间通信连接111,以使第一应用108a和第二应用108b能够彼此通信。操作706包括响应于初始化请求126而启动第一应用108a作为计算设备102的操作系统104的后台进程106。
尽管所公开的发明性概念包括所附权利要求中所限定的那些概念,但是应当理解,本发明性概念也可以根据以下实施例来限定:
实施例1是一种使用进程间通信预启动应用的方法,该方法包括执行第一应用作为计算设备的操作系统的前台进程,由第一应用在计算设备的显示器上显示内容,以及在针对显示器上显示的内容采取用户动作之前,由第一应用向第二应用的初始化应用编程接口(API)发送初始化请求。
实施例2是根据实施例1所述的方法,其中所述内容与可由所述第二应用执行的动作相关联。
实施例3是实施例1至2中任一项所述的方法,其中所述计算设备是移动计算设备。
实施例4是实施例1至3中的任一者的方法,其中所述初始化请求经配置以使第二应用被启动作为计算装置的操作系统的后台进程。
实施例5是根据实施例1至4中任一实施例所述的方法,进一步包含响应于所述内容未显示在所述显示器上,由所述第一应用向所述第二应用的所述初始化API传输终止请求。
实施例6是根据实施例1至5中任一实施例所述的方法,其中所述终止请求经配置以使正执行所述第二应用的所述后台进程被终止。
实施例7是根据实施例1至6中任一实施例所述的方法,进一步包含由所述第一应用响应于定时器的到期而向所述第二应用的所述初始化API传输终止请求。
实施例8是实施例1至7中的任一者的方法,其中所述初始化请求经配置以使在所述第一应用与所述第二应用之间建立进程间通信连接,以使所述第一应用与所述第二应用能够彼此通信。
实施例9是根据实施例1至8中任一实施例所述的方法,其进一步包含由所述第一应用响应于所述内容未显示在所述显示器上或响应于定时器到期而向所述第二应用的所述初始化API传输终止请求。
实施例10是实施例1至9中任一实施例的方法,其中终止请求被配置为终止进程间通信连接。
实施例11是实施例1至10中任一实施例的方法,其进一步包含由第二应用基于至少一个信号来确定是否将初始化请求传输到第二应用的初始化API。
实施方案12是实施方案1至11中任一项的方法,其中所述至少一个信号包括电池充电水平。
实施例13是实施例1至12中的任一者的方法,其中响应于电池充电水平大于阈值水平而传输初始化请求。
实施例14是实施例1至13中的任一者的方法,其中所述至少一个信号包括可用存储器水平。
实施例15是根据实施例1至14中任一实施例所述的方法,其中响应于所述可用存储器水平大于阈值水平而传输所述初始化请求。
实施例16是实施例1至15中任一实施例的方法,其中所述至少一个信号包括与第一应用所显示的内容相关联的点进率。
实施例17是根据实施例1至16中任一实施例所述的方法,其中响应于所述点进率大于阈值水平而传输所述初始化请求。
实施例18是实施例1至17中的任一者的方法,其中所述至少一个信号包括与第一应用所显示的内容相关联的预测转换速率。
实施例19是实施例1至18中任一实施例的方法,其中响应于预测转换速率大于阈值水平而传输初始化请求。
实施例20是实施例1至19中任一项所述的方法,其中所述至少一个信号包括所述计算设备的网络状况。
实施例21是根据实施例1至20中任一项所述的方法,其中响应于所述网络条件大于阈值水平而传输所述初始化请求。
实施例22是根据实施例1至21中任一实施例所述的方法,其中所述初始化请求包括至少一个预取参数,以使所述第一应用能够作为后台进程在网络上从服务器计算机预取内容。
实施方案23是实施方案1至22中任一项的方法,其还包括获得一个或多个信号。
实施例24是实施例1至23中的任一者的方法,其中所述一个或多个信号包括电池充电水平,可用存储器水平,点进率,预测转换速率或网络条件中的至少一个。
实施例25是实施例1至24中任一实施例的方法,其进一步包含基于所述一个或多个信号来确定预启动第二应用。
实施例26是实施例1至25中任一实施例的方法,其进一步包括基于所述一个或多个信号来确定经由网络从服务器计算机预取内容。
实施例27是实施例1至26中任一项所述的方法,其中所述初始化请求包括至少一个预取参数,以使所述第二应用能够作为后台进程预取所述内容。
实施例28是实施例1至27中的任一者的方法,其中第二应用包括数字商店应用。
实施例29是实施例1至28中任一实施例的方法,其中第一应用包括非浏览器应用。
实施例30是实施例1至29中任一实施例的方法,其进一步包含接收关于在计算装置的显示器上显示的内容采取用户动作的指示。
实施例31是实施例1至30中任一实施例的方法,其进一步包含在计算设备的显示器上加载前台进程中的第二应用。
实施例32是一种包括存储在其上的指令的非暂时性计算机可读存储介质,所述指令在由至少一个处理器执行时被配置成使计算系统执行实施例1到31中的任一实施例的方法。
实施例33是一种装置,其包含用于执行实施例1到31中任一者的方法的装置。
实施例34是一种装置,包括:至少一个处理器;以及包括计算机程序代码的至少一个存储器;所述至少一个存储器和所述计算机程序代码经配置以利用所述至少一个处理器致使所述装置至少执行实施例1到31中的任一者的方法。
实施例35是一种使用进程间通信预启动应用的方法,该方法包括在第一应用的初始化应用编程接口(API)处接收来自第二应用的初始化请求,在针对显示在计算设备的显示器上的内容所采取的用户动作之前,第二应用作为计算设备的操作系统的前台进程执行,响应于该初始化请求,在第一应用和第二应用之间建立进程间通信连接,以使第一应用和第二应用能够彼此通信,并且响应于初始化请求,启动第一应用作为计算设备的操作系统的后台进程。
实施例36是实施例35的方法,其中初始化请求包括至少一个预取参数。
实施例37是实施例35至36中任一实施例的方法,其进一步包括由所述第一应用根据所述至少一个预取参数通过网络从服务器计算机检索内容。
实施例38是实施例35至37中任一实施例的方法,其进一步包含由第一应用将内容存储在计算装置的存储器设备中。
实施例39是实施例35至38中任一实施例的方法,其进一步包括响应于所述内容未显示在所述显示器上或响应于定时器到期,在所述第二应用的所述初始化API处接收来自所述第二应用的终止请求。
实施例40是实施例35至39中任一实施例的方法,其进一步包括终止进程间通信连接,使得作为后台进程执行的第二应用被终止。
实施例41是实施例35至40中的任一者的方法,其中所述计算设备是移动计算设备。
实施例42是实施例35至41中的任一者的方法,其中第一应用是数字商店应用。
实施例43是实施例35至42中的任一者的方法,其中第二应用是非浏览器应用。
实施例44是一种包括存储在其上的指令的非暂时性计算机可读存储介质,所述指令在由至少一个处理器执行时被配置成使计算系统执行实施例35到43中的任一实施例的方法。
实施例45是一种装置,其包含用于执行实施例35到43中任一者的方法的装置。
实施例46是一种装置,包括:至少一个处理器;以及包括计算机程序代码的至少一个存储器;所述至少一个存储器和所述计算机程序代码经配置以利用所述至少一个处理器致使所述装置至少执行实施例35到43中的任一者的方法。
图8示出了可以与这里描述的技术一起使用的计算机设备800和移动计算机设备850的示例。在一些实现中,计算机设备800是计算设备102,计算设备202,计算设备302或计算设备402的示例。在一些实现中,计算机设备800是服务器计算机160的示例。在一些实现中,移动计算机设备850是计算设备102,计算设备202,计算设备302或计算设备402的示例。计算设备800旨在表示各种形式的数字计算机,例如膝上型计算机,台式计算机,平板计算机,工作站,个人数字助理,电视机,服务器,刀片服务器,大型机和其它适当的计算设备。计算设备850旨在表示各种形式的移动设备,例如个人数字助理,蜂窝电话,智能电话和其它类似的计算设备。这里所示的组件,它们的连接和关系以及它们的功能仅仅是示例性的,而不是要限制在本文件中描述和/或要求保护的本发明的实现。
计算设备800包括处理器802,存储器804,存储设备806,连接到存储器804和高速扩展端口810的高速接口808,以及连接到低速总线814和存储设备806的低速接口812。处理器802可以是基于半导体的处理器。存储器804可以是基于半导体的存储器。组件802,804,806,808,810和812中的每一个使用各种总线互连,并且可以适当地安装在公共母板上或以其它方式安装。处理器802可以处理用于在计算设备800内执行的指令,包括存储在存储器804或存储设备806上的指令,以在外部输入/输出设备(例如耦合到高速接口808的显示器816)上显示GUI的图形信息。在其它实现中,可以适当地使用多个处理器和/或多个总线以及多个存储器和存储器类型。此外,可以连接多个计算设备800,其中每个设备提供必要操作的部分(例如,作为服务器库,一组刀片服务器,或多处理器系统)。
存储器804在计算设备800内存储信息。在一个实现中,存储器804是一个或多个易失性存储器单元。在另一实现中,存储器804是一个或多个非易失性存储器单元。存储器804也可以是另一种形式的计算机可读介质,例如磁盘或光盘。
存储设备806能够为计算设备800提供大容量存储。在一个实现中,存储设备806可以是或包含计算机可读介质,例如软盘设备,硬盘设备,光盘设备,或磁带设备,闪存或其它类似的固态存储器设备,或设备阵列,包括存储区域网络中的设备或其它配置。计算机程序产品可以有形地包含在信息载体中。计算机程序产品还可以包含指令,所述指令在被执行时执行一个或多个方法,例如上述的那些方法。信息载体是计算机或机器可读介质,例如存储器804,存储设备806或处理器802上的存储器。
高速控制器808管理计算设备800的带宽密集操作,而低速控制器812管理较低的带宽密集操作。这种功能的分配仅仅是示例性的。在一个实现中,高速控制器808耦合到存储器804,显示器816(例如,通过图形处理器或加速器)以及高速扩展端口810,高速扩展端口810可接受各种扩展卡(未示出)。在该实现中,低速控制器812耦合到存储设备806和低速扩展端口814。可以包括各种通信端口(例如,USB,蓝牙,以太网,无线以太网)的低速扩展端口可以例如通过网络适配器耦合到一个或多个输入/输出设备,例如键盘,定点设备,扫描仪,或联网设备,例如交换机或路由器。
计算设备800可以以多种不同的形式来实现,如图所示。例如,它可以被实现为标准服务器820,或者在一组这样的服务器中多次实现。它也可以被实现为机架服务器系统824的一部分。此外,可以在诸如膝上型计算机822之类的个人计算机中实现本发明。或者,可以将来自计算设备800的组件与移动设备(未示出)中的其它组件(例如设备850)组合。每个这样的设备可以包含一个或多个计算设备800,850,并且整个系统可以由彼此通信的多个计算设备800,850组成。
计算设备850包括处理器852,存储器864,诸如显示器854的输入/输出设备,通信接口866和收发器868等组件。设备850还可以具有存储设备,例如微驱动器或其它设备,以提供附加的存储。部件850,852,864,854,866和868中的每一个使用各种总线互连,并且几个部件可以适当地安装在公共母板上或以其它方式安装。
处理器852可以执行计算设备850内的指令,包括存储在存储器864中的指令。处理器可以被实现为芯片的芯片组,该芯片组包括单独的和多个模拟和数字处理器。例如,处理器可以提供设备850的其它组件的协调,例如用户接口的控制,设备850运行的应用以及设备850的无线通信。
处理器852可以通过控制接口858和耦合到显示器854的显示接口856与用户通信。显示器854可以是例如TFT LCD(薄膜晶体管液晶显示器)或OLED(有机发光二极管)显示器,或其它适当的显示技术。显示接口856可以包括用于驱动显示器854以向用户呈现图形和其它信息的适当电路。控制接口858可以接收来自用户的命令,并将它们转换以提交给处理器852。此外,可以提供与处理器852通信的外部接口862,以便实现设备850与其它设备的近区通信。外部接口862可以例如在一些实现中提供有线通信,或者在其它实现中提供无线通信,并且还可以使用多个接口。
存储器864在计算设备850内存储信息。存储器864可被实现为一个或多个计算机可读介质,一个或多个易失性存储器单元,或一个或多个非易失性存储器单元。扩展存储器874也可以被提供并通过扩展接口872连接到设备850,扩展接口872可以包括例如SIMM(单列直插存储器模块)卡接口。这种扩展存储器874可以为设备850提供额外的存储空间,或者也可以为设备850存储应用或其它信息。具体地,扩展存储器874可以包括执行或补充上述过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器874可以被提供作为设备850的安全模块,并且可以用允许设备850的安全使用的指令来编程。此外,可以经由SIMM卡以及附加信息来提供安全应用,例如以不可窃取的方式将识别信息放置在SIMM卡上。
存储器可以包括,例如,闪速存储器和/或NVRAM存储器,如下所述。在一个实现中,计算机程序产品被有形地包含在信息载体中。所述计算机程序产品包含指令,所述指令在被执行时执行一个或多个方法,例如上述的那些方法。信息载体是计算机或机器可读介质,诸如存储器864,扩展存储器874,或处理器852上的存储器,其可以例如通过收发器868或外部接口862接收。
设备850可以通过通信接口866进行无线通信,通信接口866在必要时可以包括数字信号处理电路。通信接口866可提供各种模式或协议下的通信,例如GSM语音呼叫,SMS,EMS或MMS消息,CDMA,TDMA,PDC,WCDMA,CDMA2000或GPRS等。这种通信可以例如通过射频收发器868发生。此外,可以发生短距离通信,例如使用蓝牙,Wi-Fi或其它这样的收发器(未示出)。另外,GPS(全球定位系统)接收器模块870可向装置850提供额外的导航及位置相关无线数据,所述装置850可适当地由装置850上运行的应用使用。
设备850还可以使用音频编解码器860可听地通信,音频编解码器860可以从用户接收口头信息并将其转换为可用数字信息。音频编解码器860同样可以为用户生成可听声音,例如通过扬声器,例如在设备850的手持机中。这种声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如,语音消息,音乐文件等),并且还可以包括由在设备850上操作的应用生成的声音。
计算设备850可以以多种不同的形式实现,如图所示。例如,它可以被实现为蜂窝电话880。它也可以被实现为智能电话882,个人数字助理或其它类似的移动设备的一部分。
除了上面的描述之外,可以向用户提供允许用户做出关于本文描述的系统,程序或特征是否以及何时能够收集用户信息(例如,关于用户的社交网络,社交动作或活动,职业,用户的偏好,或用户的当前位置的信息),以及用户是否从服务器发送内容或通信的选择的控制。此外,在存储或使用某些数据之前,可以以一种或多种方式处理这些数据,从而去除个人可识别信息。例如,可以对待用户的身份,从而不能为用户确定个人可识别的信息,或者可以在获得位置信息的地方(例如城市,邮政编码或州级)概括用户的地理位置,从而不能确定用户的特定位置。因此,用户可以控制收集关于用户的什么信息,如何使用该信息以及向用户提供什么信息。
这里描述的系统和技术的各种实现可以在数字电子电路,集成电路,专门设计的ASIC(专用集成电路),计算机硬件,固件,软件和/或其组合中实现。这些各种实现可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实现,所述可编程系统包括至少一个可编程处理器,所述可编程处理器可以是专用的或通用的,被耦合以从存储系统,至少一个输入设备和至少一个输出设备接收数据和指令,以及向存储系统,至少一个输入设备和至少一个输出设备发送数据和指令。
这些计算机程序(也称为程序,软件,软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或用汇编/机器语言来实现。如这里所使用的,术语“机器可读介质”,“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品,设备和/或设备(例如,磁盘,光盘,存储器,可编程逻辑设备(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
为了提供与用户的交互,这里描述的系统和技术可以在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户可以通过其向计算机提供输入的键盘和定点设备(例如,鼠标或轨迹球)的计算机上实现。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如,视觉反馈,听觉反馈或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声音,语音或触觉输入。
在此描述的系统和技术可以在计算系统中实现,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面或Web浏览器的客户端计算机,用户可以通过该图形用户界面或Web浏览器与在此描述的系统和技术的实现进行交互)。或者这种后端,中间件或前端组件的任意组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”)和因特网。
计算系统可以包括客户机和服务器。客户机和服务器通常彼此远离,并且通常通过通信网络进行交互。客户机和服务器之间的关系是通过在各个计算机上运行并且彼此具有客户机-服务器关系的计算机程序而产生的。
在本说明书和所附权利要求书中,单数形式“一”,“一个”和“该”不排除复数引用,除非上下文另有明确规定。此外,除非上下文另有明确规定,否则诸如“和”,“或”和“和”和/或“的结合是包含性的。例如,“A和/或B”包括单独的A,单独的B和具有B的A。此外,在所呈现的各个附图中示出的连接线或连接器旨在表示各个元件之间的示例性功能关系和/或物理或逻辑耦合。在实际设备中可以存在许多替代或附加的功能关系,物理连接或逻辑连接。此外,除非该元件被具体描述为“必需的”或“关键的”,否则没有项目或组件对于本文所公开的实施例的实践是必需的。
本文中使用诸如但不限于约,基本上,一般等的术语来指示不需要且不需要指定其精确值或范围。如本文所用,上文讨论的术语将具有本领域普通技术人员的现成且即时的含义。
此外,在此使用诸如上,下,顶部,底部,侧部,端部,前部,后部等的术语是参考当前考虑或示出的取向来使用的。如果考虑它们相对于另一个取向,则应当理解,必须相应地修改这些术语。
此外,在本说明书和所附权利要求书中,单数形式“一”,“一个”和“该”不排除复数引用,除非上下文另外清楚地指出。此外,除非上下文另有明确规定,否则诸如“和”,“或”和“和”和/或“的结合是包含性的。例如,“A和/或B”包括单独的A、单独的B和具有B的A。
尽管这里已经描述了某些示例方法,设备和制品,但是本专利的覆盖范围不限于此。应当理解,这里使用的术语是为了描述特定方面的目的,而不是为了限制。相反,本专利覆盖了完全落入本专利权利要求范围内的所有方法,装置和制品。
Claims (20)
1.一种使用进程间通信预启动应用的方法,其特征在于,所述方法包括:
执行第一应用作为计算设备的操作系统的前台进程;
由所述第一应用在所述计算设备的显示器上显示内容,所述内容与可由第二应用执行的动作相关联;和
在针对显示在所述显示器上的所述内容采取的用户动作之前,由所述第一应用向所述第二应用的初始化应用编程接口(API)发送初始化请求,
所述初始化请求被配置为使所述第二应用被启动作为所述计算设备的所述操作系统的后台进程。
2.如权利要求1所述的方法,其特征在于,还包括:
响应于所述内容未显示在所述显示器上,由所述第一应用向所述第二应用的初始化API发送终止请求,所述终止请求被配置为使得执行所述第二应用的所述后台进程被终止。
3.如权利要求1所述的方法,其特征在于,还包括:
响应于定时器到期,由所述第一应用向所述第二应用的所述初始化API发送终止请求,所述终止请求被配置为使得执行所述第二应用的所述后台进程被终止。
4.如权利要求1所述的方法,其特征在于,所述初始化请求被配置成使得在所述第一应用和所述第二应用之间建立进程间通信连接,以使所述第一应用和所述第二应用能够彼此通信。
5.如权利要求4所述的方法,其特征在于,还包括:
响应于所述内容显示未在所述显示器上或者响应于定时器到期,由所述第一应用向所述第二应用的所述初始化API发送终止请求,所述终止请求被配置为终止所述进程间通信连接。
6.如权利要求1所述的方法,其特征在于,还包括:
所述第二应用基于至少一个信号确定是否向所述第二应用的所述初始化API发送所述初始化请求。
7.如权利要求6所述的方法,其特征在于,所述至少一个信号包括电池充电水平,其中响应于所述电池充电水平大于阈值水平而发送所述初始化请求。
8.如权利要求6所述的方法,其特征在于,所述至少一个信号包括可用存储器水平,其中响应于所述可用存储器水平大于阈值水平而发送所述初始化请求。
9.如权利要求6所述的方法,其特征在于,所述至少一个信号包括与由所述第一应用显示的所述内容相关联的点进率,其中响应于所述点进率大于阈值水平而发送所述初始化请求。
10.如权利要求6所述的方法,其特征在于,所述至少一个信号包括与由所述第一应用显示的所述内容相关联的预测转换速率,其中响应于所述预测转换速率大于阈值水平而发送所述初始化请求。
11.如权利要求6所述的方法,其特征在于,所述至少一个信号包括所述计算设备的网络条件,其中响应于所述网络条件大于阈值水平而发送所述初始化请求。
12.如权利要求1所述的方法,其特征在于,所述初始化请求包括至少一个预取参数,以使所述第一应用能够作为后台进程在网络上从服务器计算机预取内容。
13.一种存储可执行指令的非暂时性计算机可读介质,其特征在于,所述可执行指令在由至少一个处理器执行时使所述至少一个处理器:
执行第一应用作为计算设备的操作系统的前台进程;
由所述第一应用在所述计算设备的显示器上显示内容,所述内容与可由第二应用执行的动作相关联;和
在针对显示在所述显示器上的所述内容采取的用户动作之前,由所述第一应用向所述第二应用的初始化应用编程接口(API)发送初始化请求,
所述初始化请求被配置为使所述第二应用被启动作为所述计算设备的所述操作系统的后台进程。
14.如权利要求13所述的非暂时性计算机可读介质,其特征在于,所述可执行指令包括在由所述至少一个处理器执行时使所述至少一个处理器执行以下动作的指令:
获取一个或多个信号,所述一个或多个信号包括电池充电水平,可用存储器水平,点进率,预测转换速率或网络条件中的至少一个;
基于所述一个或多个信号确定预启动所述第二应用;和
基于所述一个或多个信号确定通过网络从服务器计算机预取内容,
其中,所述初始化请求包括至少一个预取参数,以使所述第二应用能够作为后台进程预取所述内容。
15.如权利要求13所述的非暂时性计算机可读介质,其特征在于,所述第二应用包括数字商店应用,并且所述第一应用包括非浏览器应用。
16.如权利要求13所述的非暂时性计算机可读介质,其特征在于,所述可执行指令包括在由所述至少一个处理器执行时使所述至少一个处理器执行以下动作的指令:
接收关于在所述计算设备的所述显示器上显示的所述内容采取用户动作的指示;和
在所述计算设备的所述显示器上加载前台进程中的第二应用。
17.如权利要求13所述的非暂时性计算机可读介质,其特征在于,所述初始化请求被配置成使得在所述第一应用和所述第二应用之间建立进程间通信连接,以使所述第一应用和所述第二应用能够彼此通信,其中所述可执行指令包括在由所述至少一个处理器执行时使所述至少一个处理器执行以下动作的指令:
响应于所述内容未显示在所述显示器上,或者响应于定时器到期,由所述第一应用向所述第二应用的所述初始化API发送终止请求,所述终止请求被配置为终止所述进程间通信连接,使得作为所述后台进程执行的所述第二应用被终止。
18.一种使用进程间通信预启动应用的装置,其特征在于,所述装置包括:
至少一个处理器;和
存储可执行指令的非暂时性计算机可读介质,所述可执行指令在由至少一个处理器执行时使所述至少一个处理器:
在针对显示在计算设备的显示器上的内容采取的用户动作之前,在第一应用的初始化应用编程接口(API)处接收来自第二应用的初始化请求,所述第二应用作为所述计算设备的操作系统的前台进程执行;
响应于所述初始化请求,在所述第一应用与所述第二应用之间建立进程间通信连接,以使所述第一应用与所述第二应用相互通信;和
响应于所述初始化请求,启动所述第一应用作为所述计算设备的所述操作系统的后台进程。
19.如权利要求18所述的装置,其特征在于,所述初始化请求包括至少一个预取参数,其中所述可执行指令包括在由所述至少一个处理器执行时使所述至少一个处理器执行以下动作的指令:
所述第一应用根据所述至少一个预取参数通过网络从服务器计算机检索内容;和
由所述第一应用将所述内容存储在所述计算设备的存储器设备中。
20.如权利要求18所述的装置,其特征在于,所述可执行指令包括在由所述至少一个处理器执行时使所述至少一个处理器执行以下动作的指令:
响应于所述内容未显示在所述显示器上或响应于定时器的到期,在所述第二应用的所述初始化API处接收来自所述第二应用的终止请求;和
终止所述进程间通信连接,使得作为所述后台进程执行的所述第二应用被终止。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2020/070513 WO2022055538A1 (en) | 2020-09-09 | 2020-09-09 | Pre-launching an application using interprocess communication |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116235145A true CN116235145A (zh) | 2023-06-06 |
Family
ID=72614057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080103874.3A Pending CN116235145A (zh) | 2020-09-09 | 2020-09-09 | 使用进程间通信预启动应用 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240012677A1 (zh) |
EP (1) | EP4182791A1 (zh) |
CN (1) | CN116235145A (zh) |
WO (1) | WO2022055538A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11785070B2 (en) * | 2021-10-22 | 2023-10-10 | Slcket, Inc. | Connected cloud applications |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105431822A (zh) * | 2013-06-12 | 2016-03-23 | 微软技术许可有限责任公司 | 应用的预测预启动 |
CN107491296A (zh) * | 2016-06-12 | 2017-12-19 | 苹果公司 | 与一个或多个扩展应用程序对接的消息应用程序 |
CN108139852A (zh) * | 2015-10-07 | 2018-06-08 | 谷歌有限责任公司 | 在非浏览器应用中集成内容 |
CN108140037A (zh) * | 2015-11-19 | 2018-06-08 | 谷歌有限责任公司 | 在后台预先实例化本原应用 |
-
2020
- 2020-09-09 WO PCT/US2020/070513 patent/WO2022055538A1/en active Application Filing
- 2020-09-09 US US18/041,751 patent/US20240012677A1/en active Pending
- 2020-09-09 EP EP20776058.8A patent/EP4182791A1/en active Pending
- 2020-09-09 CN CN202080103874.3A patent/CN116235145A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105431822A (zh) * | 2013-06-12 | 2016-03-23 | 微软技术许可有限责任公司 | 应用的预测预启动 |
CN108139852A (zh) * | 2015-10-07 | 2018-06-08 | 谷歌有限责任公司 | 在非浏览器应用中集成内容 |
CN108140037A (zh) * | 2015-11-19 | 2018-06-08 | 谷歌有限责任公司 | 在后台预先实例化本原应用 |
CN107491296A (zh) * | 2016-06-12 | 2017-12-19 | 苹果公司 | 与一个或多个扩展应用程序对接的消息应用程序 |
Also Published As
Publication number | Publication date |
---|---|
EP4182791A1 (en) | 2023-05-24 |
US20240012677A1 (en) | 2024-01-11 |
WO2022055538A1 (en) | 2022-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2013205163B2 (en) | Adaptive process importance | |
US10057415B2 (en) | Method and apparatus for remote control and updating of wireless mobile devices | |
US9380093B2 (en) | Mobile device application streaming | |
CN109165050B (zh) | 程序的运行方法、装置、计算设备以及存储介质 | |
US20060223504A1 (en) | Efficient server polling system and method | |
CN107656768B (zh) | 控制页面跳转的方法及其系统 | |
US20090215504A1 (en) | Content delivery system and method for a mobile communication device | |
JP2018538597A (ja) | アプリケーションコンテナを使用するコードおよび従属データの送達の管理 | |
US10581993B2 (en) | Method for forwarding traffic in application on mobile intelligent terminal | |
CN102075367B (zh) | 控制补丁包下载的方法、系统、客户端及服务器 | |
WO2019127954A1 (zh) | 一种网络性能提升的方法及设备 | |
CN111580882A (zh) | 应用程序启动方法、装置、计算机系统和介质 | |
CN116235145A (zh) | 使用进程间通信预启动应用 | |
CN108370500B (zh) | 无线装置的优化设置 | |
CN112269586A (zh) | 应用升级方法、装置、存储介质及电子设备 | |
CN103631621A (zh) | 一种信息提示方法及装置 | |
EP2234012B1 (en) | Information-processing apparatus and program | |
US8745257B1 (en) | Methods and apparatus for rendering video advertising on a mobile device | |
KR20030068761A (ko) | 무선 다중 데이터 처리 방법 및 시스템 | |
KR100839060B1 (ko) | 휴대폰에서의 화면처리 방법 | |
JP2011164677A (ja) | 通信制御装置及びプログラム | |
CN114489702B (zh) | 安装操作系统的方法、装置、介质以及电子设备 | |
US20230396695A1 (en) | App-Independent Resource Downloads | |
KR100839058B1 (ko) | 무선 다중 통신을 위한 휴대폰 | |
KR20070026771A (ko) | 휴대폰에서의 화면처리 방법 |
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 |