概念不多说,记录一些 命令
查看低内存管理的adj值 及对应的内存限值
cat /sys/module/lowmemorykiller/parameters/adj
0,1,2,4,9,15 越小越难被杀死,前台程序是0,init进程是-16 在init.rc里面有这样一句话 write /proc/1/oom_adj -16
cat /sys/module/lowmemorykiller/parameters/minfree
4981,6494,8007,10055,11568,14059 这个值是执行kill动作的限值,如14059是54M。
查看应用的adj值 如ps查看如下
system 8422 970 494368 17060 ffffffff 4017bee4 S cn.ipanel.tvapps.hunan.skcamodule
那么
cat /proc/8422/oom_adj 5
如果需要提高该 应用的优先级,办法可以如下:
1 在代码里面调用 startForeground/stopForeground 添加为前台程序/去掉前台程序。
2 配置AndroidManifest.xml 设置android:persistent="true" (应用要放在/system/app) 可以查看oom_adj 变成-12了。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.ipanel.tvapps.hunan.skcdcamodule"
android:versionCode="1"
android:versionName="1.0.1"
android:persistent="true"
android:sharedUserId="android.uid.system">