Delegating Android Context to Client Devices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional Android-based mobile devices run the entire Android stack locally, making it challenging to transition to a client-server model where apps rely on client context for behavior, requiring delegation of Android functionality from the server to the client based on native client capabilities and resources.
Innovation Solution
The Android system is partitioned into a server module running a modified Android Operating System and a Client Delegate application on the client device, allowing selective delegation of functions and context information over a network, enabling execution of Android apps on a server while maintaining compatibility with non-Android operating systems.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the entire Android stack is run locally on a mobile device, then the app can access all Android functionality and context directly, but the device must support Android operating system and cannot run on diverse platforms
Solution Approach 1:
The Android system is segmented into two parts: the Android stack (application framework, runtime, native libraries) runs on the server, while a lightweight client application on the user device provides the hardware interface layer. This segmentation allows the Android app to run on any device with a web browser, eliminating the need for Android OS on the client device while maintaining full Android functionality.
Solution Approach 2:
A client application acts as an intermediary between the user device and the server-based Android stack. The client captures input events from device sensors and interfaces, transmits them to the server, and receives rendered output to display locally. This intermediary enables platform-agnostic access to Android applications while preserving the original Android runtime environment on the server.
2Productivity
If Android apps are migrated to a client-server model, then cloud computing capabilities are enabled, but the server must delegate Android functionality to the client based on client capabilities
Solution Approach 1:
The client application automatically detects the capabilities and resources available on the user device (sensors, interfaces, processing power) and autonomously determines which Android functionality to delegate locally. This self-service approach eliminates the need for manual configuration or complex server-side capability assessment, streamlining the cloud computing deployment.
Solution Approach 2:
The system dynamically adjusts the boundary between server-based and client-based Android functionality based on real-time assessment of client capabilities. The delegation of Android framework components, sensor management, and rendering responsibilities is flexible and adaptive, allowing the system to optimize performance and resource utilization according to the specific client device characteristics.
3Adaptability or versatility
If Android functionality is delegated to the client, then apps can run on non-Android devices, but the server must manage context delegation based on client capabilities and resources
Solution Approach 1:
The client application is designed as a universal interface that can operate on any device platform (mobile phones, tablets, PCs, wearables) regardless of the underlying operating system. It provides a standardized method for capturing input events, managing delegated Android functionality, and rendering output, making the Android app ecosystem accessible to all device types through a single client implementation.
Solution Approach 2:
The client application creates a virtual representation of the Android hardware interface layer on the user device. Instead of requiring actual Android hardware drivers, the client synthesizes the necessary Android context and event streams from the device's native inputs, allowing the server-based Android stack to operate as if it were running on native Android hardware while actually running on any platform.
Data Source
AI summary
The configuration describes the methods to transform the execution of an Android app running locally on an Android device to a client-server model of execution where the app executes on a modified version of Android on a server. Unlike a traditional client-server model where the application executes within the server environment, the Android app on the server requires delegation of some functionality to client environment. The proposed configuration also describes the methods for delegating the execution of selected components of Android stack to the Client Device. The client may be a browser or any web connected device.


