基于Android的车载操作系统 目录
当进程状态发生变化时,如Activity执行onStop()生命周期函数从前台进程变成后台进程,AMS(ActivityManagerService)会通过ProcessList.java与native曾当LMKD进行通信,当LMKD接收到内存压力事件时,则会根据adj和minfree的值来选择合适的进程进行查杀。
其流程图如下:
一,AMS初始化adj & minfree信息
AMS在ProcessList的构造函数中调用updateOomLevels()来初始化minfree和adj信息。
1.1 ProcessList()
android_master/frameworks/base/services/core/java/com/android/server/am/ProcessList.java
795
796 ProcessList() {
797 MemInfoReader minfo = new MemInfoReader();
798 minfo.readMemInfo();
799 mTotalMemMb = minfo.getTotalSize()/(1024*1024);
800 updateOomLevels(0, 0, false);
801 }
</