转自:
http://blog.sina.com.cn/s/blog_4d66a3cb0100prfe.html
在init.rc中 系统定义了
Lowmeme_adj中各项数值代表阈值的警戒级数,lowmem_minfree代表对应级数的剩余内存
当系统的剩余内存为小于6MB时候,警戒级数为0,当系统内存剩余小于8M而大于6M的时候,警戒级数为1,当内存小于64M大于16MB的时候,警戒级数为12.Low memory killer 的规则就是根据当前系统的剩余内存多少来获取当前的警戒级数,如果进程的oom_adj大于警戒级数并且最大,进程将会被杀死(相同omm_adj的,则杀死占用内存较多的)。Omm_adj越小,代表进程越重要。一些前台的进程,oom_adj会比较小,而后台的服务,omm_adj会比较大,所以当内存不足的时候,Low memory killer 杀掉的必然先杀掉的是后台服务而不是前台的进程。
# Define the oom_adj values for the classes of processes that can be
# killed by the kernel. These are used in ActivityManagerService.
setprop ro.FOREGROUND_APP_ADJ 0
setprop ro.VISIBLE_APP_ADJ 1
setprop ro.PERCEPTIBLE_APP_ADJ 2
setprop ro.HEAVY_WEIGHT_APP_ADJ 3
setprop ro.SECONDARY_SERVER_ADJ 4
setprop ro.BACKUP_APP_ADJ 5
setprop ro.HOME_APP_ADJ 6
setprop ro.HIDDEN_APP_MIN_ADJ 7
setprop ro.EMPTY_APP_ADJ 15
# Define the memory thresholds at which the above process classes will
# be killed. These numbers are in pages (4k).
setprop ro.FOREGROUND_APP_MEM 2048
setprop ro.VISIBLE_APP_MEM 3072
setprop ro.PERCEPTIBLE_APP_MEM 4096
setprop ro.HEAVY_WEIGHT_APP_MEM 4096
setprop ro.SECONDARY_SERVER_MEM 6144
setprop ro.BACKUP_APP_MEM 6144
setprop ro.HOME_APP_MEM 6144
setprop ro.HIDDEN_APP_MEM 7168
setprop ro.EMPTY_APP_MEM 8192
分享到:
相关推荐
Android内存管理小结 Android内存管理和分析
二维码简介及Android 内存管理 MAT内存分析工具
主要介绍android内存管理 以及MAT、DDMS等工具的使用
android内存管理机制分析,帮助你了解内存管理原理,更好的开发程序
android内存管理目录 Low Memory Killer Ashmem Pmem dalvik虚拟机内存管理
Android内存管理 深入掌握android的内存管理机制
Android内存管理机制研究.pdf
Android 内存管理机制 如何评估 App 的内存占用 一些减少 App 内存占用的建议 内存管理概述 Android 运行时 (ART) 和 Dalvik 虚拟机使用分页和内存映射来管理内存。这意味着应用修改的任何内存,无论修改的方式是...
android内存管理机制分析[归类].pdf
关于android内存溢出的检查,MAT的使用方法和内存溢出的防范方法,看完你会受益匪浅
实现的功能很简单,就是获取系统中正在运行的所有进程,并获取到每个进程所占的内存大小,以及系统剩余内存大小,并展示出来,然后通过点击每个进程可以选择是否要关闭进程(系统进程无法关闭),右上角的加号可以...
Android 内存检测,跟踪,分析的方法 以及MAT工具的介绍。
介绍android的内存管理机制,加深对android内存的理解
【摘要】【关键词】宋平波,李云,杨豪杰责任编辑:刘文竹 liuwenzhu@mbcom.cnResearch on Android Memory Managem
android可用内存的阀值教程,让你更了解android的内存管理参照.pdf