米拉杰喜欢拉克萨斯:APP2SD,A2SD,DATA2SD,APP2EXT之间的区别

来源:百度文库 编辑:中财网 时间:2024/04/29 05:57:00
首先解释一下这些缩写,全部的意思就是Application To SD卡,就是说将应用安装在卡上。为什么要这么做呢,那是因为小5本地存储可以算512M(但是官方只是计算system空间所以为256),Android系统刷到手机内,主要有几个目录占用了手机本地存储:1、/system;2、/data、3;cache;4、 /boot等。这几个目录基本使用了512M的空间,我们在刷recovery的时候,其实就是对512M进行这几个目录的分区,其中主要占用 512M空间的是/system和/data,而/system在使用过程中的增长不大,只要我们给足空间,让刷机的ROM中/system目录的文件总量能够拷贝到/system分区就没问题,目前android的/system的目录文件总量大概是105.36M,为了可能需要打补丁,我给到了128M,可能110M也够,最早刷的recovery给/system有250M的空间,如果改为150或者128,就能够给其他的分区比如/data增加 100M多空间(以为默认会将所有剩余空间给到/data目录)。/data是作为主要的软件安装地点,这里除了安装的软件以及软件的缓存都在这个目录。那么这个目录最多也不过有不到300M空间(T版有800M的空间,不用太担心),那么像极品飞车这样的软件多安装几个,300M的空间很快就会被用光。那么为了让程序文件利用SD卡的空间,因此出现了app2sd、a2sd、data2sd、a2sd+的各种方案。

那么我就要分别说一下这四种方案的特点和区别:

一.app2sd
2.2以上版本的android,Google给了一种将软件安装到sd卡的办法,这样就能安装更多软件。Sd上会生成一个叫做 .android_secure的文件夹,将软件安装到里面。
但这个方法有一些问题:
1,软件不是自动安装到sd卡中这个文件夹,你需要手动去点击“移动到sd卡”
2,不是说有的软件都能被“移动”,事实上很多软件都不能移动。是否能移动到sd卡,取决于开发者是否更新软件并允许移动。很多开发者不愿意更新。
3,即便能移动过去,不是所有的软件数据都移动到sd卡,同样有一些信息是需要保留在内部存储上面的,所以,你的手机照样会很快就用完内部存储。
4,你可以通过设置行强制将所有软件都装到sd卡上。但这么做的后果就是,小插件什么的就不再能用,所以有小插件的软件不要移动到SD卡上。
好用工具:转二楼

二.a2sd
a2sd在我搜索网络的信息看到有两种观点,一是a2sd就是app2sd,二是a2sd就是a2sd+,通过我的分析,a2sd其实就是简写的app2sd,所以大家就把app2sd和a2sd都认为是官方提供的利用SD卡存储程序文件的方案。这个和app2sd方案一样,基本不被玩家采用。

三.data2sd
data2sd这种技术类似于以前在卡上运行Android,这种方案是在卡上建立一个data.img的文件,其实这个文件就是系统 /data分区的数据,这种方案和以前在卡上运行这个Android方式类似,只不过除了data.img文件,其他文件都在手机存储上。 data.img文件在Fat32分区的SD卡上,这种方式优势是data.img文件大小可以比较自由的控制,从512M到2G甚至更多都可以设置,而且不用对SD卡进行复杂分区。但是问题是因为data.img在SD卡Fat32分区上,以前比如冻屏等类似问题还是存在,并且不能避免当手机电量不足,进入省电模式的时候会切断SD卡供电,导致手机整体无**常运行。但是我看到很多朋友用data.img,主要是因为比较简单,如果你是初学者,并且对我上面的教程关于分区的部分实在是搞不定,也可以采用这种方式(论坛有介绍,搜索一下data2sd,方法很简单),但在我看来这并不是最佳的解决办法,即使它的优点很多,但是缺点也很显著。建议初级玩家使用,高级玩家不使用。

启用方法:转三楼

四.app2ext或者说data2ext
a2sd+从名字来看只是比a2sd多了个+,但是技术是完全不一样的。它采用的是将SD卡进行Andoird(Linux)可是别的分区进行使用SD卡的。因为采用了这种分区,从硬件上看虽然这些分区在SD卡上,但是Android则认为这是本地存储硬件,大家可以通过超级终端在 /dev/block目录下看到mmcblk0p1、mmcblk0p2、mmcblk0p3的文件,其实这就是我们做的Fat32、Ext3、Swap 分区的硬件名称。我们则需要将/data目录使用Ext3分区,那么我们采用的是建立一个/sd-ext目录,让他加载(mount)mmcblk0p2(Ext3)这个分区,然后在/sd-ext下建立app、app-private、dalvik-cache三个目录,然后利用Link技术,就是让/data目录下的app、app-private、dalvik-cache的目录分别Link(Link技术是指将目录连接到另一个目录,在这两个Link与被Link目录里做任何操作就相当于在被Link的目录里操作)到/sd-ext目录下的那三个目录,其实这个过程就是命令a2sd reinstall和a2sd cachesd的时候做的。a2sd reinstall主要的执行内容是将/data/app和/data/app-private目录下的程序分别拷贝到/sd-ext/app和/sd- ext/app-private目录下,然后将目录Link过去,同样a2sd cachesd是将/data/dalvik-cache目录的文件拷贝到/sd-ext/dalvik-cache目录下,然后将目录Link过去。这样我们的程序安装在/data的这三个目录下,实际上使用的是/sd-ext目录所用的SD卡ext3分区的空间,因此大家发现安装程序之后关于手机界面的手机存储没有太多变化。那么app、app-private、dalvik-cache都是什么呢?app是我们的apk程序所安装的位置,如果你有加密的程序,则它会进入app-private的目录,而dalvik-cache则是程序的缓存,这三个目录占用个主要的程序安装所占的空间,那么大家依然会奇怪为什么手机存储依然会变小,只不过慢了一些。那是因为安装程序的时候/data/data这个目录也会有数据增加,但是不太多。但是a2sd+技术为什么不将/data/data目录也Link到/sd-ext目录下,我认为可能/data/data需要更好的稳定性和速度,如果将/data /data目录也Link到卡上,可能冻屏会出现,这纯属个人猜测。我曾经手动将/data/data转移到/sd-ext的/data(我自己建立的目录)下,系统会非常不稳定,而且有自动重启现象。但是即使我们有不到300M的手机存储(其实就是/data分区大小,可以用91或者PC助手的文件管理看到),但是主要的程序进入了app或者app-private目录下,缓存的数据进入到dalvik-cache目录下,/data/data不会占用太多空间,是可以接受的。这种方案的缺点是技术比较复杂,新手能够理解需要学习更多的知识(其实学会了会有成就感哦!)。但是这个顺应Android(Linux)技术,因为Ext3和Swap分区并不认为成SD卡,所以在电量不足的情况下,只是将 Fat32那个分区的逻辑卷卸载,而不会触及Ext3和Swap分区,并且这种方案是最稳定的。

启用方法:转四楼

总之:
App2sd伪造一个内部储存空间来,然后将程序装到这里面去。
data2sd就是在sd卡上创建一个data.img,然后挂载
App2sd+将更多的东西放到sd卡,省出更多空间。