Answers:
当然可以。尽管将dalvik-cache迁移到普通SD卡文件系统(最常见的vfat)似乎没有问题,但仍然强烈建议您将SD卡格式化为ext4(或与相同/data
),以确保一切正常精细。
所以走吧 建议在继续操作之前对所有应用程序进行完整备份,但是如果您感到幸运,则不需要这样做。假设您有一个终端仿真器来执行必要的工作。
首先,创建一个要将dalvik缓存迁移到的文件夹。然后chmod
和chown
新文件夹匹配/data/dalvik-cache
。如果您正在运行支持SELinux的Android操作系统,请不要忘记相应地更改安全上下文。跑
ls -dlZ /data/dalvik-cache
ls -lZ /data/dalvik-cache
查看dalvik-cache文件夹的原始权限,所有者/组和安全上下文。
接下来,将所有文件从复制/data/dalvik-cache
到您的新位置,例如/storage/sdcard1/dalvik-cache
。您可以使用cp -a
命令来保留文件属性,这会使事情变得更简单。
确保在接下来的步骤中没有新的应用程序启动。
然后,使用rm -r /data/dalvik-cache
创建指向新位置的符号链接
ln -s /storage/sdcard1/dalvik-cache /data/dalvik-cache
就这样。大功告成 重新启动手机(不是必需的,但建议使用)。
有关此过程的一些注意事项:
由于Android基于高度修改的Linux内核,busybox可能无法始终正常运行。例如,几乎所有与SELinux相关的功能都无法正常运行。您可以如下所示进行测试。
toolbox ls -Z /data
busybox ls -Z /data
toolbox getenforce
busybox getenforce
但是,这些可能会正常工作,具体取决于Android版本:
busybox chcon <context> <files...>
busybox runcon <context <program> [args...]
切勿取出SD卡。如果您重新格式化SD卡,请确保它仍为ext4,并在首次启动手机之前重新创建dalvik-cache文件夹。
有一些不错的Howtos,可能对解决您的问题很有帮助:
根据一些论坛讨论,A2SDGUI-Darktremor A2SD GUI应该是将Dalvik缓存移至SD卡的首选应用程序。