本文编写于 3220 天前,最后修改于 427 天前,其中某些信息可能已经过时。

前几日刷了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

附件下载: