在Windows Mobile系统中,软件安装时可以选择安装在手机内存或存储卡上,而Android系统只能把软件安装在手机内存里,使本来就不大的手机内存显得捉襟见肘。如果你也是个手机软件狂人,喜欢尝试各种各样新奇有趣的软件,面对越来越少的手机内存空间,不得不对已经安装的软件痛下杀手。你是否还在安装与卸载之间纠结?Follow Me!我们一起来给Android系统扩扩容,让“机器人”也可以“大肚能容”,免去存储空间不足的后顾之忧。
Tips:存储器分为随机存储器(RAM)和只读存储器(ROM)两种。手机ROM相当于PC上的硬盘,用于存储手机操作系统和软件,也叫FLASH ROM,决定手机存储空间的大小。手机RAM相当于PC的内存,其大小决定手机的运行速度。
要把大象装冰箱里总共分三步,而Android系统中把软件安装到SD卡上,比这还简单,两步就够了:
一、存储卡分区
首先我们需要对手机SD卡进行分区,分一个FAT32分区和一个Ext3分区,FAT32分区用于正常存储图片、音乐、视频等资料,而Linux格式的Ext3分区就是用于扩容安装软件的分区。以笔者的2G SD卡为例,FAT32分区1.35GB,Ext3分区494MB。下载并安装Acronis Disk Director Suite软件。将手机SD卡装入读卡器并连接电脑,然后运行Acronis Disk Director Suite软件。
1.FAT32分区。找到代表SD卡的磁盘分区,点击右键,选择“删除”命令,删除已有分区。当成为“未分配”分区时,点击右键,选择“创建分区”,在弹出的对话框中,文件系统选择:FAT32,创建为“主分区”,设置好分区大小1.35GB,点击确定按钮。
2.Ext3分区。在剩余的494MB分区上,点击右键,选择“创建分区”,在弹出的对话框中,文件系统选择:Ext3,创建为“主分区”,设置好分区大小494MB,点击确定按钮。
3.确认分区。上述分区设定完成后,软件只是记录了分区操作,并没有真正在SD卡上进行分区。点击软件工具栏中的“提交”按钮,确认执行分区操作,提示“操作成功完成”说明分区成功了。
二、将软件移动到SD卡
存储卡分区完成后我们只需要把系统默认的软件安装目录/data/app转移到SD卡的Ext3分区上,然后通过ln命令建立软链接,使系统自动把软件安装到SD卡上,达到节省手机内存空间的目的。
将存储卡装回手机,重新启动,使系统识别到Ext3分区。在手机上运行超级终端,依次输入以下命令来验证系统是否识别了Ext3分区:
su (会提示高级权限授权,选择“总是同意”)
busybox df –h
如果显示的列表中有/dev/block/mmcblk0p2的信息说明系统已成功识别了Ext3分区。
然后依次输入以下命令将/data/app目录转移到SD卡的Ext3分区:
cp –a /data/app /system/sd/
(将/data/app目录复制到/system/sd/下)
rm –r /data/app
(删除/data/app目录)
ln –s /system/sd/app /data/app
(建立软链接)
Reboot
(重启手机)
重启之后,手机上安装的所有软件就全部转移到了SD卡上,看看你的手机可用空间是不是增大了。以后再安装软件也是直接安装到SD卡上,不用担心空间不足的问题了,而且这样做还有一个好处,刷新ROM后,以前安装过的软件并没有被清除,还保存在SD卡上,输入下列命令就可以轻松恢复,不用再一一安装了,非常方便实用。
su
(取得高级权限)
cd /data
(进入/data目录)
cp –a app /system/sd/app
(将app目录中的内容复制到/system/sd/app目录)
rm –r app
(删除app目录)
ln –s /system/sd/app /data/app
(建立软链接)
reboot
(重新启动)
扩容效果体验:
刷新ROM后未安装任何软件,手机可用空间为87MB,安装若干软件后,可用空间下降为73MB。将软件目录转移到SD卡上后,可用空间变为80MB。可能有的“电筒”会有疑惑,为什么没恢复到87MB呢?这是因为我们只是将软件移动到了SD卡上,而软件的缓存数据仍然会占用手机内存,所以手机内存还是会下降。当然软件的缓存数据也可以移动到SD卡上,但这样会拖慢软件运行速度,所以不推荐大家使用。
注意事项:
1.软件移动到SD卡上后,原有的部分桌面插件会无法正常显示,删除后,重新加入桌面即可。
2.SD卡的Ext3分区可以视为手机硬件的一部分,移除SD卡后,安装的软件将无法运行。插入SD卡,重新启动手机即可正常使用。




















我用的天语W606,存储卡已经分区完毕,但是用超级终端怎么也不出现/dev/block/mmcblk0p2,也就是说不认我分区的EXT3,请问是为什么
回复
超级终端是什么呀
回复
杯具,我按上面的教程分区,感觉步骤也没问题,分区结束后,关闭分区软件时,被要求重启计算机。之后无论是电脑还是手机上都不认这个SD卡,8G的卡只认46M。我都要疯了,也不知哪里出了错,哪位大侠能帮忙接解决,万分感谢。
回复
busybox :not found
怎么回事?还需要安装busybox?
回复
看起来不错,尽管我没有学会,但我还是顶一下吧
回复
超级终端是什么来的。
回复
分完盘之后怎么弄啊
回复
这个做法俗称 App2SD,CyanogenMod 很早就内置了自动做这个的脚本。它的脚本还会把 /data/dalvik-cache 用 mount –bind 搬移到 SD 卡的分区上。
曾经遇到过使用 App2SD 后取出 SD 卡开机导致软件启动无响应(提示 Force Close),重新插入 SD 卡仍然无法解决的问题。建议不要在取出 SD 卡后开机。
回复