IP Library Granted Patent US 10,872,347
Granted Patent B2
US 10,872,347 · App. 15/563,198 · Granted Dec 22, 2020

Transmitting application data for on-device demos

Inventors: Bilson Jake Libres Campana (Mountain View, CA); Zile Wei (Freemont, CA); Hrishikesh Balkrishna Aradhye (Santa Clara, CA)
Assignee: Google LLC
G06Q30/02G06F9/48G06F11/34G06F3/0482H04W4/60
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 10,872,347
App. No.
15/563,198
Granted
Dec 22, 2020
Kind
B2
Abstract

A system and method to profile an application use and identify data used for application execution, map the identified data for application execution to a virtual memory associated with application execution, including execution beginning at specific times, states or stages of the application, and transmit the virtual memory to an end user wishing to demonstrate the application on an end user device. The end user device can emulate the application from any desired application start time, state or stage using data at the end user device identified by the virtual memory.

Claims (55)

1. A method comprising:

capturing, by an application provider, one or more memory snapshots of a profiling user device memory state during a time duration, wherein capturing the one or more memory snapshots occurs while the profiling user device is executing an application installed on the profiling user device and after the profiling user device has begun executing the application;

identifying, by the application provider and based on the one or more memory snapshots, data used for executing the application during the time duration;

mapping, by the application provider, the data for executing the application during the time duration to a virtual memory;

receiving, by the application provider and from an end user device, a request for a demonstration of the application, wherein the application is not installed at the end user device; and

responsive to receiving the request for the demonstration of the application, transmitting, by the application provider and to the end user device, the virtual memory to enable the end user device to emulate the application as executed during the time duration.

2. The method of claim 1 , further comprising:

dividing the virtual memory into packets; and

sequentially communicating the packets to the end user device.

3. The method of claim 1 ,

wherein the request for the demonstration of the application specifies one or more of a desired application start time, a desired application start state, or a desired application start stage, the method further comprising:

in response to receiving the request for the demonstration of the application, transmitting, to the end user device, the virtual memory corresponding to the request.

4. The method of claim 1 , wherein the one or more memory snapshots include memory input and output necessary to execute the application for the time duration.

5. The method of claim 1 , wherein an amount of the data for executing the application during the time duration is less than an amount of data required for executing the application in its entirety.

6. The method of claim 1 , wherein the demonstration of the application is performed on the end user device using an emulator.

7. The method of claim 1 , wherein the demonstration of the application ends when the demonstration attempts to access data that is not mapped to the virtual memory.

8. A system, comprising:

a profiling user device, comprising:

a network interface;

one or more processors; and

a memory that stores instructions executable by the one or more processors to:

capture one or more snapshots of a portion of the memory over a period of time and during execution of an application, the portion of the memory including data required for the execution of the application during the period of time; and

transmit, via the network interface and to an application provider, the one or more snapshots;

the application provider, comprising:

a network interface that receives the one or more snapshots from the profiling user device;

one or more processors; and

a memory that stores instructions executable by the one or more processors to:

identify, based on the one or more memory snapshots, data used for executing the application during the period of time; and

map the data used for executing the application during the period of time to a virtual memory; and

an end user device, comprising:

a network interface;

one or more processors; and

a memory storing instructions executable by the one or more processors to send, via the network interface of the end user device and to the application provider, a request for a demonstration of the application, wherein the application is not installed at the end user device,

wherein the instructions stored by the memory of the application provider are further executable by the one or more processors of the application provider to, responsive to receiving the request for the demonstration of the application, transmit, via the network interface of the application provider and to the end user device, the virtual memory to enable the end user device to emulate the application as executed during the period of time.

9. The system of claim 8 , wherein the one or more memory snapshots include memory input and output necessary to execute the application during the period of time.

10. The system of claim 8 , wherein an amount of the data for executing the application during the period of time is less than an amount of data required for executing the application in its entirety.

11. The system of claim 8 , wherein the request for the demonstration of the application specifies a time point, a state, or a stage of the application to start the demonstration.

12. The system of claim 8 , wherein the instructions cause the one or more processors of the application provider to:

divide the virtual memory into packets; and

sequentially communicate the packets to the end user device.

13. The system of claim 8 , wherein the end user device includes an emulator to execute the demonstration of the application from the virtual memory.

14. The system of claim 8 , wherein the demonstration of the application ends when the demonstration of the application attempts to access data that is not mapped to the virtual memory.

15. A non-transitory computer-readable medium encoded with instructions that, when executed, cause one or more processors of a computing system to:

capture one or more memory snapshots of a profiling user device memory state during a time duration, wherein capturing the one or more memory snapshots occurs while the profiling user device is executing an application installed on the profiling user device and after the profiling user device has begun executing the application;

identify, based on the one or more memory snapshots, data used for executing the application during the time duration;

map the data for executing the application during the time duration to a virtual memory;

receive, from an end user device and to an application provider, a request for a demonstration of the application, wherein the application is not installed at the end user device; and

responsive to receiving the request for the demonstration of the application, transmit, from the application provider and to the end user device, the virtual memory to enable the end user device to emulate the application as executed during the time duration.

16. The non-transitory computer-readable medium of claim 15 , wherein the one or more memory snapshots include memory input and output necessary to execute the application for the time duration.

17. The non-transitory computer-readable medium of claim 15 , wherein an amount of the data for executing the application during the time duration is less than an amount of data required for executing the application in its entirety.

18. The non-transitory computer-readable medium of claim 15 , wherein the request for the demonstration of the application specifies a time point, a state, or a stage of the application to start the demonstration.

19. The non-transitory computer-readable medium of claim 15 , wherein the instructions cause the one or more processors to:

divide the virtual memory into packets; and

sequentially communicate the packets to the end user device.

20. The non-transitory computer-readable medium of claim 15 , wherein the demonstration of the application ends when the demonstration of the application attempts to access data that is not mapped to the virtual memory.

Assignments (2)
CHANGE OF NAME Recorded Aug 12, 2020
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 053480/0194 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2017
From: CAMPANA, BILSON JAKE LIBRES; WEI, ZILE; ARADHYE, HRISHIKESH BALKRISHNA
To: GOOGLE INC.
Reel/Frame 043741/0869 →
Continuity (2)
Provisional Application 62186113 · Jun 29, 2015
Related Publication 20180089698A1 · Mar 29, 2018