Chinaunix首页 | 论坛 | 博客
  • 博客访问: 247640
  • 博文数量: 34
  • 博客积分: 938
  • 博客等级: 准尉
  • 技术积分: 440
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-18 12:07
文章分类

全部博文(34)

文章存档

2012年(28)

2011年(6)

分类: 嵌入式

2011-11-08 18:53:11

   最近一直在看android  lowmemory killer。前段时间看的是AMS里面的内容,其实ANDROID的主要内存管理是通过trimApplications()调用没有参数的UpdateOomAdjLocked()方法去更新每个进程的adj值,而每个进程实际更新
adj值是通过具有三个参数的方法UpdateOomAdjLocked()来实现的,在UpdateOomAdjLocked() 中通过调用computeOomAdjLOcker()来计算每个进程的adj值,最后设置每个进程相应的adj值,我以为通过 Procee.setOomAdj()方法就可以设置相应进程的adj值,结果但是在JNI程的 android_os_Process_setOomAdj方法,只是修改了相应进程的proc文件下的
adj,并没有跟踪到相应进程设置task_struct -> singal_struct -> oom_adj
的改变,希望有知道什么时候修改这个值的人告诉我一下。
p { margin-bottom: 0.08in
阅读(3438) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:Android lowmemorykiller分析

给主人留下些什么吧!~~