背景
许多时候需要设置某些应用或模块的cgroup或线程优先级,以验证某些cpu调度问题,本文梳理了相关场景,供参考。
设置进程/线程的cpu分组
查看进程的cpu分组,可以使用如下命令:
进程大多有多个线程(包括主线程),如果只设置主线程,则其他子线程的分组并不会被设置,因此,如果关心的是子线程,则需要设置该子线程的分组,设置的方式可以分为如下几种。
方案一 源码方式
需要修改Android系统的framework源码
比如可以在进程启动的时候,设置pid进程为top组
//ProcessList.java中的handleProcessStartedLocked方法
Process.setProcessGroup(pid, THREAD_GROUP_TOP_APP);
上述主要使用setProcessGroup接口设置cpu分组,仅设置了主线程,如果要设置子线程(RenderThread线程可以在AMS的setRenderThread(int tid