Android 查看进程ID(PID)并比较进程优先级

参考:

Android 查看进程ID(PID)比较进程优先级

在Android OS 中每个应用程序都有一个自己进程,运行在自己的进程中,每个进程都有自己的ID即PID,这个ID有时候对我们开发很有用,那么如何来获取这个对应应用的PID呢?如何比较两个进程的优先级呢?下面我们就来进行详解:

1.查看当前手机的进程

DOS下面cmd(win+r),然后打开adb shell ,直接 ps 命令,显示当前手机所有进程。
在这里插入图片描述
各列参数意义:

USER 				//进程当前用户;
PID 			    //Process ID,进程ID;
PPID		 	   //Process Parent ID,进程的父进程ID;
VSIZE      	    //Virtual Size,进程的虚拟内存大小;
RSS            	//Resident Set Size,实际驻留”在内存中”的内存大小;
WCHAN     		 //休眠进程在内核中的地址;
PC            	 //Program Counter;
NAME       	 //进程名;

2.利用(ps |grep 项目包名)命令,过滤自己需要的进程,获取pid

ps |grep com.xq.myjaraar

com.xq.myjaraar 为项目的包名。
在这里插入图片描述

3.比较进程优先级

进程的Importance等级以及adj值,决定了系统在资源吃紧的情况下该杀掉哪些进程。

通过 cat /proc/进程id/oom_adj 可以看到当前进程的adj指,比如上面测试我们输入

cat /proc/9479/oom_adj 

cat查看进程的adj值后我们会得到其返回结果“0”,说明当前进程正位于前台。
同样,我按home键,把app退到后台,这个时候,再输入cat /proc/12807/oom_adj
cat 查看进程的adj值后得到其返回结果为“1”,说明当前进程位于后台。

不同机型可能返回的值有所区别。

上面我们测试的结果:permission denied,请注意需要root手机。

相较于Importance等级而言adj值可以赋予我们更多的参考价值,从上述adj值的定义中我们可以看到,值越小优先级越高,比如native进程的adj值为-17,对于这个adj值的进程来说,系统根本不会动它一分一毫,实质上当进程的adj值去到2时系统就很少会因为其它原因而去杀死它,这些在研究进程保活中都非常重要。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值