前几日刷了 G 大的 0202ROM,除了些可以克服的小 BUG 外 {:5_153:},的确不错,但是最近总是发愁 data 分区空间吃紧,虽然开了 app2sd,但装的 130 多个应用程序也不是吃素的,尤其是 gameloft 出品的几个游戏,老占 data 空间了。没办法,只有另想解决办法,反正 data2ext 这东西对我这低速卡用户来说,简直坑爹{:5_143:},没办法,网上一查,G 大的 app2sd 只移动了 data 区里的 app 文件夹,没有移动 dalvik-cache 文件夹,用 R.E. 管理器一看,dalvik-cache 文件夹竟占了 100 多兆{:5_148:},看来这是个突破口{:5_142:}。于是就上网搜搜代码,看看 G 大的脚本,就写了这么个玩意儿。。很简陋{:5_139:}。。但很实用{:5_113:}。。反正以后 G 大再发 rom 我就自己把它集成到里面。
使用方法:
用法很简单,下载附件后解压,得到两个文件:dalvik-cache2sdon.sh 和 dalvik-cache2sdoff.sh
用 R.E. 浏览器把它们复制到 system 或 data 里,权限改为 rwxr-xr-x
相应的在 R.E. 浏览器权限界面就变成了
√ √ √
√ □ √
√ □ √
打开 dalvik-cache2ext 功能:
执行 dalvik-cache2sdon.sh, 稍等 2 分钟,手机自动重启之后就可以打开 dalvik-cache2ext 了。
实际上就是把 /data/dalvik-cache 文件夹移到 /sd-ext/dalvik-cache, 可以节约 data 分区 100 余兆不等的空间。我的是低速卡,开了之后发现也没怎么变卡,基本上和没移差不多
关闭 dalvik-cache2ext 功能:
执行 dalvik-cache2sdoff.sh,稍等 2 分钟,手机自动重启之后就可以关闭 dalvik-cache2ext 了。
但是使用前你要注意一下几点:
1,必须是 G 大的支持 app2sd 的 rom,此脚本需要 G 大 rom 里的 /etc/init.d/03firstboot 脚本配合;
2,你必须保证 sd-ext 分区有足够的空间来放 dalvik-cache 文件夹;
3,关闭 dalvik-cache2ext 功能时,你要需要确保 data 分区的空余空间大于 dalvik-cache 文件夹的大小。
4,请不要在打开 dalvik-cache2ext 功能后,重复使用 dalvik-cache2sdon.sh 脚本。反之,亦然。
5,如果你是刷机狂人,那么推荐你在清除 data 分区并刷机后,先打开 4 -optimize.sh,odex 优化,之后先打开 dalvik-cache2ext 后打开 1 -app2sd.sh。可以节约相当长的一段时间。
因为本人水平有限,还没能写出自动判断空间大小的脚本。所以用之前请手动确认 data 分区和 sd-ext 分区空间大小。
如果你看不懂上面是上面东西,最好还是不要试了,很危险的。。。这个只是给大家一个参考的例子 ,算是抛砖引玉吧。
dalvik-cache2sdon.sh 代码:
#!/system/bin/sh
mount -o remount rw /system
rm -rf /sd-ext/dalvik-cache
cp -a /data/dalvik-cache /sd-ext/
echo rm -rf /data/dalvik-cache > /data/firstboot.sh
echo ln -s /sd-ext/dalvik-cache /data/dalvik-cache >> /data/firstboot.sh
chmod 777 /data/firstboot.sh
sync
reboot
dalvik-cache2sdoff.sh 代码:
#!/system/bin/sh
mount -o remount rw /system
cp -rp /sd-ext/dalvik-cache /data/dalvik-cachebak
echo rm -rf /data/dalvik-cache > /data/firstboot.sh
echo mv /data/dalvik-cachebak /data/dalvik-cache >> /data/firstboot.sh
echo rm -rf /sd-ext/dalvik-cache >> /data/firstboot.sh
chmod 777 /data/firstboot.sh
sync
reboot