android OOM_adj 的设置流程
来源:互联网 发布:隔音好的耳机 知乎 编辑:程序博客网 时间:2024/05/01 01:37
流程如下:
setOomAdj
--> framework/base/core/jni/android_util_Process.cppandroid_os_Process_setOomAdj
{
sprintf(text, "/proc/%d/oom_adj", pid);
int fd = open(text, O_WRONLY);
sprintf(text, "%d", adj);
write(fd, text, strlen(text));
}
-->kernel/fs/proc/base.c
INF("oom_score", S_IRUGO, proc_oom_score),
REG("oom_adj", S_IRUGO|S_IWUSR, proc_oom_adjust_operations),
REG("oom_score_adj", S_IRUGO|S_IWUSR, proc_oom_score_adj_operations),
-->kernel/fs/proc/base.c
static const struct file_operations proc_oom_adjust_operations = {
.read = oom_adjust_read,
.write = oom_adjust_write,
.llseek = generic_file_llseek,
};
--> kernel/fs/proc/base.c
copy_from_user(buffer, buf, count)
err = kstrtoint(strstrip(buffer), 0, &oom_adjust);
task->signal->oom_adj = oom_adjust; //warn,oom_adj is deprecated
task->signal->oom_score_adj = (oom_adjust * OOM_SCORE_ADJ_MAX) -OOM_DISABLE;
说明:
Ams调用setOomAdj设置某进程的adj值,
通过jni接口写到oom_adj文件里,
这个文件是在base.c里注册的文件,里面有个oom_adjust_write方法
该方法将这个值赋给task->signal->oom_score_adj
0 0
- android OOM_adj 的设置流程
- android OOM_adj 的设置流程
- Android进程优先级oom_adj
- Android 进程级别 和 oom_adj对应关系
- 从Android bindService Flag看oom_adj
- android恢复出厂设置的流程
- Android 恢复出厂设置的流程
- android恢复出厂设置的流程
- Android ActivityManagerService根据oom_adj数值内存回收机制
- Android ActivityManagerService根据oom_adj数值内存回收机制
- Android ActivityManagerService根据oom_adj数值内存回收机制
- Android ActivityManagerService根据oom_adj数值内存回收机制
- android 铃声设置流程
- 利用oom_adj提高Application所在进程的优先级
- oom_adj分析
- 分支流程的设置
- 铃声设置的流程
- 简单分析一下Android恢复出厂设置的流程
- Java 内存大概分析
- 使用jsp+servlet+jdbc做的登陆注册案例
- Android学习之路——————烦了个错误啊
- 设计模式学习之路-适配器模式
- 合并小文本的方法
- android OOM_adj 的设置流程
- 点击第一viewpager中的按钮,跳转到第二个radiogroup对应的fragment
- 深圳3分钟完成港澳签注 24小时自助办证服务攻略
- 总结pyspark在windows7环境下的搭建方法,pycharm的配置方法
- 从这个特殊的日子,开始写博客吧
- 错误:The file “XXX” couldn’t be opened because you don’t have permission to view it.
- 高德地图车机版API演示程序
- 高德地图车机版API演示程序
- 高德地图车机版API演示程序