Dynamic Application Restart Using Target Lists for Android Memory Pressure
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing Android terminals repeatedly restart and kill important background applications due to insufficient memory, leading to poor user experience and system performance, especially when a whitelist approach is used but fails to dynamically adapt to memory needs.
Innovation Solution
An application start method that uses a target application list to identify and restart applications based on their last memory release, allowing dynamic adjustment and prioritization, including background processing of both processes and activities to reduce restart duration.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a whitelist approach is used to protect important applications from being killed, then application reliability is improved, but device complexity increases and the system cannot dynamically adapt to memory needs
Solution Approach 1:
The patent implements a dynamic application priority mechanism where the system continuously monitors memory usage and automatically adjusts application priorities based on real-time conditions. Instead of using a static whitelist, the system dynamically determines which applications to protect by evaluating their priority levels and current memory状况, allowing flexible adaptation without complex configuration management.
Solution Approach 2:
The system automatically manages application priorities and memory allocation without requiring manual whitelist configuration. The low memory killer mechanism autonomously evaluates application priorities, monitors memory usage, and makes killing decisions based on dynamic conditions, eliminating the need for users to manually maintain protection lists while achieving adaptive memory management.
2Loss of time
If applications are restarted in the background to reduce restart duration, then user experience is improved, but system performance deteriorates due to repeated restarts and kills
Solution Approach 1:
The system performs preliminary actions by maintaining application processes in a suspended state with their memory space preserved. When an application needs to be restarted, the system can quickly resume the suspended process rather than performing a complete cold start, significantly reducing restart duration while avoiding the overhead of fully executing and then killing processes repeatedly.
Solution Approach 2:
Instead of completely discarding application processes by killing them, the system discards only the memory allocation temporarily while preserving the process structure. When memory is needed, the system recovers the memory space by allocating it back to the suspended application, avoiding the performance cost of complete process termination and restart cycles.
3Power
If memory is allocated to foreground applications by killing background applications, then foreground application performance is improved, but background application reliability deteriorates
Solution Approach 1:
The system applies different quality levels of memory protection to different applications based on their priority classifications. High-priority background applications receive enhanced protection and are less likely to be killed, while lower-priority applications can be terminated more readily. This localized differentiation allows the system to protect critical background services while still freeing memory for foreground applications when needed.
Solution Approach 2:
The system dynamically changes the killing threshold parameters for different applications based on their priority levels and current system conditions. Instead of using a uniform memory threshold for all applications, the low memory killer adjusts the at what point each application should be killed, allowing flexible memory reclamation while protecting important background processes from unnecessary termination.
Data Source
AI summary
An application start method includes obtaining a target application list when a size of free memory is greater than a preset threshold. The target application list is used to store one or more application identifiers of one or more applications whose memory is released. The application start method further includes starting, in the background, a process of an application identified in the target application list.


