改变Android手机软件安装位置

网摘 2011-04-13

谷歌Android系统手机默认只能把软件安装在手机内存里(rom),早期手机的rom都不大,除去系统占有后剩下安装程序的空间就快没了。所以就有了下面的方法,在手机的上开辟一个空间专门用于安装软件以缓解空间不足的问题。

Tips:存储器分为随机存储器(RAM)和只读存储器(ROM)两种。手机ROM相当于PC上的硬盘,用于存储手机操作系统和软件,也叫FLASHROM。手机RAM相当于PC的内存,其大小决定手机的运行速度。

一、存储卡分区

首先我们需要对手机SD卡进行分区,分一个FAT32分区和一个Ext3分区,FAT32分区用于正常存储图片、音乐、视频等资料,而Linux格式的Ext3分区就是用于扩容安装软件的分区。以笔者的2GSD卡为例,FAT32分区1.35GB,Ext3分区494MB。下载并安装AcronisDiskDirectorSuite软件。将手机SD卡装入读卡器并连接电脑,然后运行AcronisDiskDirectorSuite软件。

1.FAT32分区。找到代表SD卡的磁盘分区,点击右键,选择“删除”命令,删除已有分区。当成为“未分配”分区时,点击右键,选择“创建分区”,在弹出的对话框中,文件系统选择:FAT32,创建为“主分区”,设置好分区大小1.35GB,点击确定按钮。

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

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

二、将软件移动到SD卡

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

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

su(会提示高级权限授权,选择“总是同意”)
busyboxdf–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–aapp/system/sd/app
(将app目录中的内容复制到/system/sd/app目录)
rm–rapp
(删除app目录)
ln–s/system/sd/app/data/app
(建立软链接)
reboot
(重新启动)
扩容效果体验:
刷新ROM后未安装任何软件,手机可用空间为87MB,安装若干软件后,可用空间下降为73MB。将软件目录转移到SD卡上后,可用空间变为80MB。可能有的“电筒”会有疑惑,为什么没恢复到87MB呢?这是因为我们只是将软件移动到了SD卡上,而软件的缓存数据仍然会占用手机内存,所以手机内存还是会下降。当然软件的缓存数据也可以移动到SD卡上,但这样会拖慢软件运行速度,所以不推荐大家使用。
注意事项:
1.软件移动到SD卡上后,原有的部分桌面插件会无法正常显示,删除后,重新加入桌面即可。
2.SD卡的Ext3分区可以视为手机硬件的一部分,移除SD卡后,安装的软件将无法运行。插入SD卡,重新启动手机即可正常使用。

【最后】

针对这个文章还有以下的问题

  • 先在安卓2.2 2.3都开始支持直接在存储卡上安装软件。这样的安装方式和这个在卡上建立Ext3分区方式有什么不同。
  • 有些软件比如365日历如果安装在存储卡上是没有插件功能的。安装在Ext3分区上可以有么??

待续

下班前补充:简单搜索一下没做实际研究。2.2 以上版本安装到存储卡和上面的做法还是有区别的。

  1. 首先分区不需要改变格式,fat32即可。
  2. 另外安装好的软件插件将无法使用。
  3. 需要程序本身支持。(默认情况支持的程序会自动安装在存储卡上,当然在2.2以上的系统可以强制安装在sd卡上)
  4. Ext3格式的分区会被系统认为是rom的一部分区域。插件可以显示,如果不能显示删除后再加一下即可。另外存储卡拿出去程序会失效。(程序老家都没了当然会失效了)

到现在看最好的解决小rom机器的程序安装方式就是上文说的建立Ext分区的方式。此外程序移植到存储卡后rom本身的占用空间会减小一部分,因为程序的缓存部分还是会在rom中的。

希望50年后它依然存在,让我感觉我一直在做一件稍微有点cool的事情 喜欢一起交个朋友吧 微信/QQ :56280295

Leave a Reply

Your email address will not be published. Required fields are marked *