IP Library › Granted Patent US 12,737,215
Granted Patent B2
US 12,737,215 · App. 18/041,751 · Granted Sep 15, 2026

Pre-launching an application using interprocess communication

Inventors: Joe Boderck (Sunnyvale, CA); Satvik Chauhan (Campbell, CA); Rajat Kansal (Santa Clara, CA)
Assignee: GOOGLE LLC
G06F9/4843G06F9/4837G06F9/54
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,737,215
App. No.
18/041,751
Granted
Sep 15, 2026
Kind
B2
Abstract

According to an aspect, a method includes executing a first application as a foreground process of an operating system of a computing device, and displaying, by the first application, content on a display of the computing device, where the content is associated with an action executable by a second application. The method includes transmitting, by the first application, an initialization request to an initialization application programming interface (API) of the second application in advance of a user action taken with respect to the content displayed on the display, where the initialization request is configured to cause the second application to be launched as a background process of the operating system of the computing device.

Claims (45)

1 . A method for pre-launching an application using interprocess communication, the method comprising:

executing a first application as a foreground process of an operating system of a computing device;

displaying, by the first application, in a user interface of the first application, content associated with an action executable by a second application;

transmitting, by the first application, an initialization request to an initialization application programming interface of the second application in advance of a user action taken with respect to the content displayed in the user interface, the initialization request configured to cause the second application to be launched as a background process of the operating system of the computing device;

establishing, by the first application, an interprocess communication connection with the second application, wherein the interprocess communication connection causes the operating system to assign a memory priority to the background process that corresponds to a memory priority of the foreground process, wherein the memory priority assigned to the background process maintains the background process in an active state throughout a duration of the interprocess communication connection; and

in response to the content being removed from the user interface, transmitting, by the first application, a termination request to the initialization application programming interface of the second application via the interprocess communication connection, the termination request configured to cause the background process that is executing the second application to be terminated.

2 . The method of claim 1 , wherein the initialization request is configured to cause the interprocess communication connection to be established between the first application and the second application to enable the first application and the second application to communicate.

3 . The method of claim 2 , further comprising:

terminating the interprocess communication connection.

4 . The method of claim 1 , further comprising:

determining, by the first application, whether or not to transmit the initialization request to the initialization application programming interface of the second application based on at least one signal;

wherein the at least one signal represents a change in a visibility state of the content within the user interface of the first application, and the determination to transmit the initialization request is made in response to the content becoming visible.

5 . The method of claim 4 , wherein the at least one signal includes a click-through rate associated with the content displayed by the first application, wherein the initialization request is transmitted in response to the click-through rate being greater than a threshold level.

6 . The method of claim 4 , wherein the at least one signal includes a predicted conversion rate associated with the content displayed by the first application, wherein the initialization request is transmitted in response to the predicted conversion rate being greater than a threshold level.

7 . The method of claim 4 , wherein the at least one signal includes a network condition of the computing device, wherein the initialization request is transmitted in response to the network condition being greater than a threshold level.

8 . The method of claim 1 , wherein the background process is a first background process and the initialization request includes at least one prefetching parameter to enable the first application to prefetch content over a network from a server computer as a second background process.

9 . The method of claim 1 , wherein the content is removed from the user interface in response to a user input received at the user interface.

10 . The method of claim 1 , wherein the transmitting of the initialization request is performed in response to the displaying of the content.

11 . The method of claim 1 , further comprising:

in response to the transmitting of the initialization request, receiving, by the first application from the second application, a service instance for invoking one or more methods defined by the initialization application programming interface;

wherein the first application transmits the termination request to the second application via the service instance to cause the background process to be terminated without intervention from a system-level process manager.

12 . The method of claim 1 , wherein the launching of the second application as a background process includes allocating new memory for the background process, loading application code for the second application into the new memory, and scheduling the background process for central processing unit time.

13 . The method of claim 1 , wherein the termination request is transmitted to the initialization application programming interface via the interprocess communication connection established between the first application and the second application.

14 . The method of claim 1 , wherein the first application manages a lifecycle of the background process by transmitting the initialization request in response to the displaying of the content and transmitting the termination request in response to the content being removed from the user interface.

15 . A non-transitory computer-readable medium storing executable instructions that when executed by at least one processor cause the at least one processor to execute operations, the operations comprising:

executing a first application as a foreground process of an operating system of a computing device;

displaying, by the first application, in a user interface of the first application, content associated with an action executable by a second application; and

transmitting, by the first application, an initialization request to an initialization application programming interface of the second application in advance of a user action taken with respect to the content displayed in the user interface,

the initialization request configured to:

cause the operating system to launch the second application as a background process,

establish an interprocess communication connection with the second application, wherein the interprocess communication connection causes the operating system to assign a memory priority to the background process that corresponds to a memory priority of the foreground process, wherein the memory priority assigned to the background process maintains the background process in an active state throughout a duration of the interprocess communication connection, and

in response to the content being removed from the user interface, transmit, by the first application, a termination request to the initialization application programming interface of the second application via the interprocess communication connection, the termination request configured to cause the background process that is executing the second application to be terminated.

16 . The non-transitory computer-readable medium of claim 15 , wherein the operations further comprise:

in response to the transmitting of the initialization request, rece 1 vmg, by the first application from the second application, a service instance for invoking one or more methods defined by the initialization application programming interface.

17 . An apparatus for pre-launching an application using interprocess communication, the apparatus comprising:

at least one processor; and

a non-transitory computer-readable medium storing executable instructions that when executed by the at least one processor cause the at least one processor to:

receive, at an initialization application programming interface of a first application, an initialization request from a second application that is executing as a foreground process of an operating system of a computing device in advance of a user action taken with respect to content displayed in a user interface of the second application;

establish, by the second application, an interprocess communication connection with the first application, wherein the interprocess communication connection causes the operating system to assign a memory priority to a background process executing the first application that corresponds to a memory priority of the foreground process for managing hardware resources of the computing device, wherein the memory priority assigned to the background process maintains the background process in an active state throughout a duration of the interprocess communication connection;

launch, in response to the initialization request, the first application as the background process of the operating system of the computing device; and

in response to the content being removed from the user interface, receive, at the initialization application programming interface of the first application, a termination request from the second application via the interprocess communication connection, the termination request configured to cause the background process that is executing the first application to be terminated.

18 . The apparatus of claim 17 , wherein the initialization request includes at least one prefetching parameter, the initialization request is configured to cause the first application to prefetch content over a network from a server computer as a second background process, and the executable instructions include instructions that when executed by the at least one processor cause the at least one processor to:

retrieve, by the first application, content over a network from a server computer according to the at least one prefetching parameter; and

store, by the first application, the content in a memory device of the computing device.

19 . The apparatus of claim 17 , wherein the executable instructions that when executed by the at least one processor cause the at least one processor to terminate the background process that is executing the first application further cause the at least one processor to terminate the interprocess communication connection.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 27, 2023
From: BODERCK, JOE; CHAUHAN, SATVIK; KANSAL, RAJAT
To: GOOGLE LLC
Reel/Frame 063104/0503 →
Continuity (1)
Related Publication 20240012677A1 · Jan 11, 2024
References Cited (24)
US 8578394B2 · Srour · 2013 [cited by examiner]
US 8949712B1 · Days · 2015 [cited by examiner]
US 10146842B2 · Yeom et al. · 2018 [cited by applicant]
US 10505872B2 · Peterson et al. · 2019 [cited by applicant]
US 10613713B2 · Ozuysal · 2020 [cited by applicant]
US 11995393B2 · Ozuysal · 2024 [cited by applicant]
US 20030218765A1 · Ohishi · 2003 [cited by examiner]
US 20040030882A1 · Forman · 2004 [cited by applicant]
US 20120042317A1 · Nguyen et al. · 2012 [cited by applicant]
US 20120324481A1 · Xia et al. · 2012 [cited by applicant]
US 20140047173A1 · Nguyen et al. · 2014 [cited by applicant]
US 20140372356A1 · Bilal et al. · 2014 [cited by applicant]
US 20140373032A1 · Merry · 2014 [cited by examiner]
US 20150347748A1 · Krstic · 2015 [cited by examiner]
US 20170147658A1 · Yeom et al. · 2017 [cited by applicant]
US 20210182099A1 · Ochoa · 2021 [cited by examiner]
CN 105431822A · 2016 [cited by applicant]
CN 107491296A · 2017 [cited by applicant]
CN 108139852A · 2018 [cited by applicant]
CN 108140037A · 2018 [cited by applicant]
CN 106406966B · 2020 [cited by applicant]
EP 3008616A1 · 2016 [cited by applicant]
EP 3255909A1 · 2017 [cited by applicant]
International Search Report and Written Opinion for PCT Application No. PCT/US2020/070513, mailed on May 10, 2021, 14 pages. [cited by applicant]