请教关于 Android 刷机,Swap Ext相关问题。

2013-01-05 14:46:45 +08:00
 iqav
手机是 Lt18i,自带的 Rom 用久了想换其它的,现在用的是 CM10。
因为这机硬件配置并不高,可用运存只有350MB+,装了软件手机内存所剩无几了。所以机子较慢,因此也删掉了一些应用,包括系统自带的。

既然这样,我看到了可以在 SD 卡上分 Swap、Ext分区,前者用来做交换文件用,后者用来安装程序用。

我是进入 recovery 里分的,Ext3为1GB,Swap为256MB。
分好后刷入 CM10,然后用 AutoSwapOn 启用 Swap,关在超级终端里 Free 查得,Swap那一行显示非0。这样应该用上了SD卡的Swap是吧?但使用过程中,可用运存剩下的始终都是40-100MB,跟以前没区别。这样一打开应用多就不够运存了,虽然不会闪退。

另外,Ext3那个好像没有用上,不知道怎么利用上。这个是怎么鉴别和启用的呢?
这方面不是很懂。

我目的是,因为机子内存不大,所以想像 Windows 那样做得虚拟内存,给运存腾出些空间做有用的事。
5179 次点击
所在节点    Android
2 条回复
takwai
2013-01-05 17:25:38 +08:00
原则上不推荐在 SD 卡上开 SWAP,速度原因。既然楼主都用 CM10,可以开 zram 。

说说 SD 卡上的分区,一般是 /mnt/sd-ext 这个目录指向 SD 卡上的分区,进去这个目录看看有没显示正确容量就知道了。

然后你可以用 Link2SD (https://play.google.com/store/apps/details?id=com.buak.Link2SD) 把应用移进 /mnt/sd-ext 里就好了。
takwai
2013-01-05 17:38:09 +08:00
说说我用 ST18i 的做法,SONY 官方 4.0.4 系统,配合 flykernel 内核(LT18i 也有这个内核,此内核可以让SONY官方系统支持 init.d)。SD 卡刮分一个 4G EXT4,在系统 /data 分区下,建立了一个 /data/sdext 目录,用于指向 4G EXT4 分区。

=====
脚本文件名
00sdext

脚本内容
#!/system/bin/sh
mount -t ext4 -o rw /dev/block/mmcblk0p2 /data/sdext

把该脚本保存至 /system/ect/init.d,给全部权限。
=====

手机每次启动都会执行该脚本,自动把 4G EXT4 分区挂载到 /data/sdext 目录里。

把 /data/app 目录复制到 /data/sdext/app;
busybox cp -a /data/app /data/sdext/app

把 /data/dalvik-cache 目录复制到 /data/sdext/dalvik-cache;
busybox cp -a /data/dalvik-cache /data/sdext/dalvik-cache

最后建立软连接
rm -r /data/app
ln -s /data/sdext/app /data/app
rm -r /data/dalvik-cache
ln -s /data/sdext/dalvik-cache /data/dalvik-cache

指令这东西,可以把手机 USB调试 打开,用 adb shell 进入后执行;或者直接用 root explorer 操作都可以的。

成功后,安装 apk 基本都会直接存放在 4G EXT4 分区(有些默认会安装 sdcard 卡,需要移动回手机记忆体)。这样子不用担心 /data 空间不足,也不必把 apk 移动到 /sdcard 卡,因为 /sdcard 大容量模式挂载电脑时,会暂时切断 /sdcard 上的应用哟。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/56641

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX