之前用1.6ROM的时候,没有特别在意内存问题,因为1.6ROM并没有给G1带来太大的内存压力,前几天刷了2.1ROM之后,明显感觉到内存吃紧,机子速度反应太慢。用recovery将4G的TF卡分了FAT32、ext3、swap三个分区,刷了ROM之后,却发现swap没有启用。今天找了一个swapper软件,总算可以将TF卡上的SWAP分区激活了。但是有点不满意,swapper要每次手机重启后都要手动执行软件的swapon,不仅麻烦,还要在手机里多安装了一个软件。
Android的内核是Linux,理论上开源的东西应该是很方便自己DIY的。研究了一下ROM中大概的文件功能,轻松实现不用第三方软件就可自动加载swap的办法。
首先,挂载/system分区。
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system ( 也可以通过root管理器激活rw模式。)
vi /system/etc/fstab
添加一句:/dev/block/mmcblk0p3 /sd-swap swap default 0 0

cd /system/etc/init.d/
vi 30swapon
添加以下shell代码,
#!/system/bin/sh
if [ -e /dev/block/mmcblk0p3 ];
then
swapon /dev/block/mmcblk0p3;
fi;
修改文件属性
chown root.shell 30swapon
chmod 750 30swapon
测试30swapon,sh 30swapon,如果没有发生任何提示信息,就表示30swapon这个脚本本身没有问题。
执行free,看如果能看到swap那一行的数据不为0,就表示swap已经开启了。
为了测试,建议重新开机后,用free指令查看脚本是否自动有效执行了。我在开启了QQ、skype、大智慧、天天动听、google地图等一些程序的时候,还剩下17M内存,平时的话,基本保持在35-40M左右的可用内存。
转载请注明出处:麦麦的不老阁 » 《Android G1 Dream 开机自动加载SWAP分区》













太高端了,看不懂。
博主的博客不错,经常收看了欢迎来我的网站踩踩:品牌女装店项目
兄台:
这篇文章很好,diy精神真的得到大的发扬,很实用,我就是按照你的教程完成我的G1增加swap的操作,但也发现一些小问题,切磋一下。
1.挂载/system分区。
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
这个好像没有必要,你的目的应该是让系统可写,我的机子本身都是可写的,只是不能在根目录下建任何目录或文件。
麦麦 回复:
七月 30th, 2010 at 14:59
2.vi /system/etc/fstab
添加一句:/dev/block/mmcblk0p3 /sd-swap swap default 0 0
这一句中的“/sd-swap ”的“/”是要去掉的,我没有测试加上“/”会有什么问题,但linux的基本写法是:
/dev/block/mmcblk0p3 sd-swap swap default 0 0
麦麦 回复:
七月 30th, 2010 at 15:00
按照你的教程来做,不行啊。。。
麦麦 回复:
八月 21st, 2010 at 23:26