Patent ID: 9674307
Date: 2017-06-06
CPC Classifications: G06F,H04L

Claim:
1. A method of executing a plurality of user software applications written for an Android operating system so that a plurality of user devices each operating with either an Android or a non-Android operating system can replicate the user software applications using inputs received from at least one of the plurality of user devices, the method comprising the steps of: providing at a server system that includes a plurality of servers, processors and memory, the plurality of user software applications, and a server version of the Android operating system that includes an Android kernel driver capable of receiving client context inputs, wherein the client context inputs include real data inputs available from each of the plurality of user devices and simulated data inputs required for each of the plurality of user devices and further include a master data type set, the master data type set including a first type of master data comprising keyboard data, touch data, location data, motion data and a second type of master data comprising a plurality of software elements, wherein the plurality of software elements relate to data provided by the at least one of the plurality of user devices and include at least certain ones of the real data inputs or the simulated data inputs, and wherein at least one of the software elements determines what portion of a particular user software application is to be delegated for execution at the at least one of the plurality of user devices instead of being executed at the server system; receiving, at the server system, a plurality of different requests to execute different ones of the plurality of user software applications, each different received request having a user device identifier associated therewith, such that each of the plurality of different user software applications is requested and which of the plurality of user devices made each different request is identified; receiving, at the server system, an identifier associated with each of the plurality of user devices; determining, at the server system, and based on the identifier, the client context inputs required for operation of each of the plurality of user software applications; executing each of the plurality of user software applications either on the server system using the server version of the Android operating system based upon the plurality of different received requests, or at the at least one of the plurality of user devices, the step of executing including the steps of: requesting using the server system, from each of the plurality of user devices, a plurality of client context inputs necessary to complete execution of each of the plurality of user software applications, wherein the client context inputs requested include various ones of the client context inputs required for operation of the plurality of user software applications and further include the first type of master data comprising the keyboard data, the touch data, the location data, and the motion data, some of which are real data and others of which are simulated data on the server system using the server version of the Android operating system; receiving, at the server system and for processing by the Android kernel driver, the various client context inputs necessary to complete execution of the plurality of user software applications on the server system using the server version of the Android operating system; generating, at the server system, output data that includes display data and audio data, rendered for perception at the user device with respect to each of the plurality of different user software applications, appropriate for perception of the user software applications at each of the plurality of user devices; based on the at least one of the software elements in the second type of master data, generating a command to delegate a portion of the particular user software application for execution at the at least one of the plurality of user devices; transmitting, from the server system, output data for reception by the user device for each of the plurality of different user software applications, such for the at least one of the plurality of user devices, output data received from the server system is configured to be combined with additional output data generated by the delegated portion of the particular user software application.