android 手机内存SWAP经验

在网上看了很多例子,执行CreatIMG.sh 然后将90userinit放在/system/etc/init.d 目录下重启手机后free 查看swap 是否为0,如果不为0表示swap成功否则不成功。不知道其他机友有没有成功,我是一直不成功,经过多次努力试验总算成功。下面谢谢具体的过程:

注意:以下操作都需要root权限。

CreatIMG.sh 和 90userinit都只是2个脚本而已,里面的内容可以修改

CreatIMG.sh 内容如下

mount -o remount,rw /cache;  //在cache目录下生成swap.img文件,具体位置可更改
swapoff /dev/block/loop7;
dd if=/dev/zero of=/cache/swap.img bs=1024 count=65536; //swap.img的大小为64M,具体大小可更改;但不宜过大
free;   

90userinit的内容如下

mount -o remount,rw /cache;
losetup /dev/block/loop7 /cache/swap.img; //挂载/cache/swap.img
mkswap /dev/block/loop7; //生成swap
swapon /dev/block/loop7; //打开swap
echo 100 > /proc/sys/vm/swappiness;

将CreatIMG.sh文件拷贝到/system 或 /data目录下,并赋予可执行权限, 可通过相关的文件管理器设置。然后在adb shell 中执行如下代码

# cd /system
# sh CreatIMG.sh
可能会停顿一段时间,执行完成后你会在你的cache目录下发现一个64M大小的swap.img文件

# cd /cache
# ls
dalvik-cache  download      lost+found    recovery      swap.img

下一步将90userinit拷贝到/system/etc/init.d/ 目录下并赋予可读和可执行权限。网上很多教程到这里都让用户重启手机后swap就成功了,但我重启多次swap仍然不成功。如果有机友遇到和我一样的情况,那么下面的步骤非常重要其实就是将90userinit里面的内容在adb shell中运行一次

当执行完上面的步骤看看swap是否成功,然后你再重启手机就没问题了。

# free
             total         used         free       shared      buffers
Mem:        195524       187496         8028            0         1816
-/+ buffers:             185680         9844
Swap:        65528        28644        36884
# 


你可能感兴趣的:(android,学习随笔,android,swap,内存,手机)