最近一直在看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) |