前言
最近做项目用到了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中进程的优先级与垃圾回收机制相关,优先级越低被垃圾回收的机会越大。
当内存不足的时候,总是低优先级的进程被最先回收