Android lowmemorykiller分析
1. lowmemkiller中会涉及到几个重要的概念:
/sys/module/lowmemorykiller/parameters/minfree:里面是以”,”分割的一组数,每个数字代表一个内存级别
/sys/module/lowmemorykiller/parameters/adj:对应上面的一组数,每个数组代表一个进程优先级级别
举个例子:
/sys/module/lowmemorykiller/parameters/minfree:18432,23040,27648,32256,55296,80640
/sys/module/lowmemorykiller/parameters/adj:0,100,200,300,900,906
minfree的单位是4K
代表的意思:两组数一一对应,当手机内存低于80640时,就去杀掉优先级906以及以上级别的进程,当内存低于55296时,就去杀掉优先级900以及以上的进程。
对每个进程来说:
/proc/pid/oom_adj:代表当前进程的优先级,这个优先级是kernel中的优先级,这个优先级与上层的优先级之间有一个换算,文章最后会提一下。
/proc/pid/oom_score_adj:上层优先级,跟ProcessList中的优先级对应
2. 上层对lowmemorykiller的设置
主要有2条路径:
- 通过系统启动到一定的阶段,通过shell去设置
device\qcom\common\rootdir\etc\init.qcom.post_boot.sh
- 通过APP层’ProcessList.java -> lmkd 的方式动态设置
Android lowmemorykiller分析相关推荐
- Android 系统性能优化(40)---Android LowMemoryKiller原理分析
frameworks/base/services/core/java/com/android/server/am/ProcessList.java platform/system/core/lmkd/ ...
- Android LowmemoryKiller机制
为什么引入LowmemoryKiller? 进程的启动分冷启动和热启动,当用户退出某一个进程的时候,并不会真正的将进程退出,而是将这个进程放到后台,以便下次启动的时候可以马上启动起来,这个过程名为热启 ...
- android逆向分析概述_Android存储概述
android逆向分析概述 Storage is this thing we are all aware of, but always take for granted. Not long ago, ...
- Android JNI入门第五篇——Android.mk分析
转载请标明出处: http://blog.csdn.net/michael1112/article/details/56671708 江东橘子的博客 Android.mk文件是在使用NDK编译C代码时 ...
- Android多线程分析之二:Thread的实现
Android多线程分析之二:Thread的实现 罗朝辉 (http://www.cnblogs.com/kesalin/) CC 许可,转载请注明出处 在前文<Android多线程分析之一:使 ...
- Android内存分析和调优(上)
Android内存分析和调优(上) Android内存分析和调优(上) Android内存分析工具(四):adb命令 posted on 2017-09-25 19:29 时空观察者9号 阅读(... ...
- Android Telephony分析(七) ---- 接口扩展(异步转同步)
本文是基于上一篇<Android Telephony分析(六) -- 接口扩展(实践篇)>来写的. 上一篇介绍的接口扩展的方法需要实现两部分代码: 1. 从APP至RIL,发送请求: ...
- Android Telephony分析(六) ---- 接口扩展(实践篇)
本文将结合前面五篇文章所讲解的知识,综合起来,实现一个接口扩展的功能. 如果还没有阅读过前面五篇文章的内容,请先阅读: <Android Telephony分析(一) - Phone详解 & ...
- Android Telephony分析(五) ---- TelephonyRegistry详解
本文紧接着上一篇文章<Android Telephony分析(四) -- TelephonyManager详解 >的1.4小节. 从TelephonyRegistry的大部分方法中: ...
- Android Telephony分析(三) ---- RILJ详解
前言 本文主要讲解RILJ工作原理,以便更好地分析代码,分析业务的流程. 这里说的RILJ指的是RIL.java (frameworks\opt\telephony\src\java\com\And ...
最新文章
- Use MVS Dsbame convensions. windows下ftp.exe客户端上传错误
- 005-Python之列表,元组,字符串,bytes及bytearray共有操作
- servlet.xml 出现 Referenced file contains errors(http://.......)
- jdk中一些常见命令
- 如何查看ddos 放开的ip
- java neo4j_java连接neo4j
- 机器学习常见基本概念笔记
- 摈弃 Windows 低效率的工作方式,发掘 Linux 身上的 UNIX 气质
- 阿里云HBase发布冷存储特性,助你不改代码,1/3成本轻松搞定冷数据处理
- 最优食品处方:14种改变你一生的食品
- JVM调优思路、订单秒杀jvm调优案例
- c语言实现一个编译器生成语法树,运用JavaScript构造C语言子集的编译器
- null object java_java1.8--Null Object模式
- 我的Qt作品(12)使用Qt+OpenCV实现一个带旋转角度的Shape形状匹配演示软件
- 写博客的第二天——来个水题,17倍
- curl 命令详解(超详细)
- 2/28 A - 化学 (编译器选 GNU G++)
- CSR8670蓝牙模块BQB认证经验总结
- 主力资金是股价的风向标
- 基于java Web停车场管理系统源码和论文
热门文章
- Spring No mapping found for HTTP request with URI错误
- CCF 201412-4 最优灌溉
- java课程设计(总结)
- 【169天】黑马程序员27天视频学习笔记【Day08-上】
- 如何交叉编译 linux kernel 内核
- 《智能家居产品 从设计到运营》——2.2 智能设备的触角:传感器
- apache-common-pool2(配置参数详解,以及资源回收,从池中获取资源,将资源返还给池...
- Android图片压缩
- 集成Android SlidingMenu(SlideMenu)
- 应用HTK搭建语音拨号系统2:创建单音素HMM模型