找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 1061|回复: 3

【教程】超强——App2sd+与App2sd区别【ZT】。

[复制链接]
发表于 2011-9-20 23:04 | 显示全部楼层 |阅读模式
本帖最后由 金属狂人 于 2011-9-20 23:10 编辑
7 V- o% ^$ }$ S5 s' }8 r/ e, j) W8 @2 O1 G: P3 p4 M1 f8 [$ f: D' [
前言
8 z& I6 @: Y* a  i
- l3 M/ i% r0 u+ M# r; n         app2sd“伪造一个内部储存空间来,然后将程序装到这里面去。1 Z& m  d1 P7 ~4 X8 H

& O  b( t% w! @6 i/ x         App2sd+将更多的东西放到sd卡,省出更多空间。
# z  [, Z6 ]$ M% w: m* B
+ o0 ^- F; P6 F         详解请看下文,有点电脑基础的人更容易看懂。
% _; N* b. U( S5 `
* S4 Q$ A% X# y" z0 z         就如同你的电脑上有硬盘一样,手机上也有“硬盘”,那就是你的SD卡。如同你在电脑上可以给硬盘分区一样,sd卡同样能
1 V6 o6 a/ }. b/ N) u8 I) p$ L8 r, ^# Q, n( [
分区。一般来说,不论你是否分区,你的sd卡买回来之后,就只有一个很大的fat32区,当然,这个fat32格式的卡,足够让你储
) R1 z& X6 S8 f4 S" t( K
! ^( [( E% a* g$ i" b/ E0 k存相片,短信,email等等。在Android手机上,除了你外置的sd卡以外,还有手机内部闪存(NAND)。传统意义上来说,以前
3 D% Z, t. w* r" M& l" Y1 \
; i7 Z8 m" e- w& K9 W4 x4 R! o" Q% P8 [. K4 ?8 P3 L6 e% r; K5 p  S
你只能将软件安装到NAND中而不能把软件安装到sd卡中。于是,尴尬的是,当你有一个32g的sd卡,但只有5mb的内部存储,
; e4 E7 H+ A& @' _
. Y" o. T3 N, u: X" J同样不能安装多少软件,装几个后手机就提示空间已满。Android手机只允许装到NAND中的一个原因是保护知识产权也就是防止& K5 I0 b6 i- {7 F5 z
7 y, {8 V* P, a' M2 o
盗版。访问手机内部存储空间就是一件很麻烦的事情,(一般来说没有root是完全不可能的)。正因为访问很麻烦,所以你很难
0 e: X- @. U/ F& B
* F# u, Y. a9 d到那里面去把app拷贝下来然后再发到网上去让别人安装。
0 S8 h; K9 X: }: h, H( W3 x: A5 [; H+ _+ v3 j% w* _4 W, Y
但这样一来,像我们这些很喜欢装很多app的人,就尴尬了。虽然这些app都是合法拷贝,但是内部存储空间很快就会耗尽而无- T4 @2 l5 V* G' z* i7 a* y) {

% `' w- |! {$ ?* \! H6 w法安装新软件。所以,2.2的android,Google给了一种将软件安装到sd卡的办法,这样就能安装更多软件。Sd上会生成一个大概
; `, B7 a; n$ @) x6 [  R" R- J/ C& j% s. `# i3 K
叫做 .android_secure的文件夹,将软件安装到里面。但这个方法有一些问题:
, ]7 w% N& A7 ~4 J0 C( B! g" \  l$ }! o7 ?
        1,软件不是自动安装到sd卡中这个文件夹,你需要手动去点击“移动到sd卡”" Y) @! Y8 _1 Q) x. {. w* v; p1 {
0 g8 H5 G) J4 ]: m) M9 n' e  f
        2,不是说有的软件都能被“移动”,事实上很多软件都不能移动。是否能移动到sd卡,取决于开发者是否更新软件并允许移
* u. r, U1 l5 u# X4 G" D
5 s* e; Z/ ~' r: n/ o6 q动。很多开发者不愿意更新。' S; x3 [& m4 t) K
1 g- e7 q( V3 k* L, b& s
        3,即便能移动过去,不是所有的软件数据都移动到sd卡,同样有一些信息是需要保留在NAND上面的,所以,你的手机照
( R4 A. e. u, P! k# h& {& b5 V" s0 {* `- K. ^. r* w) g& v
样会很快就用完内部存储。* [' f7 P( j5 L" f% z; _1 F- X

) @( Y: {& k" d% Y        4,你可以通过命令行强制将所有软件都装到sd卡上。但这么做的后果就是,小插件什么的就不再能用。这就是官方2.2的3 G" F6 Z! V2 I; O, Q

+ s. D4 {+ u  ^8 N) t$ l5 W) W" Zapp2sd。但是在2.2出来之前,一些聪明的人搞出来了一个民间的所谓apps2sd。记得之前开头我说过sd卡就是一个很大的fat32分5 X' y. o; z  L1 E* d4 z

+ I% Z- S  d3 R( B, S区?apps2sd通过将你的sd卡分区成两个文件系统,达到将软件安装到sd卡的目的:一个如之前一样的fat32分区,让你装之前需
; e/ t5 Z% i9 X0 y- D* X, O; g1 Z& j$ F3 D- T: z7 L- _
要在sd卡上安装的东西;另外创建一个ext分区。Ext只是一个文件系统的名称,同fat32,ntfs一样,只是这个ext系统是android1 N0 }6 f. X7 C/ N2 i! U
0 [+ A/ @8 O( B3 R) w7 a
内部存储用的格式。Sd卡之所以一般都是fat32格式,那是因为这个格式的使用是最广泛的,windows,linux,都能使用这个格" p8 h8 Z" Z5 _( C' ^) z
6 C+ l  c0 s+ h4 y
式,而ext格式一般来说,只是在linux下可以看到并读取。Ext格式有不同的版本。最常见的就是ext3。和ext2比起来,最大的不9 u5 H+ C2 ?$ V3 ?

* [6 w6 M" Y) F4 q/ |. Z3 b同就是ext3格式有了“日志”(Journal)功能。日志功能最大的好处,就是当你的操作(如对sd进行读取或者写作的过程中)因7 I0 Y; ~9 a4 M  A8 i
  I; H" Y% C' i$ i& b* A
为意外原因别打断(比如,突然断电),那么,有日志功能的ext3分区上的文件,不会有任何损坏或者丢失。当我们每次打开* f; ?2 G" Y' m: g+ s
4 A* f" ^! @' H6 W- m/ p
我们的电话时,上面总是提示“正在准备sd卡”。每次都提示正在准备,但其实系统正在做的就是检查fat32格式是不是损坏,这3 t4 @# x3 V8 c
4 x! F4 n6 a# c2 q  a" _4 {
正是因为fat32格式不具备日志功能。回想一下以前在windows98年代的日子,每次当我们并非正确关机或者突然重启之后,会
& Q0 k0 v: M( i3 v" C: V( `0 }* [- J/ P
出来一个带着扫描进度条的蓝屏,这个扫描进度条和现在正在准备sd卡,是一个意思。但当我们后来用windows 2000、* l' B% @3 r# B* d

. }+ t: p" h6 b' K9 k& K* gwindows xp时,因为这两个系统开始支持带有日志功能的ntfs,所以在这两个系统下,文件系统损坏的可能被降低了。$ \0 M* p$ M- B4 _; i

# E# H3 n( Z; j/ ~" o3 J了:fat32格式和ext格式。至于ext格式是ext3还是ext4,不是很重要。使用ext4,并不会带来什么好处(译者注:有时候rom不
5 m7 Q" y$ j& ?2 d7 M5 ]
5 [2 S- M) _. C' s$ d) F支持ext4,反而麻烦)。当你分好区之后,apps2sd在你的电话上运行一段脚本,从手机的内部存储创建一个“符号链接”: k0 o9 _7 e8 x% V
1 o' M/ L* ~3 S6 B
(symbolic links)到sd卡的ext分区上。一个符号链接和快捷方式的意思有点像,但是,一个符号链接对于操作系统来说,是不
- E( m) D: W3 s' r, Y! |# A  \3 T$ b  [9 }. G
可见的。换句话,有了这个对操作系统不可见的符号链接的android系统,当你在安装软件到内部存储的时候,系统无法分辨你; Y* G1 A" k; {5 T
! X1 @8 H1 E6 M) e; P' N7 y- ]* O
是安装到了内部存储NAND中还是sd卡的ext分区中,于是,就这么瞒天过海,软件从手机内部存储安装到了sd卡上。这样,这. c' p% p" g0 G! r1 \) g
# r) a7 K: Y/ M7 U5 l" j
个方式可以很有效的节省你的手机内部存储。
9 P. P6 y1 }+ \. l! V1 ^
1 i: D5 `  _3 Q  K, {        但是,这个ext分区在windows下是不可见的。在windows下,你的sd卡像是少了一部分空间一样,而少的这一部分,就是你的; ]- y, t+ x5 T# m$ A6 Z+ x. o3 w

, h) Z9 ?. f6 H! [  w, f* bext分区的空间。比如,你有一张4g的sd卡,(大概有3.5g的实际使用空间),然后你创造了一个512m的ext分区,这时将卡插5 S# ~0 [# X1 }, b' c

* u9 Z  M# D# b, h到电脑上,windows显示你的卡就只有3g了。“失去”的那些空间其实没有失去,只是被windows无法看到的ext分区使用了。当你
+ f2 t0 H/ ]8 o& n5 C% I
4 }0 k9 a8 k- Y. Z重新格式化你的sd卡时,这些空间自然就又会出现。更重要的是,应为ext格式支持日志功能,所以这个分区不需要“正在准备sd+ L6 Y- x5 v8 Y2 m7 m

( \$ g* M% X+ }卡”,意味着这个分区在你手机启动的一刹那就可以正常的访问:所有你桌面小工具啊等等东西,就可以开机运行。(不像2.2的' W- |/ I4 y, R/ M7 j* p7 ?8 p

7 s6 c. ^, [0 s% f+ A. Eapp2sd,开机之后小插件消失)
1 b7 B+ m' J  K+ k) P; z- \- g+ h  p3 g: y+ }% ?
         NAND存储空间。Apps2sd+就将Davlik Cache也一并移动到了ext分区上,省出更多的空间。一些人认为,这样会导致性能9 D9 H3 l/ R: o, I1 V+ o* m

% J9 B5 q0 K% z3 A: r0 u; T的损失,因为他们觉得内部存储的NAND应该总是比外部的sd卡块。(这就是为什么人们总是争吵到底是class 4还是class 6的sd
3 A7 |1 j" n& E: |" u: o. P& N! ]
: I4 h: W9 h0 r) `卡,更适合apps2sd,这争吵背后的逻辑就是,更快的卡对性能提升更好)。但事实是,你的程序最后还是从手机中RAM中开始
) [9 B& D# S0 m6 A
9 U! w: B, h& v: i5 z6 u4 L运行,所以,基本上没有什么影响。同时,考虑到大多数的软件都是几百k,最多不过1,2m,其实对性能没有任何影响。还有就( `( Z" r" l8 |$ ^9 ^

* N% J; _5 p8 [& |是,任何最近发布的apps2sd或者apps2sd+都可以在任何sd卡上工作,不论这个sd卡是否有ext分区。在手机第一次启动的时( a4 W, b5 S/ A! n5 e. p4 w
5 q8 b& Q9 ], Y7 f8 v. z! G
候,它会自动检查sd卡,如果卡上没有分区,那么,它就自动将程序撞到手机内部存储中。同样,即便你的卡有了ext分区,但
, ~8 C- f" z: }" R- R8 u4 ?% V' [! e8 T3 l- Q! X
没有apps2sd+功能,这也不会引起任何问题。
回复

使用道具 举报

发表于 2011-9-21 10:55 | 显示全部楼层
orz
; {" f6 X# }5 ?- @1 x5 a% P8 {) h3 a1 }6 t- l
来自 通讯微世界 的新浪微博
回复 支持 反对

使用道具 举报

发表于 2011-9-21 19:25 | 显示全部楼层
orz0 U2 X. @. @6 m8 b2 X
0 ]4 D# V- s: Q
来自 通讯微世界 的新浪微博
回复 支持 反对

使用道具 举报

发表于 2011-9-22 02:55 | 显示全部楼层
orz4 U) ~$ _) F+ O; [" I

2 G/ l) h5 I" y7 s0 | 来自 通讯微世界 的新浪微博
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

QQ|Archiver|手机版|小黑屋|吹友吧 ( 京ICP备05078561号 )

GMT+8, 2025-4-4 14:46 , Processed in 0.257922 second(s), 16 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表