android 中procstate

最近看powermanager时,看到了一些对进程状态判断的代码。下面简单的将枚举值的含义拷贝下来。

哎,想看5g,想看ims,想看python,想看SIP协议。东西好多。只能东织网,西织网,希望这些小小的网片合成大网。

看powermanager也是解拨号盘灭屏问题触发的。知识如海,人如一叶扁舟。

参考如下两个链接:

http://www.qingpingshan.com/m/view.php?aid=355521 从源码角度看Android进程保活原理与优先级调度机制

http://www.sohu.com/a/116461973_470016   Android 进程调度之adj算法

下面从网上拷贝的表格,对着代码看了,android对这些状态定义一直都在增加。比如下面的表格中原来没有PROCESS_STATE_TRANSIENT_BACKGROUND,看到android o源码有,添加进去了。

adj

adj 场景
NATIVE_ADJ -17 native进程,framework中未涉及
SYSTEM_ADJ -16 系统进程,也就是system_server
PERSISTENT_PROC_ADJ -12 系统常驻进程,如telephony, systemui
PERSISTENT_SERVICE_ADJ -11 1) 被系统进程或常驻进程绑定
2) 设置了BIND_ABOVE_CLIENT的flag
FOREGROUND_APP_ADJ 0 1) 当前进程正在显示Activity
2) instrumentation正在运行
3) 正在接收广播
4) 正在运行Service
4) provider被其它进程使用
VISIBLE_APP_ADJ 1 该APP中有可见的Activity
PERCEPTIBLE_APP_ADJ 2 1) Activity正在或已经暂停
2) Activity正在Stop
BACKUP_APP_ADJ 3 备份进程
HEAVY_WEIGHT_APP_ADJ 4 heavy weight进程
SERVICE_ADJ 5 30分钟内Service被启动
HOME_APP_ADJ 6 home进程
PREVIOUS_APP_ADJ 7 运行过上一个显示的Activity
SERVICE_B_ADJ 8 运行Service未显示UI
CACHED_APP_MIN_ADJ 9 空进程最小adj
CACHED_APP_MAX_ADJ 15 app.thread=NULL
UNKNOWN_ADJ 16 adj未知

schedGroup

schedGroup 场景
THREAD_GROUP_DEFAULT -1 1) maxAdj<=FOREGROUND
2) instrumentation正在运行
3) 正在接收前台广播
4) 正在运行前台Service
5) 有可见的Activity
6) Activity正在或已经暂停
7) provider被其它进程使用
THREAD_GROUP_BG_NONINTERACTIVE 0 1) app.thread=NULL
2) 正在接收后台广播
3) 正在执行后台Service
3) heavy weight进程
4) home进程
5) 运行过上一个显示的Activity
6) 空进程
THREAD_GROUP_FOREGROUND 1 前台线程group, framework未涉及
THREAD_GROUP_SYSTEM 2 系统线程,framework未涉及
THREAD_GROUP_AUDIO_APP 3 音频应用线程group
THREAD_GROUP_AUDIO_SYS 4 系统音频应用线程group

procState

procState 场景
PROCESS_STATE_NONEXISTENT -1 未知
PROCESS_STATE_PERSISTENT 0 maxAdj<=FOREGROUND
PROCESS_STATE_PERSISTENT_UI 1 常驻进程并且正在显示UI
PROCESS_STATE_TOP 2 1) 当前进程正在显示Activity
2) 该APP中有可见的Activity
3) Activity正在或已经暂停
PROCESS_STATE_BOUND_FOREGROUND_SERVICE 3 1) instrumentation正在运行
2) 绑定了前台Service
3) 绑定的Service进程为前台
4) 使用的provider进程为前台
PROCESS_STATE_FOREGROUND_SERVICE 4 正在运行前台Service
PROCESS_STATE_TOP_SLEEPING 5 进入睡眠状态
PROCESS_STATE_IMPORTANT_FOREGROUND 6 Notification为Service设置了前台token
PROCESS_STATE_IMPORTANT_BACKGROUND 7 1) 备份进程
2) provider被其它进程使用
PROCESS_STATE_TRANSIENT_BACKGROUND 8  
PROCESS_STATE_BACKUP 9 备份进程
PROCESS_STATE_HEAVY_WEIGHT 10 heavy weight进程
PROCESS_STATE_SERVICE 11 正在运行Service
PROCESS_STATE_RECEIVER 12 正在等待接收广播
PROCESS_STATE_HOME 13 home进程
PROCESS_STATE_LAST_ACTIVITY 14 运行过上一个显示的Activity
PROCESS_STATE_CACHED_ACTIVITY 15 1) 无Activity活动
2) 空进程但是设置了BIND_TREAT_LIKE_ACTIVITY
PROCESS_STATE_CACHED_ACTIVITY_CLIENT 16 空进程但是有Activity
PROCESS_STATE_CACHED_EMPTY 17 空进程

 

 

 

你可能感兴趣的:(android移动网络通讯)