文章目录

  • 一、oom_adj 值简介
  • 二、查询进程号 PID
  • 三、查询进程对应的 oom_adj 值

一、oom_adj 值简介


oom_adj 值是 Linux 内核为每个进程分配的 , 该值可以反映进程的优先级 ;

在内存不足 , 要杀进程 , 回收内存时 , 会根据该 oom_adj 值决定是否回收该进程 ;

oom_adj 值越大 , 对应的进程优先级越低 ;

二、查询进程号 PID


获取进程号 :

执行如下命令 , 可以获取 Android 手机的进程号 ;

adb shell ps

PS 每行的输出含义 :

  • USER : 进程所属用户 , ROOT 是权限最高的用户 , 其它都是各个应用对应的用户名称 ;
  • PID : 进程 ID ;
  • PPID : 进程父 ID ;
  • VSZ : Virtual Size 缩写 , 进程虚拟内存大小 ;
  • RSS : Resident Set Size 缩写 , 该进程实际驻留在内存中的大小 ;
  • WCHAN : 休眠进程对应的在内核中的地址 ;
  • NAME : 进程名称 ;

最后看到了熟悉的企鹅进程保活操作 , 有 333 个进程 ;

在 Android Studio 界面中也可以查看进程 ID , 在 Logcat 面板中 , 进程栏中 , 可以看到 kim.hsl.app2 进程的进程 PID 是 11694 ;

在 PS 中对应的该 PID 为 11694 的进程 ;

u0_a356      11694   725 3714484  75520 0                   0 S kim.hsl.app2

三、查询进程对应的 oom_adj 值


获取进程号之后 , 执行如下命令 , 即可查询进程号对应进程的 oom_adj 值 ;

首先进入 Android 设备 adb shell 命令行 ,

adb shell

然后获取 root 权限 ,

su

最后查询进程号对应进程的 oom_adj 值 ;

cat /proc/11694/oom_adj

最终查询的该进程的 oom_adj 值为 0 , 说明该进程当前处于前台 , 是前台进程 ;

查下企鹅的三个进程的 oom_adj 值 :

u0_a295      12420   725 4532232  92244 0                   0 S com.tencent.mm:push
u0_a296      12474   726 1202112  78148 0                   0 S com.tencent.mobileqq:TMAssistantDownloadSDKService
u0_a296      12591   726 1231864  84668 0                   0 S com.tencent.mobileqq:MSF
  • com.tencent.mm:push : 0 , 前台进程 , 这操作比较骚了 , 哪来了前台进程啊 ~~~
  • com.tencent.mobileqq:TMAssistantDownloadSDKService : 这个进程还带重启的 , 查询的时候 , 进程号不见了 , 发现重启了 , 16 ;
  • com.tencent.mobileqq:MSF : 9 ;

【Android 进程保活】oom_adj 值 ( 简介 | 查询进程 PID | 根据进程 PID 查询 oom_adj 值 )相关推荐

  1. Android 进程保活手段分析

    如何进行进程保活,首先我们应该先分析一下进程被杀死的原因开始 Android进程被杀死的场景分析: 从 Android 的进程被杀死的场景分析,查看被杀死的原因 一.Android手机的进程回收策略 ...

  2. Android 系统(146)----Android进程保活招数概览

    Android进程保活招数概览 Android中的进程保活应该分为两个方面: 提高进程的优先级,减少被系统杀死的可能性 在进程已经被杀死的情况下,通过一些手段来重新启动应用进程 本文针对这两方面来进程 ...

  3. Android进程保活(常驻内存)

    Android将进程分为6个等级,它们按优先级顺序由高到低依次是:  1.前台进程( FOREGROUND_APP):  2.可视进程(VISIBLE_APP ):  3. 次要服务进程(SECOND ...

  4. 【Android 进程保活】oom_adj 值 ( oom_adj 值对应的进程优先级 | oom_adj 值动态改变 | 进程保活优化方向 )

    文章目录 一.oom_adj 值对应的进程优先级 二.oom_adj 值动态改变 1.正常运行时的 oom_adj 值 2.按下 Home 键后的 oom_adj 值 3.按下回退键后的 oom_ad ...

  5. 【Android 进程保活】提升进程优先级 ( 使用前台 Service 提高应用进程优先级 | 启动相同 id 的第二个前台 Service 关闭通知 )

    文章目录 一. 前台 Service 通知问题 二. 设置 startForeground id 参数为 0 三. 启动相同 id 的第二个前台 Service 关闭通知 1. 前台服务 1 2. 关 ...

  6. 【Android 进程保活】提升进程优先级 ( 使用前台 Service 提高应用进程优先级 | 效果展示 | 源码资源 )

    文章目录 一. 使用前台 Service 提高应用进程优先级 1. 前台 Service 代码 2. 前台 Service 代码 3. 启动服务 二.效果展示 三.源码资源 一. 使用前台 Servi ...

  7. 【Android 进程保活】提升进程优先级 ( 1 像素 Activity 提高进程优先级 | taskAffinity 亲和性说明 | 运行效果 | 源码资源 )

    文章目录 一.1 像素 Activity 提高进程优先级 1.主界面 MainActivity 2.1 像素 Activity 3.广播接收者 4.管理类 5.AndroidManifest.xml ...

  8. Android进程保活方案

    自己曾经也在这个问题上伤过脑经,前几日刚好有一个北京的哥们在QQ说在做IM类的项目,问我进程保活如何处理比较恰当,决定去总结一下,网上搜索一下进程常驻的方案好多好多,但是很多的方案都是不靠谱的或者不是 ...

  9. 关于 Android 进程保活,你所需要知道的一切

    早前,我在知乎上回答了这样一个问题:怎么让 Android 程序一直后台运行,像 QQ 一样不被杀死?.关于 Android 平台的进程保活这一块,想必是所有 Android 开发者瞩目的内容之一.你 ...

最新文章

  1. C Primer Plus 第7章 C控制语句:分支和跳转 7.1 if语句
  2. 计算机应用优质课资料,全国信息技术优质课一等奖教案——信息的收集
  3. 本文将向您展示如何在 Flutter 中编码/解码 JSON
  4. 回溯法(深度优先)剪枝和分支限界法(宽度优先)剪枝对比:01背包问题
  5. 利用Python随机或暴力生成密码
  6. git合并分支的策略(赞)
  7. mysql 报错3534_win7下安装MYSQL报错:MYSQL 服务无法启动的3534问题
  8. 数学建模 分支限界算法求解整数规划原理以及编程实现
  9. java actionscript_ActionScript(对比Java)学习笔记二
  10. 当时间管理碰上大数据,从此,悠悠时光也终不再那么漫长
  11. 【同步】文件同步rsync |自动同步软件FreeFileSync
  12. 数据分析A/BTest之APP页面
  13. 最全面的Fiddler界面讲解#工作原理#菜单栏#工具栏#底部状态栏#底部自带命令行控制台#session栏#request栏和response栏
  14. 单核CPU仍然存在线程安全问题
  15. 修复计算机用户名密码,win7恢复出厂设置后用户名密码是多少
  16. 在国内如何使用gmail_如何在Gmail中使用自定义背景
  17. 文件的下载(2)——解决下载文件名的乱码问题
  18. JXL开发Excel文档中文教程
  19. DRF学习之短信验证的实现用户注册(十二)
  20. jenkins占据内存过大

热门文章

  1. (实验学习)MATLAB与C/C++混合编程之MATLAB调用C程序,转载的
  2. 使用RDLC报表向报表传入参数
  3. 正则表达式限制文本框只能输入数字,小数点,英文字母,汉字
  4. 根据id/类名/元素名称查找元素
  5. Luogu P2920 时间管理【二分答案】
  6. async/await工作机制探究--NodeJS
  7. 聚集索引与非聚集索引的总结
  8. jsp: jstl标签库 uri标签
  9. 21个高质量的Swift开源iOS App
  10. 读《大道至简——失败的过程也是过程》有感