1、概述
LMK (low meminfo killer) 即当系统可用内存太低时,系统会触发LMK,杀掉一些进程释放内存出来。android 会为进程分配优先级,优先级越低的应用,在内存不足时,会优先被杀。优先级与进程的类型和进程被调度的次序有关系。
2、优先级
android 进程的优先级(从高到低)
前台进程,正在活动的Activity或者使用startForeground的Service。onReceive 的BroadcastReceiver 等 |
可见进程,如 onPause 的Activity |
服务进程,后台服务,如正在运行startService 启动的service |
后台进程,对用户交互无影响,如onStop状态的Activity 等 |
空进程,一般用作缓存以缩短下次启动时间 |
而LMK 则是根据oom_adj (Out of Memory Adjustment)来设置的,与android 的进程优先级有相似的地方,但又不完全相同
ADJ级别 |
取值 |
解释 |
---|---|---|
UNKNOWN_ADJ | 16 | 一般指将要会缓存进程,无法获取确定值 |
CACHED_APP_MAX_ADJ | 15 | <