link2SD的原理以及开启方法

来源:互联网 发布:mysql 最多从库 编辑:程序博客网 时间:2024/06/15 23:51

 最近,给手机的"存储空间不足"提醒弄得很烦人,便上网查找了资料,无意发现了app2SD+和link2SD技术。两者的原理几乎一样,其中link2SD更方便,但有些机型并不适用。本博客只讲述了link2SD。另外,本文是在APP2SD+开启原理及Re用管理器开启app2sd+方法这篇文章的基础上整理总结出来的,读者也可以参考这篇文章。
 
APK安装的占用空间的原理

例如 UC浏览器.apk,安装过程:
将UC浏览器.apk 重命名为UC浏览器.zip后用解压缩软件打开即可看到里面有 class.dex文件 和文件夹Lib。
1、首先会将 UC浏览器.apk 重命名为 com.ucmobile.apk 后复制到 /data/app 目录下。
2、将com.ucmobile.apk 包里的 class.dex 文件解压到 /data/Dalvik-Cache 目录下。
3、在/data/data 目录下创建 com.ucmobile 目录,将com.ucmobile.apk 包里的Lib(有的APK无此文件)下对应的 .so 文件复制到 /data/data/com.ucmobile/lib 目录下,UC浏览器使用产生的缓存、书签、设置等数据都存放在/data/data/com.ucmobile 下。

再加上后面app产生的数据,app的存储空间可以写成如下等式:
 app的存储空间应该=原APK+class.dex+.so文件+(数据+缓存)  (等式-1)
 等式右边的前面部分是app安装就占用的空间,后面部分的则是程序运行久了才占用的空间,并且会增加。手机原生的app2SD仅仅是将等式-1的APK和.so文件(.lib文件)移动到内存卡里。

图1 原生app2SD

link2SD工作原理

Link(链接),Link就像Windows 的快捷方式一样,Link文件大小占用的空间可忽略不计。原理就是将原文件或文件夹移到到其它任意位置如 EXT分区 或 /system 或/cache,当然内存卡第一分区Fat32格式的分区不行,创建Link放回原目录来替代原文件或目录。

link2SD开启步骤(手机必须先root)
1.SD卡分区
 首先备份,格式化SD卡,SD分区主要是将SD卡分成fat32和ext两个分区。需要说明的是,本人尝试了多个分区软件都没有成功,包括Partition Manager,最后用了Acronic Disk Director 12才okay。

图2

 这里操作比较简单,就是简单地将SD卡分成分成fat32和ext两个分区。(不明白的可参考内存卡分出EXT格式第二分区和删除EXT分区图文教程),本人的ext分区选择的是ext3格式,1.5G大小。但得注意的是,两个分区都要设置成“Primary”(主要分区),而不是“logical”(逻辑分区)
2.简单验证步骤1有没有操作正确
 下载超级终端和busybox安装器,打开busybox安装器,按照默认设置安装。使用RE文件浏览器在/system的目录下新建sd目录。
1)打开超级终端
输入

su

再输入

busybox df -h

会出现
图3
这个便是fat32分区。
2)然后 输入

ls -l /dev/block

图4
 一般地,第一分区是/dev/block/vold/179:数字,第二分区则是/dev/block/vold/179:(数字+1),在这里,第一分区是179:97,第二分区则是179:98,mmcblk1p2。
3)接着,手动挂载ext分区:

busybox mount -t ext3 /dev/block/mmcblk1p2 /system/sd(根据自己的情况修改)

4)再输入

busybox df -h

如果步骤1成功的话,第二分区便会挂载上来。
图5
至此,分区步骤已经结束。
3.在软件市场下下载并安装link2sd
 第一次启动,程序会提醒挂载脚本,挂载成功的话,程序会提示重启,如果确保前面步骤都正确且无法挂载,可能是机型不允许,可能需要用app2sd+。

这里写图片描述

link2sd的软件操作在这里就不多说了,比较简单,主要是设置里面的”自动连接”设置以及连接到sd卡。

图7

图8

最后看下连接成功的图。
图9

 可以看到,APK和LIB文件占用了sd卡的内存,这是原生app2sd的作用。DEX文件是用link2sd链接成功的。至于内部数据和缓存数据,需要link2sd加强版才能链接到SD卡上。普通版的link2sd,此功能是未解锁的。
图10

0 0
原创粉丝点击