Android, app2ex, 分区, app2sd
本帖最后由 lindong629 于 2011-5-8 03:17 编辑 可能很多人都会有这样的误解,App2SD不就是把应用程序安装到卡上吗?这个用手机PC助手都可以实现强制安装应用到SD卡上!事实上,我之前也是这么想的,直到看到了这篇帖子:http://www.miui.com/viewthread.php?tid=132 在此,我用我的理解来解释一下这个概念: 本文下面提到的App2SD和App2SD+实际上是App2Ext,即把存储卡分出一个分区给Android使用,让存储卡和Android系统紧密结合在一起。与Android 2.0以上版本自带的App2SD不同的是,后者只是把应用程序安装到存储卡的.android_source文件夹中,应用程序的数据、缓存都还在手机内部存储里。那么App2SD+到底有什么好处,相信看过上面提到的贴子的人都明白了。 一、为什么要App2SD+ 欲做App2SD+,先了解下App2SD+的相关知识,请看我上面提到的贴子。 二、为你的存储卡分区 有两种方法可以实现: 方法1:利用PC上的分区工具给存储卡分区! (建议先尝试下文的方法2,但你有必要看完方法1里提到的分区划分。) 常见的分区工具如:Acronis Disk Director、DiskGenius都可以实现把存储卡同时分出Ext格式和FAT格式。 (PS.我用DiskGenius分区时只能分出Ext2格式,而Ext3格式更适合Android,特别是MIUI貌似只支持Ext3。) 将存储卡分成3个区,第一个区是正常的手机存储空间:FAT32,第二个区是App2SD+用到的分区:EXT3,第三个区是Android系统用到的Linux交换区。 附上别人写的分区教程: http://www.handsky.cn/thread-153779-1-1.html (PS.注意不要按教程里一样分EXT2格式,要分EXT3格式!也不一定要按里面的步骤来,比如删除存储卡空间,直接在Acronis Disk Director里删除空间后再分区就好!切记以上两点!) 方法2:用Android系统中的Recovery来分区! 此方法最简单,无需折腾,由于不同机型的Recovery、甚至同一机型不同Recovery版本的操作菜单都有所差别,但大都提供了Partitions Menu功能选项,进入该菜单,选择Partitions sdcard,即可按提示进行分区。 具体过程: 1)以N1为例,关机状态下按住音量减键点一下开机键,不要放开音量减键直至进入FASTBOOT界面,用滚轮选择Recovery,按电源键确定进入。 2)手机重启到Recovery,选择Partitions Menu进入,选择Partitions sdcard进入,选择Partitions SD进入。 3)问你确定要分区吗?按滚轮确定,然后跳出Swap-size和Ext3-size选项,用滚轮上下调整空间大小,最后确定开始分区,没分配的空间就是FAT32存储空间。 4)耐心的等待你的屏幕上正在跳...............,跳多久视情况而定,一般5分钟以内就能分好,如果一直在跳........10分钟以上,那么恭喜你,你和我一样,遇到了神秘问题,放弃此方法!我曾经把手机插着电源,从头晚到第二天早晨,屏幕还在跳............,没有半点累的意思,估计和卡的质量等因素有关。 三、在Android系统里开启App2SD+ 首先我要说明的是:App2SD+和App2SD只有那么一点微小的区别,App2SD+就是把应用程序缓存和应用程序数据都存储到了Ext3分区里,而App2SD只是把应用程序安装到了Ext3分区里,而应用程序的数据和缓存都还是存储在手机内部存储里,这一点和文章开头提到的Android 2.0以上版本自带的App2SD有点像。具体你是要App2SD还是要App2SD+,看你的选择,开始吧: 首先保证你的手机里有超级终端,进入开始输入命令: # su 回车,如果提示授权,请授权! # a2sd reinstall 回车,手机自动重启,这一步是重新加载a2sd功能,并且会把你已经安装过的软件移到Ext分区里。 OK,到现在,App2SD已经成功了,如果要App2SD+,继续往下: 重启后继续进入超级终端模拟器运行以下命令: # su 回车 # a2sd zipalign 回车 # a2sd cachesd 回车,手机自动重启,App2SD+就算成功了,如果你的手机还未安装过任何应用程序,安装几个先。 现在,打开Root Explore(如果你手机上还没有,就安装个先),看手机根目录是否已经有了个“sd-ext”文件夹,进入这个文件夹,看有没有app、app-private、dalvik-cache这样的文件夹,如果有,恭喜你,你已经App2SD+了。 ---------------------------------- 如果你的存储卡已经分出EXT分区,但不知道如何开启A2SD+的,请使用该工具:Plus工具箱CM专用版,基于CM的系统都可以用,比如MIUI。 下载地址: Plus工具箱CM专用版.apk (1.88 MB) 请管理员修改为回复后可见,还有只要你的手机能支持APP2EX就能支持APP2SD+ ---------------------------------- 看了些回复,把一些常规提问做一下回复: 1、输入命令# a2sd reinstall 时不起作用,不会重启。 可能性1:分区不正确,无法被系统识别EXT分区; 可能性2:你没有输入#su,来获得最高权限; 可能性3:系统不支持A2SD+,这一可能仅适用于非MIUI系统,或非基于CM的系统。 2、如何知道已经正确分区? 答:看下你的EXT分区是否被系统识别了?MIUI参照:设置》系统》SD卡》-A2SD+那里有没有总容量和可用空间。(MIUI会自动识别正确的EXT分区,并开启A2SD功能,但不会默认开启A2SD+,即应用程序缓存、应用程序数据还在手机内部存储里。)如果已经显示总容量,说明分区正确,只需要执行上文的第三步,开启A2SD+即可。(当然,你也可以选择使用附件里的工具。) 3、我已开启ap2sd+,重新刷了ROM后,ap2sd+还保留吗?是不是还得重新做?重刷ROM后,只要存储卡分区没有变化,那么A2SD功能对于MIUI来说是还在的,你只需要执行上文第三步的命令即可开启A2SD+。 有问题请回帖,我会不定期来回复。 ----------------------- 使用两个月后经验补充: 1、如果在使用过程中,A2SD+出现了什么未知问题导致失效(比如EXT分区中的程序打不开),建议试试: # a2sd repair 这是一个修复命令,有益无害。 2、上文提供的命令只是把程序缓存(chache)移到了EXT分区里,如果你还想把程序数据(data)也移到EXT分区,执行: # a2sd datasd (后悔data移入EXT的命令:#a2sd nodata) 3、不想用A2SD了? 执行:#a2sd remove |