Strawing Blog Archivers

Strawing Blog » Archivers » 解放内部存储--Android开启App2sd+

我的机子:HTC Chacha。rom只有512M。虽然已经分过区,system分区230多M,最后data区也只有200M左右。安装软件、更新等吃了不少。到最近,只剩下30来兆了(已经开启了android原生a2sd),才决定折腾下a2sd。
其实似乎是在android2.2以上吧,是原生支持a2sd的,但是只能移动部分程序文件,还是有一些要留在机子内部存储里的。
而且开机以后要“正在准备存储卡”后才能用那些程序。
还有个问题,就是设置卡里的程序为默认(比如浏览器),一重启就失效了,说白了就是没法设置为默认。
还有。。。。连usb会禁用SD卡,所以。。你知道的,这些程序全部会挂掉。
还有。。。。这些程序不能开机自动启动。
好了,Android原生a2sd的缺点就说到这里,大概也就这些了。
下面进入正正题。

首先说说a2sd+的原理(也算是我的习惯吧,在讲东西之前喜欢先把原理说清楚)
a2sd+,是在sd卡中分一个ext分区(我分的是ext3,ext2早已过时,不解释,ext4不知是否支持)。然后挂载到/data/app等目录下(不知道实际是不是,按我的理解是这样,不管了,知道个大概就行了),总之就是把这些内容存到ext分区里(这些是Linux相关的知识了,不在这里解释了)。
而android的a2sd,是在sd卡的fat32分区中建一个.android.se啥啥啥的,把程序放到那里面去。
所以在USB挂载存储卡时,理所当然是卸载FAT32分区了,EXT自然不受影响。

好了,说说怎么开启吧。
首先,你的rom要已安装有a2sd+程序(没有理论上应该可以用recovery刷一个进去,没了解过,自己去查查就知道了)
然后,之前已经用了android自带的a2sd的(也就是那个setInstallLocation),不需要关闭/移动回内部存储
首先给你的sd卡分区,进recovery分也行,用电脑分也行。记得备份你的数据!!
好了,打开shell(什么终端啊,没有的话就ADB呗)。
先su 。。。。不解释,玩linux的都知道干啥。。对了,你的机子要有su这个程序,也就是其他人所说的“root”。
然后,无聊的话就打下a2sd 回车。看看你有没有这个程序。
然后,输入a2sd reinstall 回车。从命令上就可以看出目的了——安装a2sd,也就是把你的程序移动到ext分区。
然后,机器会自动重启。你可以看到,data分区剩余容量明显增加(进应用程序里看即可)。我的从40多兆加到了70多兆。
先别急把程序移出来,继续……shell....
输入a2sd zipalign 回车。
(详见a2sd帮助的ZipAlign Commands部分,据说这个参数能让apk的访问速度稍微加快。)
输入a2sd cachesd 回车
这个就是把庞大的dalvik cache移过去。(以后清dalvik cache就别在recovery里清了,否则又会自动回去,至于怎么清,我等下会提到)
自动重启……
重启以后,把你原来sd卡的程序移回来吧。移完、cachesd之后,我的data分区剩余已经有116M了。如图

还没完,继续shell..
关掉android的a2sd。。pm setInstallLocation 0,不解释。(似乎要root权限执行,执行后pm getInstallLocation看看变了没,如图,没变的话那su以后再玩一次)

。重启。
重启之后打开应用程序,按“存储卡”,看下是不是以前很多的程序不在这里显示了(如图), 是的话就说明成功关掉了。


继续。。。。。。。。。开shell....
输入a2sd repair 回车
(在作者发布页的回帖中,我总结了一条经验,用过任何a2sd命令后 执行一次a2sd repair,能有效的预防一些不可预知的负面情况。)

重启,算是搞定了。

看看成果吧。RE管理器,上……(其实我觉得这个管理器很大的优点就是可以看到当前目录的挂载点的空间剩余大小)

data剩116M。。


dalvik cache过去了(从这里可以看出,我的ext分了512M,可怜的4G卡啊,不知还够不够用,我的音乐很多的啊,占了1G多空间)。顺便说下,清dalvik cache缓存。。就直接在这里删吧。全选,删除……


易清理。。。因为已用空间比总空间大(总空间它统计的是data分区的),所以出个负数。


我的htc chacha的mtd(rom)分区情况,在这里可以很清楚的看到。
(system专为rom量身分区的,rom多大分多大,只剩余44kb,没错,44千字节。没关系,system平时可以说是不动的。data区213MB。最后那个sd就是sd卡的ext了,512M,格式化啥的之后只有457MB了)。


ext剩余空间。。没必要这样看,RE管理器就能看到。


程序我已经不放“存储卡”了,关了android原生的a2sd,这些是程序原生支持移至存储卡的。

好了,就写到这里了,大家会发现开机的加载卡内程序的速度快不少。第三方浏览器也可以设默认了。
Android,本来就是用来折腾的,呵呵。

查看完整版本:解放内部存储--Android开启App2sd+

© Strawing Blog

Supported by DHL Author:Wolfit