`
kongweile
  • 浏览: 517353 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

关于app2sd、a2sd、data2sd、a2sd+的区别的解释

 
阅读更多

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

      (1)app2sd是google官方Android系统的一种官方方案,它类似WM将应用程序的部分主要执行文件放到SD卡上,这些文件是保存在 Fat32的SD卡上,这种方式不需要对SD卡做复杂分区,而是用Windows简单格式化SD卡为Fat32分区就好,缺点就是并不是所有程序都能移动到卡上,因为有些程序需要常驻内存,并且在一些情况下,为了省电,可能需要断开卡的供电,因此有可能导致程序运行出现问题。如果用91或者豌豆荚类似的软件强制安装在SD卡上,则会导致桌面插件不能正常运行。这也是我们不能接受的,所以这种方法基本玩家都不会采用。

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

      (3)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,方法很简单),但在我看来这并不是最佳的解决办法,即使它的优点很多,但是缺点也很显著。建议初级玩家使用,高级玩家不使用。

      (4)a2sd+,从名字来看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或者豌豆荚的文件管理看到),但是主要的程序进入了app或者app-private目录下,缓存的数据进入到dalvik-cache目录下,/data/data不会占用太多空间,是可以接受的。这种方案的缺点是技术比较复杂,新手能够理解需要学习更多的知识(其实学会了会有成就感哦!)。但是这个顺应Android(Linux)技术,因为Ext3和Swap分区并不认为成SD卡,所以在电量不足的情况下,只是将 Fat32那个分区的逻辑卷卸载,而不会触及Ext3和Swap分区,并且这种方案是最稳定的。我个人建议大家使用此方法。

      以上是app2sd、a2sd、data2sd、a2sd+的介绍,希望大家能够理解。

分享到:
评论

相关推荐

    a2sd+解决内存不足

    标题 "a2sd+解决内存不足" 暗示了我们正在讨论如何通过a2sd+(App2SD Plus)工具来缓解Android设备的内存不足问题。a2sd+是Android用户常用的一种方法,用于将应用程序的数据和缓存移动到手机的外部存储卡上,以释放...

    a2sd for 按掉4.0

    其中,对于内存管理和存储优化的需求,a2sd(App2SD)解决方案显得尤为重要。本文将深入探讨a2sd在Android 4.0系统中的应用,以及如何通过它来提升设备性能和存储空间利用率。 一、a2sd简介 a2sd,全称App2SD,是...

    三 星 GT- S5830 刷机 升级 及开A2SD-SWAP全程图例

    A2SD(App2SD)是一种将应用程序安装到SD卡的技术,可以有效缓解手机内部存储的压力。SWAP则是创建虚拟内存,提高设备性能。 1. 下载所需文件BeR_RC_2.1.zip和BeR_RC_2.2.zip,放入SD卡。 2. 关闭手机,再次进入...

    a2sd+状态下应用程序丢失的解决方法详细解析

    标题中的"a2sd+"是指Android系统中的一种技术,全称为App2SD,它的目的是将应用程序安装到SD卡上,以缓解手机内部存储空间不足的问题。然而,当用户在使用a2sd+和SD分区方案时,可能会遇到一些问题,比如在某次开机...

    RPLIDAR A2 C#.rar

    RPLIDAR A2是一款由SLAMTEC(思岚科技)公司开发的二维激光雷达,主要用于机器人定位、导航和环境感知。它采用高级的旋转扫描机制,提供高精度的距离测量和360度全方位视野。RPLIDAR A2在机器人领域有着广泛的应用,...

    PyPI 官网下载 | platformdirs-2.0.0a2.tar.gz

    不同的操作系统有不同的约定,例如,Windows倾向于使用AppData目录,而macOS和Linux则通常使用特定的隐藏目录。platformdirs库就是为了解决这个问题而设计的,它提供了简单的API,让开发者无需关心具体操作系统的...

    iOS游戏应用源代码——gooddoug-Cravenstar-16d97a2.zip

    《iOS游戏应用源代码解析——基于gooddoug-Cravenstar-16d97a2项目》 在iOS开发领域,源代码是理解和学习的关键。本次我们将深入探讨一款名为"gooddoug-Cravenstar-16d97a2"的iOS游戏应用源代码。这个项目的命名...

    pcf8563_i2c1_r8_ruoge_ov2640通过给RTC驱动增加设备节点读取秒钟成功+直接读取I2C1获取秒钟值20160626_2201.7z

    pcf8563_i2c1_r8_ruoge_ov2640通过给RTC驱动增加设备节点读取秒钟成功+直接读取I2C1获取秒钟值20160626_2201.7z http://blog.csdn.net/21cnbao/article/details/7919055 在Android源码树中添加userspace I2C读写...

    uni-app从安装到卸载的入门教程

    【uni-app】是一款由DCloud(数字天堂)推出的开源框架,它允许开发者通过一套代码实现跨平台开发,覆盖iOS、Android、H5、微信小程序、支付宝小程序、百度小程序、头条小程序等多个平台。本教程将带你从零开始,完成...

    QT,JPEG解码源代码(已完成)

    switch (Data[m_currentDataIndex+2]) { case 0x00: m_currentBitPosition=8; m_currentDataIndex+=2; m_currentData=0xFF; break; case 0xD9: return 0; break; default: m_currentBitPosition=8; m_...

    ContentProvider

    arg2=(arg2==null||"".equals(arg2.trim()))? _id+"="+id:arg2+"and"+_id+"="+id; cursor=sqLiteDatabase.query(Table_Name, arg1, arg2, arg3, null, null,arg4); default: throw new ...

    aplikacje-mobilne-smolenski-185IC-A2

    【标题】"aplikacje-mobilne-smolenski-185IC-A2" 提供的信息表明,这是一个关于移动应用开发的课程或项目,可能由Smolenski教授指导,185IC可能是课程代码,A2可能代表学期或者课程的某个阶段。这个主题涵盖的内容...

    Rails.Angular.Postgres.and.Bootstrap.2nd.Edition

    Embrace the full stack of web development, from styling with Bootstrap, building an interactive user interface with Angular 2, to storing data quickly and reliably in PostgreSQL. With this fully ...

    Windows XP系统注册表解释

    1. AppData:C:\Windows\Application Data,存放应用程序的数据。 2. Cache:C:\Windows\Temporary Internet Files,浏览器的临时文件存储位置。 3. Cookies:C:\Windows\Cookies,保存网站登录信息和其他浏览数据。...

    5e46407112f3b.zip

    2. **类别页**:提供不同类型的音乐或节目分类,用户可以根据自己的兴趣选择收听内容。 3. **列表页**:显示某一类别下的所有节目或音乐列表,用户可以滚动浏览并选择试听。 4. **个人主页**:用户可以查看自己的听...

    QT,jpeg解码project(未完成)

    BYTE APP0[2]; /* 02h Application Use Marker */ BYTE Length[2]; /* 04h Length of APP0 Field */ BYTE Identifier[5]; /* 06h "JFIF" (zero terminated) Id String */ BYTE Version[2]; /* 0Bh JFIF Format ...

    Linux-查看日志指令

    根据提供的文件信息,本文将详细解释Linux中常用的几种查看日志的方法及命令,并结合实例进行说明。 ### 一、Linux查看日志的基本方法 在Linux系统中,日志文件是系统管理和故障排查的重要依据之一。通常,日志...

    搭建owncloud

    可以从 Google Play、App Store 或其他应用商店下载。 #### 五、总结 通过以上步骤,我们成功地在 Debian 系统上搭建了一个 OwnCloud 个人云存储服务。不仅可以实现跨平台的数据同步与分享,还可以根据需求进行...

Global site tag (gtag.js) - Google Analytics