【LMKD】七 AMS与LMKD

基于Android的车载操作系统 目录

当进程状态发生变化时,如Activity执行onStop()生命周期函数从前台进程变成后台进程,AMS(ActivityManagerService)会通过ProcessList.java与native曾当LMKD进行通信,当LMKD接收到内存压力事件时,则会根据adj和minfree的值来选择合适的进程进行查杀。

其流程图如下:

fcbda888931343219d60a55fbefcd209.png

一,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      }
</

猜你喜欢

转载自blog.csdn.net/huangyabin001/article/details/126676577