安卓使用分区实现虚拟内存 来增加 RAM 和 ROM●注:此教程需要内核版本为2.6.32.9-perf,其他版本慎重为什么要对存储卡进行分区?我举个最简单的例子,当 Neo 同时运行 、UC、Opera Mini 、飞信、人人、Labyrinth、Twidroid、iReader 的时候、切换任务往往都会出现某个程序掉线、或者强制关闭的情况当然没有谁在平时使用的时候开这么多进程,不过分区后对单独的程序流畅感觉是有提升的)如果通过 Linux-Swap(交换) 主分区来实现虚拟 RAM 的话,同时运行这些东西的时候完全不会出现某程序掉线或者强制关闭的情况如果有兴趣的话可以自己先试试,同时打开 UC8、、微博、天天动听、愤怒的小鸟、切水果,然后切换任务APP2SD 的工作原理:以8G 的 TF 卡做比方、将8G 的卡分成3个分区这三个分区是:1、Fat32 主分区:普通的存储卡空间、用于文件存储等2、Ext3 主分区:用于 AppToSD、即将应用程序安装到存储卡而、非存储,ROM 自动完成目前 Ext3 主分区 Neo 测试不成功、能分区但问题是分出来的 Ext3无法在上用超级终端识别,不知道其他朋友有没有说明办法解决。
3、Linux-Swap(交换)主分区:用于解决 Neo 系统内存不足的问题,系统自动调用此分区、存储卡分区的次序与分区大小存储卡按照次序的三个分区:FAT32 主分区、EXT3 主分区、LINUX-SWAP (交换)主分区、举例的分区大小:LINUX-SWAP(交换):96M 一般不要超过这个数值,EXT3:500M ,FAT32:剩下所有存储卡内空间一定要注意先分区 FAT32,不过原本已经分好了 FAT32了,直接跳过这步再分区 EXT3、最后分区 LINUX-SWAP(交换)问题出现:怎样最先确定 FAT32分区的大小?很简单从系统里看看你 SDCARD 的空间,减去500M EXT3空间,再减去96M LINUX-SWAP 的大小就好例如8G 卡实际容量若为7.59G,那么 FAT32分区大小为7590-500-96=6994M 分区大小即可还有一个细节、使用分区软件进行分区操作的时候,分区大小可能不会正好是上述数值,或者出现小数都是没关系的教程:一、为 TF 卡创建 swap 分区(适合没 swap 分区的同学 )1、用读卡器插上你的 TF 卡,记住是读卡器2、装好 Acronis Disk Director Suite 第一次打开时,软件会提示你选择模式,随便选择哪个都行,我选的是【手动模式】 。
3、点击软件左上方的【创建分区】 4、选择你的 TF 卡,点击 【下一步】 5、设置你要创建分区的大小,点击【下一步】 ,这一步是创建分区 EXT3,所以选择500M 左右如果不想分区 EXT3的直接到第10步, 【目前 EXT3在终端无法识别,所以可不分 EXT3分区 】6、选择分区的类型,这里选择主分区,点击【下一步】 7、选择分区文件系统类型,这里选择【EXT3】 ,点击【下一步】 8、设置创建分区的托盘号【选择不谢谢,我不想赋予一个盘符】 , 【下一步】 如有这一步,忽略【下一步】 9、预览重新分区后每个分区的大小,点击【完成】 如果不需要创建 LINUX-SWAP(交换)分区,完成第9步后直接跳到18步 10、继续【创建分区】 ,从这里开始是创建 LINUX-SWAP(交换)分区11、选择需要分区的 TF 卡 12、选择被分区的主体图中第二个500M 左右的那个事上面 Ext3分出来的容量我这里我们选择 FAT32进行分区13、设置你要创建分区的大小,点击【下一步】 14、选择分区的类型,这里选择主分区,点击【下一步】 15、选择分区文件系统类型,这里选择【Linux 交换】 ,点击【下一步】 。
16、设置创建分区的托盘号, 【选择不谢谢,我不想赋予一个盘符】 , 【下一步】 17、预览重新分区后每个分区的大小,点击【完成】 完成后如图17的右下角18、点击软件左上方的旗子,也就是【提交】执行命 19、预览命令列表,点击【继续】 下面就开始分区了,等大概需要几分钟时间出现如图下的再等等不是卡死了,而是在同步数据所以不必担心20、过了好一会儿,软件提示分区成功!点击【确定】 21、关闭 Acronis Disk Director Suite、提示【重启】 , 【点击 Yes】 注意这时先别着急拨出 TF 卡22、重启完成后再次打开 Acronis Disk Director Suite23、选择【FAT32分区】 , 【右键】 【高级→改变盘符】 24、命名你的盘符,随便哪个都可以只要别和系统重复了,后点击【确定】 25、点击软件左上方的旗子,也就是【提交】执行命 26、预览命令列表,点击【继续】 27、这次操作简单,所以很快就完成了28、现在拔掉你的 TF 卡,重新插上电脑你会发现 TF 卡容量少了说明分区成功了下面是我的8G TF 卡同时分了 Ext3和 Linux 交换分区。
二:如何使用已创建的 Linux 交换分区呢?1.在端安装 swapper2,打开 Swapper【附件在论坛链接中】 2、点击你的菜单键,就是物理按键最右边那个,选择进入【Setting】 3、 第一项不用打钩,第二项和第三项是 Swap file 设置相关项不用理 4、第四项是设置使用 Swap 分区进行交换行为的程度,数值(0-100)越高,越可能发生磁盘交换 swappness 好像应该是 swap 分担的百分比 建议设置成60或者805、 进入 Advanced preferences 设置,里面三个都要打钩,然后选择第二个 路 **设置为/dev/block/mmcblk1p2 6、返回到主界面,点击 ON 开启显示下图就说明成功了 7、配合自动内存管理,很不错如果用的话,下载附件 com.lim.android.automemman 安装到上,打开设置成均衡,点应用即可 每次开机都要手动开启虚拟 RAM如果有用任务杀手或者其他管理进程的程序记得把 com.lim.android.automemman 和 swapper2设置成忽略列表去,否则,你手动杀进程的时候会把这2个进程给杀掉的。
三、如何使用 EXT3分区【目前 NEO 不可用、终端无法识别 】将软件移动到 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 卡上,但这样会拖慢软件运行速度,所以不推荐大家使用本文来自机锋网)。