Android扩容总动员-将安装软件从手机内存转移到存储卡| Mobile 2.0
主页 » Android,其它应用 » Android扩容总动员-将安装软件从手机内存转移到存储卡

Android扩容总动员-将安装软件从手机内存转移到存储卡

作者: | 发表于2010-02-06 | 10人发言

      在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,点击确定按钮。

kuorong01

      2.Ext3分区。在剩余的494MB分区上,点击右键,选择“创建分区”,在弹出的对话框中,文件系统选择:Ext3,创建为“主分区”,设置好分区大小494MB,点击确定按钮。

cjfq02

      3.确认分区。上述分区设定完成后,软件只是记录了分区操作,并没有真正在SD卡上进行分区。点击软件工具栏中的“提交”按钮,确认执行分区操作,提示“操作成功完成”说明分区成功了。

二、将软件移动到SD卡

      存储卡分区完成后我们只需要把系统默认的软件安装目录/data/app转移到SD卡的Ext3分区上,然后通过ln命令建立软链接,使系统自动把软件安装到SD卡上,达到节省手机内存空间的目的。

将存储卡装回手机,重新启动,使系统识别到Ext3分区。在手机上运行超级终端,依次输入以下命令来验证系统是否识别了Ext3分区:

su  (会提示高级权限授权,选择“总是同意”)

busybox df –h

如果显示的列表中有/dev/block/mmcblk0p2的信息说明系统已成功识别了Ext3分区。

wps_clip_image-1276

然后依次输入以下命令将/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

(重启手机)

wps_clip_image-1462

      重启之后,手机上安装的所有软件就全部转移到了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

(重新启动)

wps_clip_image-1787

扩容效果体验:

      刷新ROM后未安装任何软件,手机可用空间为87MB,安装若干软件后,可用空间下降为73MB。将软件目录转移到SD卡上后,可用空间变为80MB。可能有的“电筒”会有疑惑,为什么没恢复到87MB呢?这是因为我们只是将软件移动到了SD卡上,而软件的缓存数据仍然会占用手机内存,所以手机内存还是会下降。当然软件的缓存数据也可以移动到SD卡上,但这样会拖慢软件运行速度,所以不推荐大家使用。

wps_clip_image-1988 

注意事项:

1.软件移动到SD卡上后,原有的部分桌面插件会无法正常显示,删除后,重新加入桌面即可。
2.SD卡的Ext3分区可以视为手机硬件的一部分,移除SD卡后,安装的软件将无法运行。插入SD卡,重新启动手机即可正常使用。

[poll id="4"]


现有10条评论

  1. 匿名 说到:

    好麻烦啊 还是算了吧 难道没有简单的了吗

    回复

  2. 匿名 说到:

    我用的天语W606,存储卡已经分区完毕,但是用超级终端怎么也不出现/dev/block/mmcblk0p2,也就是说不认我分区的EXT3,请问是为什么

    回复

  3. 匿名 说到:

    超级终端是什么呀

    回复

  4. 匿名 说到:

    杯具,我按上面的教程分区,感觉步骤也没问题,分区结束后,关闭分区软件时,被要求重启计算机。之后无论是电脑还是手机上都不认这个SD卡,8G的卡只认46M。我都要疯了,也不知哪里出了错,哪位大侠能帮忙接解决,万分感谢。

    回复

  5. chengfrank 说到:

    busybox :not found
    怎么回事?还需要安装busybox?

    回复

  6. 匿名 说到:

    看起来不错,尽管我没有学会,但我还是顶一下吧

    回复

  7. 匿名 说到:

    超级终端是什么来的。

    回复

  8. 匿名 说到:

    分完盘之后怎么弄啊

    回复

  9. Rainux 说到:

    这个做法俗称 App2SD,CyanogenMod 很早就内置了自动做这个的脚本。它的脚本还会把 /data/dalvik-cache 用 mount –bind 搬移到 SD 卡的分区上。

    曾经遇到过使用 App2SD 后取出 SD 卡开机导致软件启动无响应(提示 Force Close),重新插入 SD 卡仍然无法解决的问题。建议不要在取出 SD 卡后开机。

    回复

我的看法

 

以下所有信息都可选填