案桌手机自动开启虚拟内存案桌手机自动开启虚拟内存.doc
自动开启虚拟内存,无须swapper2软件
机锋首发,转载请注明出处
首先简单的向大家介绍一下swap虚拟内存的原理,可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没 有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内 存不够时,才进行Swap交换。那这样是不是swap空间越大越好呢,根据我的经验,...
案桌手机自动开启虚拟内存.doc
自动开启虚拟内存,无须swapper2软件
机锋首发,转载请注明出处
首先简单的向大家介绍一下swap虚拟内存的原理,可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没 有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内 存不够时,才进行Swap交换。那这样是不是swap空间越大越好呢,根据我的经验,可能不是这样喔~太大的 swap 空间会造成 kernel 以为有巨大的内存空间而毫不节制的想要把数据捉进内存中,从而导致 kernel 一直在做 memory swap,进而连带拖慢系统响应时间。用过swapper 2的同学都知道要设置一个swappiness,他的作用就是当实际内存低于这个值的时候就进行交换,在/proc/sys/vm/下面就有一个 swappiness文件,内容不多只有一个数字而已,不信的话可以自己去看一看~
上面的看不懂无所谓,嘿嘿,就当是我装十三使用的,下面才是正题~ 首先大家需要有一个swap分区(本人的GT540数据,其他手机根据自身情况设置)
手机进入recovery,advanced(高级)— Partition SD Card 对SD卡分区(分区功能就在这里,看这里,看这里)
注意:
1、swap分区大小建议64或者128自己看情况(本人128M)
2、进行这一步之前请首先做好SD卡备份,数据丢失本人不负责~ 然后大家需要这个工具包
本帖隐藏的内容需要回复才可以浏览(2周后自动解除隐藏)
自动挂载swap.rar (235.58 KB)
下载下来解压,让手机和电脑正常连接,然后双击包中的“点击我开启swap脚本.bat”文件既可自动开机挂载swap空间虚拟内存,然后把你的swapper2卸载了,重新开机在模拟终端中使用free命令查看,第二行就是你的swap虚拟内存使用情况~
++++++++++++++++++++分割线
+++++++++++++++++++++
下面是进阶篇,看不懂的就算了,也当本人装十三吧~
1. #!/system/bin/sh
2. #重新挂载system读写
3. echo "preparing system..."
4. mount -o remount,rw /system
5.
6. #检测以前是否存在 /system/bin/swap
7. echo "checking for swap installation..." 8. if [ -e /system/bin/swap ];
9. then
10. echo "swap already enabled, exiting.." 11. mount -o remount,ro /system 12. exit
13.fi
14.#创建/system/bin/swap文件
15.echo "checking for swap partition" 16.if [ -e /dev/block/mmcblk0p2 -a -e /dev/block/mmcblk0p3 ] ; 17. then
18. touch /system/bin/swap
19. echo '#!/system/bin/sh' >> /system/bin/swap 20. echo '' >> /system/bin/swap 21. echo 'bprop=/system/build.prop' >>
/system/bin/swap
22. echo '' >> /system/bin/swap 23. echo 'swapon=$(cat $bprop | egrep -c -i -o
ro.config.swap=1)' >> /system/bin/swap
24. echo 'if [ "$swapon" = "1" -a -e
/dev/block/mmcblk0p3 ]; then' >> /system/bin/swap 25. echo ' echo '60' >/proc/sys/vm/swappiness' >>
/system/bin/swap
26. echo ' swapon /dev/block/mmcblk0p3' >>
/system/bin/swap
27. echo 'fi' >> /system/bin/swap 28. echo 'exit 0' >> /system/bin/swap 29.fi
30.
31.system读写权限
32.if [ "`ls /sbin|grep -q recovery;echo $?`" = "0" ]; 33.then
34. mount -a > /dev/null
35. recoverymode=y
36.else
37. mount -o rw,remount /system
38. recoverymode=n
39.fi
40.
41.#设置开机脚本
42.echo "preparing startup scripts..." 43.echo '' >> /system/etc/init.local.rc
44.echo '' >> /system/etc/init.local.rc
45.echo '###Swap - Safe to Delete: Start ###' >>
/system/etc/init.local.rc
46.echo "" >> /system/etc/init.local.rc
47.echo 'service swap /system/bin/swap' >> /system/etc/init.local.rc
48.echo ' user root' >> /system/etc/init.local.rc 49.echo ' group shell' >> /system/etc/init.local.rc 50.echo ' disabled' >> /system/etc/init.local.rc 51.echo ' oneshot' >> /system/etc/init.local.rc
echo '' >> /system/etc/init.local.rc 52.
53.echo 'on property:init.svc.bootanim=running # to correct
timin' >> /system/etc/init.local.rc
54.echo ' start swap' >> /system/etc/init.local.rc 55.echo '' >> /system/etc/init.local.rc
56.
57.#设置swap权限
58.chmod 777 /system/bin/swap
59.chown root:shell /system/bin/swap
60.
61.#添加 /system/build.prop系统默认
62.echo '' >> /system/build.pro
63.echo 'ro.config.swap=1' >> /system/build.prop 64.
65.#重新挂载system只读
66.sleep 1 67.mount -o ro,remount /system
68.echo "done."
69.exit
复制代码
swap文件是真正的开机服务文件,就是在开机动画时运行这个服务达到开启虚
拟内存的效果
build.prop文件主要是和一些系统默认设置相关,做过ROM的肯定都知道这个
文件
init.local.rc开机进程文件,控制开机动画,开机音乐等内容
简简单单的给脚本添加了一些注释,能看懂则就能看懂,看不懂则也看不懂
原理就是通过运行这个脚本来创建swap服务文件,设置在开机播放开机动画的
时候运行swap服务,达到开启虚拟内存的目的~
++++++++++++++++++++分割线+++++++++++++++++++++
)怎么办,呵呵,很简有些机油问我如果只有两个分区(一个fat32一个swap
单,改三行代码就OK啦~
第一行:
1. if [ -e /dev/block/mmcblk0p2 -a -e /dev/block/mmcblk0p3 ] ;
复制代码
改成
1. if [ -e /dev/block/mmcblk0p2 ] ;
复制代码
第二行
1. echo 'if [ "$swapon" = "1" -a -e /dev/block/mmcblk0p3 ]; then' >>
/system/bin/swap
复制代码
改成
1. echo 'if [ "$swapon" = "1" -a -e /dev/block/mmcblk0p2 ]; then' >>
/system/bin/swap
复制代码
第三行
1. echo ' swapon /dev/block/mmcblk0p3' >>
/system/bin/swap
复制代码
改成
1. echo ' swapon /dev/block/mmcblk0p2' >>
/system/bin/swap
复制代码
除此之外还可以利用这个原理来达到开启开机音乐的目的,脚本可能不同,但是
原理一样~
++++++++++++++++++++分割线+++++++++++++++++++++
如果你没有分区不想使用swap的话,在sd卡上创建一个swap文件也不失为一
个办法,但是效果肯定入swap分区理想,下面就给大家几行代码,还是那样说,
看懂就能看懂,不会也不要问了~
1. 命令free查看系统内 Swap 分区大小 2. free
3.
4. #创建一个 Swap 文件
5. cd /sdcard
6. mkdir swap 7. cd swap
8. dd if=/dev/zero of=swapfile bs=1024 count=64000
9. #swap文件大小1024X6400
节大小(大约64M)
10.
11.#把生成的文件转换成 Swap 文件 12.mkswap swapfile 13.
14.#激活 Swap 文件
15.swapon swapfile 16.
17.再次查看结果
18.free
复制代码
本文档为【案桌手机自动开启虚拟内存】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。