Sub-process Instance Management in Single-Process Android Apps
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The Android operating system's one-to-one relationship between an application and a process limits the execution of multiple instances of the same application on a user device, making it difficult for developers to achieve certain functionalities, such as simultaneous log-ins to different accounts, and complicates the use of global or static variables.
Innovation Solution
Implementing class inheritance and instance management to generate sub-processes within a single process, allowing multiple instances of a client application to run concurrently, with each instance maintaining its state and sharing global variables, while the user interface enables selection and toggling between instances.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Stability of the object's composition
If a one-to-one relationship between application and process is maintained, then process stability and simplicity are improved, but the ability to run multiple instances of the same application is lost
Solution Approach 1:
The patent segments the application execution into multiple sub-processes within a single process context. Each sub-process represents an independent instance of the application with its own execution thread, allowing multiple instances to run concurrently while sharing the parent process's resources and global variables.
Solution Approach 2:
The patent implements a nested process structure where sub-processes are contained within the parent process. This nested architecture allows instances to be hierarchical, with each sub-process nested within the main application process, enabling multi-instance functionality while maintaining process stability through the parent process's control.
2Adaptability or versatility
If separate process installations are created for multiple application instances, then multi-instance functionality is achieved, but device storage and installation complexity increase
Solution Approach 1:
The patent merges multiple application instances into a single process installation. Instead of requiring separate APK installations for each instance, the system combines multiple instances within one process, sharing common resources such as the Dalvik virtual machine, class libraries, and global variables, thereby reducing storage requirements while maintaining multi-instance functionality.
Solution Approach 2:
The patent makes the single process installation universal by enabling it to host multiple instances simultaneously. The process is designed to be multi-functional, capable of managing different instances of the same application with distinct states and data, eliminating the need for separate installations and making the single installation serve multiple purposes.
3Device complexity
If global or static variables are used in a one-to-one application-process model, then variable simplicity is maintained, but accessibility across multiple instances becomes difficult
Solution Approach 1:
The patent introduces the process-level environment as an intermediary that enables shared access to global and static variables across multiple instances. The sub-processes communicate through the parent process's variable space, allowing instances to access and modify shared variables without direct inter-instance communication mechanisms, thus maintaining simplicity while enabling accessibility.
4Use of energy by moving object
If multiple application instances share a single process, then resource utilization efficiency is improved, but instance isolation and state management become complex
Solution Approach 1:
The patent applies local quality by giving each sub-process its own localized execution context and state space while maintaining access to shared process resources. Each instance has its own thread-local variables and execution state, ensuring isolation where needed, while sharing global variables and resources at the process level, achieving efficient resource utilization with managed complexity.
Data Source
AI summary
Various examples for providing multiple instances of a client application in operating systems that limit execution of the client application to a single process are disclosed. A client device can include an operating system natively configured to generate a single process for an execution of the client application on the client device. A client application can be configured to, in the single process, generate sub-processes for execution of separate instances of the client application. The client application can include at least one user interface that permits creation of, termination of, or toggling between various instances of the client application.


