Cross-environment communication using application space API
First Claim
1. A method comprising:
- opening a first instance of a first application within a first operating system running on a mobile computing device;
determining, the processor, that the first application is in a first application state;
detecting, the processor, a docking event of the mobile computing device with a secondary terminal environment;
opening a second application within a second operating system running on the mobile computing device, the second application also executing the first instance simultaneously with the first application, wherein the first and second applications are of a specific category of application, wherein the first application is a mobile application and the second application is a desktop application;
instantiating, by the first application running within a within the first operating system, a method of an application programming interface of the first operating system, the method implementing a sink for a predetermined remote communication request;
requesting, by the method of the application programming interface, an extended inter-process communication interface;
instantiating, by the first operating system, the extended inter-process communication interface;
registering, by the first operating system, the extended inter-process communication interface to receive the predetermined remote communication request directed to the first application;
receiving, by the first operating system, a request to instantiate a proxy for the predetermined remote communication request within a in the second application running within the second operating system, the first and second operating systems running concurrently on a shared kernel;
passing, by the first operating system, a reference to the extended inter-process communication interface to the second application, wherein the proxy in the second application is linked to the sink of the first application;
receiving, by the processor, an input to the second application;
processing, by the sink of the first application, a request from the proxy of the second application; and
determining, by the processor, that the first application is in a second application state.
3 Assignments
0 Petitions
Accused Products
Abstract
A mobile computing device with a mobile operating system and desktop operating system running concurrently and independently on a shared kernel without virtualization. The mobile operating system provides a mobile user experience while the desktop operating system provides a full desktop user experience when the mobile computing device is docked to a secondary terminal environment. Applications of the desktop operating system communicate with applications and services of the mobile operating system through a cross-environment communication framework. The cross-environment communication framework may include application programming interfaces through which categories of applications can communicate across a multiple operating system computing environment through category-specific remote communication calls. The mobile computing device may be a smartphone running the Android mobile operating system and a full desktop Linux distribution on a modified Android kernel.
238 Citations
21 Claims
-
1. A method comprising:
-
opening a first instance of a first application within a first operating system running on a mobile computing device; determining, the processor, that the first application is in a first application state; detecting, the processor, a docking event of the mobile computing device with a secondary terminal environment; opening a second application within a second operating system running on the mobile computing device, the second application also executing the first instance simultaneously with the first application, wherein the first and second applications are of a specific category of application, wherein the first application is a mobile application and the second application is a desktop application; instantiating, by the first application running within a within the first operating system, a method of an application programming interface of the first operating system, the method implementing a sink for a predetermined remote communication request; requesting, by the method of the application programming interface, an extended inter-process communication interface; instantiating, by the first operating system, the extended inter-process communication interface; registering, by the first operating system, the extended inter-process communication interface to receive the predetermined remote communication request directed to the first application; receiving, by the first operating system, a request to instantiate a proxy for the predetermined remote communication request within a in the second application running within the second operating system, the first and second operating systems running concurrently on a shared kernel; passing, by the first operating system, a reference to the extended inter-process communication interface to the second application, wherein the proxy in the second application is linked to the sink of the first application; receiving, by the processor, an input to the second application; processing, by the sink of the first application, a request from the proxy of the second application; and determining, by the processor, that the first application is in a second application state. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A mobile computing device, comprising:
-
a memory; a processor in communication with the memory, the processor operable to;
execute a first operating system and a second operating system, the first and second operating systems running concurrently on a shared kernel;open a first instance of a first application within the first operating system;
determine that the first application is in a first application state;
detect a docking event of the mobile computing device with a secondary terminal environment;
open a second application within the second operating system, the second application also executing the first instance simultaneously with the first application, wherein the first and second applications are of a specific category of application, wherein the first application is a mobile application and the second application is a desktop application;instantiate, by the first application, a sink for a predetermined remote communication request; instantiate, by the second application a proxy for the predetermined remote communication request; and establish a remote communication service of the first operating system, the remote communication service establishing a connection between the proxy and the sink through an extended inter-process communication interface; receive an input to the second application; process, by the sink of the first application, a request from the proxy of the second application; and determine, by the processor, that the first application is in a second application state. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer readable storage medium having stored thereon instructions that cause a processor to execute a method, the method comprising the steps of:
-
opening a first instance of a first application within a first operating system running on a mobile computing device; determining, by the processor, that the first application is in a first application state; detecting, by the processor, a docking event of the mobile computing device with a secondary terminal environment; opening a second application within a second operating system running on the mobile computing device, the second application also executing the first instance simultaneously with the first application, wherein the first and second applications are of a specific category of application, wherein the first application is a mobile application and the second application is a desktop application; instantiating, by the first application running within a within the first operating system, a method of an application programming interface of the first operating system, the method implementing a sink for a predetermined remote communication request; requesting, by the method of the application programming interface, an extended inter-process communication interface; instantiating, by the first operating system, the extended inter-process communication interface; registering, by the first operating system, the extended inter-process communication interface to receive the predetermined remote communication request directed to the first application; receiving, by the first operating system, a request to instantiate a proxy for the predetermined remote communication request in the second application running within a within the second operating system, the first and second operating systems running concurrently on a shared kernel; passing, by the first operating system, a reference to the extended inter-process communication interface to the second application, application, wherein the proxy in the second application is linked to the sink of the first application; receiving, by the processor, an input to the second application; processing, by the sink of the first application, a request from the proxy of the second application; and determining, by the processor, that the first application is in a second application state. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification