Mobile Memory Management for Fast Application Launch
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Mobile devices face challenges in efficiently managing memory for multiple applications, leading to increased load times, battery drain, and stalled processes due to the need to constantly update and maintain active applications, which strains limited memory resources.
Innovation Solution
A memory management system that loads predetermined applications into memory based on available memory, generates snapshots for these applications in preview mode, and prioritizes which applications to keep active, allowing for quick launch and efficient memory reallocation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If all applications are kept active with constantly updated data for display, then user experience is improved with fresh application data, but memory usage increases and battery life is drained
Solution Approach 1:
The system performs preliminary actions by pre-loading applications into memory before they are actually needed. When an application is launched, it is already resident in memory with its data pre-fetched and prepared, eliminating the need to keep all applications constantly active and updated. This resolves the contradiction by preparing applications in advance only when necessary, rather than maintaining all applications in an active state continuously.
2Loss of time
If applications are pre-loaded into memory for fast access, then load time is reduced, but memory usage increases
Solution Approach 1:
The system applies local quality by making memory allocation dynamic and application-specific. Instead of uniformly pre-loading all applications or keeping fixed amounts of memory allocated, the system allocates memory to specific applications based on their individual needs, usage patterns, and priority levels. This allows fast access to frequently used applications while freeing memory for less critical ones, resolving the contradiction between load time and memory usage.
Solution Approach 2:
The system implements dynamics by continuously monitoring and adjusting memory allocation based on real-time conditions. Memory is dynamically assigned to applications as they are launched or predicted to be needed, and reallocated when no longer required. This dynamic approach allows the system to optimize both load time and memory usage by adapting to changing usage patterns rather than maintaining static memory allocation.
3Productivity
If multiple applications are loaded into memory simultaneously, then application availability is improved, but memory resources are strained and other processes stall
Solution Approach 1:
The system applies self-service by implementing automated memory management mechanisms that monitor memory usage, predict application needs, and allocate resources without manual intervention. The system automatically loads applications into memory based on usage patterns, keeps track of which applications are active or inactive, and manages memory reclamation when resources are needed. This self-managing approach improves application availability while preventing memory management complexity from becoming unmanageable.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Some embodiments can load one or more applications into working memory from persistent storage when permitted by a memory pressure level of a mobile device. Loading the applications into working memory enables the applications to be launched into the foreground quickly when the user indicates the desire to launch. Some embodiments may identify a set of applications that are designated for providing snapshots to be displayed when the mobile device is in a dock mode. Certain embodiments may determine a current memory pressure level. Some embodiments may load an application in the set of applications into working memory from a persistent storage responsive to determining that the memory pressure level is below a threshold. Certain embodiments may continue to load additional applications responsive to determining that the memory pressure level is below the threshold. After determining that the memory pressure level is above the threshold, some embodiments may reclaim memory.