前言
最近做项目用到了apk的进程优先级部分,需要知道某个具体的app在系统进程中的优先级
所以就根据自己整理的和参考一些网上这方面的知识来做一下总结
查看Android应用apk的 进程优先级
第一步:获取想要查看进程的PID
一个设备在运行的时候肯定会有很多进程
因为设备一旦启动就会先运行许多系统应用,这是系统运行的必要条件
所以我们先通过命令来找到我们想要查询的某个进程
查看所有当前所有进程命令:adb shell ps

| 列名 | 含义 |
|---|---|
| USER | 所属用户 |
| PID Process ID | 进程 ID |
| PPID Process Parent ID | 父进程 ID |
| VSIZE Virtual Size | 进程的虚拟内存大小 |
| RSS Resident Set Size | 实际驻留”在内存中”的内存大小 |
| WCHAN | 休眠进程在内核中的地址 |
| NAME | 进程名 |
在命令指示符输入这行命令之后会出现一堆进程,这些就是当前设备正在运行的进程了
如果觉得进程实在是太多了,不是很好找到自己需要的那个进程
可以使用命令来筛选一下,这样可以看起来更美观 而且更容易找到我们想要的那个进程!
- 在Windows上筛选某个进程:
adb shell ps|findstr baidu - 在手机上筛选某个进程:
adb shell ps baidu 或者 adb shell ps|findstr -i baidu - android或者linux中的shell命令是grep:
adb shell ps|grepbaidu
然后我们根据进程ID,也就是PID找到我们需要查找的某个进程
比如我要查找的进程就是下面图中这个

第二步:根据进程的PID查看进程优先级
在第一步中我们找到了想要查找的进程的PID
那我们就根据这PID来查看他的优先级
查看某个进程的优先级命令:先进行adb shell,然后cat proc/对应的进程PID/oom_adj
比如我这里的PID是27652,那我的操作如下:cat proc/27652/oom_adj
这个数字11就是我这个进程当前的优先级

但是这里要注意,如果这个进程当前是在前台正在运行,那么他的这个数值会显示为0

oom_adj 解释

那这样就可以查到我们所需要的进程优先级了!
这个优先级一般在写代码的时候可以自己设置
如果后期因为优先级问题导致出现资源分配不均匀等等
导致 应用卡死 或者 掉帧 之类的话就需要重新进行合理的一个优先级设置了!
Android中进程的优先级与垃圾回收机制相关,优先级越低被垃圾回收的机会越大。
当内存不足的时候,总是低优先级的进程被最先回收