欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

解决系统内存不足

程序员文章站 2022-06-04 11:20:17
...

说明

      安装应用过多,使用过程中会导致内存不足,杀掉系统进程,可以通过free -h命令判断当前剩余内存,杀掉部分进程来解决内存紧张问题。

脚本实现

   

#!/bin/sh
while true ;do
	setprop test.mem 1
	total=`free -m | sed -n '2p' | awk '{print $2}'`
	used=`free -m | sed -n '2p' | awk '{print $3}'`
	free=`free -m | sed -n '2p' | awk '{print $4}'`
	shared=`free -m | sed -n '2p' | awk '{print $5}'`
	buffers=`free -m | sed -n '2p' | awk '{print $6}'`
	cacheused=`free -m | sed -n '3p' | awk '{print $3}'`
	cachefree=`free -m | sed -n '3p' | awk '{print $4}'`
	totalcache=`free -m | sed -n '3p' | awk '{print $3+$4}'`
	ratecache=`free -m | sed -n '3p' | awk '{print $3/($3+$4)*100}'`
	echo -e "total\tused\tfree\tshared\tbuffers\tcacheused\tcachefree\tratecache"
	echo -e "$total\t$used\t$free\t$shared\t$buffers\t$cacheused\t\t$cachefree\t\t$ratecache"
	rate=`echo ${ratecache%.*}`
	echo -e "rate:$rate"
	if [ $rate -ge 90 ];then    
	    echo "Memory Warn"
		kill -9 $(pidof com.android.car)
		kill -9 $(pidof com.chinatsp.music)
		kill -9 $(pidof com.chinatsp.music:wecarbase)
		echo 3 >/proc/sys/vm/drop_caches
		sleep 1m
	elif [ $rate -ge 95 ];then  
		kill -9 $(pidof com.tencent.wecarnavi)
	    kill -9 $(pidof evs_app)
		echo 3 >/proc/sys/vm/drop_caches
		sleep 1m
	else 
		echo 'It is OK'
	fi
	sleep 1
done

创建服务和启动服务 

在init.rc中实现如下代码:

service mem /system/bin/mem.sh
    user shell 
    class core
    disabled
    oneshot
	group root shell
	seclabel u:r:shell:s0

#启动服务
on property:sys.boot_completed=1
    bootchart stop
	start mem