IP Library Granted Patent US 10,303,820
Granted Patent B2
US 10,303,820 · App. 15/277,036 · Granted May 28, 2019

Selective simulation of virtualized hardware inputs

Inventors: Keun Soo Yim (San Jose, CA); Iliyan Malchev (San Francisco, CA)
Assignee: GOOGLE LLC
G06F17/5009G06F9/452G06F9/45533G06F9/45558G06F2009/45579
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,303,820
App. No.
15/277,036
Granted
May 28, 2019
Kind
B2
Abstract

Methods and apparatus are described herein emulating, by one or more servers on behalf of a mobile computing device, a cloud-based virtual machine. The cloud-based virtual machine may include a virtualized hardware component that provides, as virtual hardware input for a software application executing on the cloud-based virtual machine, either “genuine” virtual hardware input or “simulated” virtual hardware input. Genuine virtual hardware input may be based on an actual hardware signal received from a hardware component of the mobile computing device that corresponds to the virtualized hardware component. Simulated virtual hardware input may be generated independently of any hardware signal associated with the hardware component. Output of the software application may be interactively streamed to the mobile computing device.

Claims (24)

1. A method comprising:

operating, by one or more servers forming a cloud infrastructure, a virtual machine to emulate a mobile device;

executing, by the virtual machine, a cloud-based software application, wherein the cloud-based software application is configured to receive a hardware signal of a first type from a first hardware component;

interactively streaming, by the virtual machine, output of the cloud-based software application to a remote mobile device in communication with the one or more servers over one or more communication networks, wherein a user of the given remote mobile device interacts with the cloud-based software application using one or more hardware components of the remote mobile device, and wherein the remote mobile device is unable to provide a hardware signal of the first type but includes a second hardware component that generates a hardware signal of a second type that is different than the hardware signal of the first type; and

providing, by a virtualized hardware component emulated by the virtual machine, simulated hardware input for the cloud-based software application, wherein the simulated hardware input simulates a hardware signal of the first type and is generated by the virtualized hardware component based on the hardware signal of the second type received from the second hardware component of the remote mobile device.

2. The method of claim 1 , wherein the providing is performed automatically based on a determination that the remote mobile device is unable to provide a hardware signal of the first type.

3. The method of claim 1 , wherein the providing is performed automatically based on a determination that one or more attributes of the remote mobile device satisfy a criteria.

4. The method of claim 3 , wherein the one or more attributes of the remote mobile device include battery power of the remote mobile device.

5. The method of claim 3 , wherein the one or more attributes of the remote mobile device include one or more attributes of a wireless signal used by the remote mobile device.

6. The method of claim 1 , wherein the virtualized hardware component comprises a position coordinate sensor, and the second hardware component of the remote mobile device comprises a cellular communication component.

7. A system comprising one or more processors and memory operably coupled with the one or more processors, wherein the memory stores instructions that, in response to execution of the instructions by the one or more processors, cause the one or more processors to:

operate a virtual machine on a cloud infrastructure to emulate a mobile device;

execute, by the virtual machine, a cloud-based software application, wherein the cloud-based software application is configured to receive a hardware signal of a first type from a first hardware component;

interactively stream, by the virtual machine, output of the cloud-based software application to a remote mobile device in communication with the one or more processors over one or more communication networks, wherein a user of the given remote mobile device interacts with the cloud-based software application using one or more hardware components of the remote mobile device, and wherein the remote mobile device is unable to provide a hardware signal of the first type but includes a second hardware component that generates a hardware signal of a second type that is different than the hardware signal of the first type; and

provide, by a virtualized hardware component emulated by the virtual machine, simulated hardware input for the cloud-based software application, wherein the simulated hardware input simulates a hardware signal of the first type and is generated by the virtualized hardware component based on the hardware signal of the second type received from the second hardware component of the remote mobile device.

8. The system of claim 7 , wherein the providing is performed automatically based on a determination that the remote mobile device is unable to provide a hardware signal of the first type.

9. The system of claim 7 , wherein the providing is performed automatically based on a determination that one or more attributes of the remote mobile device satisfy a criteria.

10. The system of claim 9 , wherein the one or more attributes of the remote mobile device include battery power of the remote mobile device.

11. The system of claim 9 , wherein the one or more attributes of the remote mobile device include one or more attributes of a wireless signal used by the remote mobile device.

12. At least one non-transitory computer-readable medium comprising instructions that, in response to execution of the instructions by one or more processors, cause the one or more processors to perform the following operations

operating a virtual machine on a cloud-infrastructure to emulate a mobile device;

executing, by the virtual machine, a cloud-based software application, wherein the cloud-based software application is configured to receive a hardware signal of a first type from a first hardware component;

interactively streaming, by the virtual machine, output of the cloud-based software application to a remote mobile device in communication with the one or more processors over one or more communication networks, wherein a user of the given remote mobile device interacts with the cloud-based software application using one or more hardware components of the remote mobile device, and wherein the remote mobile device is unable to provide a hardware signal of the first type but includes a second hardware component that generates a hardware signal of a second type that is different than the hardware signal of the first type; and

providing, by a virtualized hardware component emulated by the virtual machine, simulated hardware input for the cloud-based software application, wherein the simulated hardware input simulates a hardware signal of the first type and is generated by the virtualized hardware component based on the hardware signal of the second type received from the second hardware component of the remote mobile device.

Assignments (2)
CHANGE OF NAME Recorded Oct 20, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044567/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2016
From: YIM, KEUN SOO; MALCHEV, ILIYAN
To: GOOGLE INC.
Reel/Frame 039864/0666 →
Continuity (1)
Related Publication 20180089347A1 · Mar 29, 2018