当前位置 博文首页 > 努力前行,总会成为自己心中的那道光:Android 使用心得 ??| 使

    努力前行,总会成为自己心中的那道光:Android 使用心得 ??| 使

    作者:[db:作者] 时间:2021-09-18 12:55

    前言

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

    cs