本讲是Android Camera Native Framework专题的第4讲,我们介绍cameraserver.rc详解(下),包括如下内容:
Android init语言简介
cameraserver.rc详解
service
user选项
group选项
ioprio选项
task_profiles选项
rlimit选项
更多:
资源 | 描述 |
在线课程 | 极客笔记在线课程 |
知识星球 | 星球名称:深入浅出Android Camera 星球ID: 17296815 |
极客笔记圈 |
ioprio选项
通过ioprioset系统调用,为该服务设置IO优先级类别和IO优先级
语法
ioprio <class> <priority>
Class: 只能为“rt”, “be”, 或 "idle"
Priority:从0到7
task_profiles选项
配置Cgroup(control groups)。这是为了取代使用writepid选项将一个进程移入一个cgroup。
Cgroup是用来限制、控制与分离一个进程组的资源(如CPU、内存、磁盘、输入输出等)。
语法
task_profiles <profile> [ <profile>* ]
在手机里面可以查看相关JSON文件查看有哪些Task profiles
/system/etc/task_profiles.json
/vendor/etc/task_profiles.json
实战:Cameraserver.rc
CameraServiceCapacity: /dev/cpuset/camera-daemon,控制可以使用哪些CPU
MaxPerformance:/dev/cpuctl/top-app,控制uclamp等信息
通过将cpu.uclamp.min设置为一个较大值,使得一个task看起来像一个“大”任务,使CPU运行在高性能状态,加速任务的处理(尽量往频率高的CPU上调度),提升系统的性能表现;
对于一些后台任务,通过将cpu.uclamp.max设置为较小值,使其看起来像一个“小”任务,使CPU运行在高能效状态,以节省系统的功耗。
cpu.uclamp.min/cpu.uclamp.max 取值范围 0.00 - 100.00,格式为两位小数精度的百分比值,比如设置echo 40 > min 就表示clamp min为 40% * 1024 = 409.6
rlimit选项
rlimit(resource limit)用于指定资源限制,作用同setrlimit API。
语法
rlimit <resource> <cur> <max>
常见 resource如下表