pai->memory.use_mem_limit = false;
pai->memory.oom_killed = false;
pai->memory.memlimit_update_exclude = false;
+ pai->memory.foreground_oom_score_adj = OOMADJ_APP_MAX + 10;
if (fixed_app_list_get()) {
int error;
return 1;
}
+static bool is_foreground_app(int oom_score_adj,
+ int foreground_oom_score_adj)
+{
+ if (oom_score_adj != OOMADJ_FOREGRD_LOCKED &&
+ oom_score_adj != OOMADJ_FOREGRD_UNLOCKED)
+ return false;
+
+ if (foreground_oom_score_adj > OOMADJ_APP_MAX)
+ return false;
+
+ return true;
+}
+
static GArray *lowmem_get_task_info_app(int killer_flags, int start_oom, int end_oom)
{
GSList *iter = NULL;
task.oom_score_lru =
OOMADJ_FAVORITE + OOMADJ_FAVORITE_APP_INCREASE
* pai->lru_state;
+ } else if (is_foreground_app(pai->memory.oom_score_adj,
+ pai->memory.foreground_oom_score_adj)) {
+ task.oom_score_lru = pai->memory.foreground_oom_score_adj;
} else {
task.oom_score_lru = pai->memory.oom_score_adj;
}