回答1:
就如同你的電腦上有硬盤(pán)一樣,手機(jī)上也有“硬盤(pán)”,那就是你的SD卡。如同你在電腦上可以給硬盤(pán)分區(qū)一樣,sd卡同樣能分區(qū)。一般來(lái)說(shuō),不論你是否分區(qū),你的sd卡買(mǎi)回來(lái)之后,就只有一個(gè)很大的fat32區(qū),當(dāng)然,這個(gè)fat32格式的卡,足夠讓你儲(chǔ)存相片,短信,email等等。
在Android手機(jī)上,除了你外置的sd卡以外,還有手機(jī)內(nèi)部閃存(NAND)。傳統(tǒng)意義上來(lái)說(shuō),以前你只能將軟件安裝到NAND中而不能把軟件安裝到sd卡中。于是,尷尬的是,當(dāng)你有一個(gè)32g的sd卡,但只有5mb的內(nèi)部存儲(chǔ),你同樣不能安裝多少軟件,裝幾個(gè)后手機(jī)就提示空間已滿(mǎn)。Android手機(jī)只允許裝到NAND中的一個(gè)原因是保護(hù)知識(shí)產(chǎn)權(quán)也就是防止**。訪問(wèn)手機(jī)內(nèi)部存儲(chǔ)空間就是一件很麻煩的事情,(一般來(lái)說(shuō)沒(méi)有root是完全不可能的)。正因?yàn)樵L問(wèn)很麻煩,所以你很難到那里面去把a(bǔ)pp拷貝下來(lái)然后再發(fā)到網(wǎng)上去讓別人安裝。
但這樣一來(lái),像我們這些很喜歡裝很多app的人,就尷尬了。雖然這些app都是合法拷貝,但是內(nèi)部存儲(chǔ)空間很快就會(huì)耗盡而無(wú)法安裝新軟件。
所以,2.2的android,Google給了一種將軟件安裝到sd卡的辦法,這樣就能安裝更多軟件。Sd上會(huì)生成一個(gè)大概叫做 .android_secure的文件夾,將軟件安裝到里面。但這個(gè)方法有一些問(wèn)題:
1,軟件不是自動(dòng)安裝到sd卡中這個(gè)文件夾,你需要手動(dòng)去點(diǎn)擊“移動(dòng)到sd卡”
2,不是說(shuō)有的軟件都能被“移動(dòng)”,事實(shí)上很多軟件都不能移動(dòng)。是否能移動(dòng)到sd卡,取決于開(kāi)發(fā)者是否更新軟件并允許移動(dòng)。很多開(kāi)發(fā)者不愿意更新。
3,即便能移動(dòng)過(guò)去,不是所有的軟件數(shù)據(jù)都移動(dòng)到sd卡,同樣有一些信息是需要保留在NAND上面的,所以,你的手機(jī)照樣會(huì)很快就用完內(nèi)部存儲(chǔ)。
4,你可以通過(guò)命令行強(qiáng)制將所有軟件都裝到sd卡上。但這么做的后果就是,小插件什么的就不再能用。
這就是官方2.2的app2sd。但是在2.2出來(lái)之前,一些聰明的人搞出來(lái)了一個(gè)民間的所謂apps2sd。記得之前開(kāi)頭我說(shuō)過(guò)sd卡就是一個(gè)很大的fat32分區(qū)?apps2sd通過(guò)將你的sd卡分區(qū)成兩個(gè)文件系統(tǒng),達(dá)到將軟件安裝到sd卡的目的:一個(gè)如之前一樣的fat32分區(qū),讓你裝之前需要在sd卡上安裝的東西;另外創(chuàng)建一個(gè)ext分區(qū)。Ext只是一個(gè)文件系統(tǒng)的名稱(chēng),同fat32,ntfs一樣,只是這個(gè)ext系統(tǒng)是android內(nèi)部存儲(chǔ)用的格式。Sd卡之所以一般都是fat32格式,那是因?yàn)檫@個(gè)格式的使用是最廣泛的,windows,linux,都能使用這個(gè)格式,而ext格式一般來(lái)說(shuō),只是在linux下可以看到并讀取。
Ext格式有不同的版本。最常見(jiàn)的就是ext3。和ext2比起來(lái),最大的不同就是ext3格式有了“日志”(Journal)功能。日志功能最大的好處,就是當(dāng)你的操作(如對(duì)sd進(jìn)行讀取或者寫(xiě)作的過(guò)程中)因?yàn)橐馔庠騽e打斷(比如,突然斷電),那么,有日志功能的ext3分區(qū)上的文件,不會(huì)有任何損壞或者丟失。當(dāng)我們每次打開(kāi)我們的電話時(shí),上面總是提示“正在準(zhǔn)備sd卡”。每次都提示正在準(zhǔn)備,但其實(shí)系統(tǒng)正在做的就是檢查fat32格式是不是損壞,這正是因?yàn)閒at32格式不具備日志功能?;叵胍幌乱郧霸趙indows98年代的日子,每次當(dāng)我們并非正確關(guān)機(jī)或者突然重啟之后,會(huì)出來(lái)一個(gè)帶著掃描進(jìn)度條的藍(lán)屏,這個(gè)掃描進(jìn)度條和現(xiàn)在正在準(zhǔn)備sd卡,是一個(gè)意思。但當(dāng)我們后來(lái)用windows 2000、windows xp時(shí),因?yàn)檫@兩個(gè)系統(tǒng)開(kāi)始支持帶有日志功能的ntfs,所以在這兩個(gè)系統(tǒng)下,文件系統(tǒng)損壞的可能被降低了。
現(xiàn)在,你應(yīng)該已經(jīng)把你的sd卡分好區(qū)了:fat32格式和ext格式。至于ext格式是ext3還是ext4,不是很重要。使用ext4,并不會(huì)帶來(lái)什么好處(譯者注:有時(shí)候rom不支持ext4,反而麻煩)。當(dāng)你分好區(qū)之后,apps2sd在你的電話上運(yùn)行一段腳本,從手機(jī)的內(nèi)部存儲(chǔ)創(chuàng)建一個(gè)“符號(hào)鏈接”(symbolic links)到sd卡的ext分區(qū)上。一個(gè)符號(hào)鏈接和快捷方式的意思有點(diǎn)像,但是,一個(gè)符號(hào)鏈接對(duì)于操作系統(tǒng)來(lái)說(shuō),是不可見(jiàn)的。換句話,有了這個(gè)對(duì)操作系統(tǒng)不可見(jiàn)的符號(hào)鏈接的android系統(tǒng),當(dāng)你在安裝軟件到內(nèi)部存儲(chǔ)的時(shí)候,系統(tǒng)無(wú)法分辨你是安裝到了內(nèi)部存儲(chǔ)NAND中還是sd卡的ext分區(qū)中,于是,就這么瞞天過(guò)海,軟件從手機(jī)內(nèi)部存儲(chǔ)安裝到了sd卡上。這樣,這個(gè)方式可以很有效的節(jié)省你的手機(jī)內(nèi)部存儲(chǔ)。
但是,這個(gè)ext分區(qū)在windows下是不可見(jiàn)的。在windows下,你的sd卡像是少了一部分空間一樣,而少的這一部分,就是你的ext分區(qū)的空間。比如,你有一張4g的sd卡,(大概有3.5g的實(shí)際使用空間),然后你創(chuàng)造了一個(gè)512m的ext分區(qū),這時(shí)將卡插到電腦上,windows顯示你的卡就只有3g了?!笆ァ钡哪切┛臻g其實(shí)沒(méi)有失去,只是被windows無(wú)法看到的ext分區(qū)使用了。當(dāng)你重新格式化你的sd卡時(shí),這些空間自然就又會(huì)出現(xiàn)。更重要的是,應(yīng)為ext格式支持日志功能,所以這個(gè)分區(qū)不需要“正在準(zhǔn)備sd卡”,意味著這個(gè)分區(qū)在你手機(jī)啟動(dòng)的一剎那就可以正常的訪問(wèn):所有你桌面小工具啊等等東西,就可以開(kāi)機(jī)運(yùn)行。(不像2.2的app2sd,開(kāi)機(jī)之后小插件消失)
最后,app2sd和apps2sd+,這兩個(gè)概念,還是有一些區(qū)別的。記得之前我說(shuō)過(guò),所有的程序都是儲(chǔ)存在NAND中的一個(gè)文件夾中嗎?其實(shí),這個(gè)不準(zhǔn)確。準(zhǔn)確的說(shuō),是儲(chǔ)存在兩個(gè)地方。這第二個(gè)地方,叫做Davlik Cache。你其實(shí)不需要知道這個(gè)東西是什么,只要知道的是,所有的程序都需要調(diào)用這東西來(lái)儲(chǔ)存數(shù)據(jù),所以,最終這東西也會(huì)慢慢的耗掉你的NAND存儲(chǔ)空間。Apps2sd+就將Davlik Cache也一并移動(dòng)到了ext分區(qū)上,省出更多的空間。一些人認(rèn)為,這樣會(huì)導(dǎo)致性能的損失,因?yàn)樗麄冇X(jué)得內(nèi)部存儲(chǔ)的NAND應(yīng)該總是比外部的sd卡塊。(這就是為什么人們總是爭(zhēng)吵到底是class 4還是class 6的sd卡,更適合apps2sd,這爭(zhēng)吵背后的邏輯就是,更快的卡對(duì)性能提升更好)。但事實(shí)是,你的程序最后還是從手機(jī)中RAM中開(kāi)始運(yùn)行,所以,基本上沒(méi)有什么影響。同時(shí),考慮到大多數(shù)的軟件都是幾百k,最多不過(guò)1,2m,其實(shí)對(duì)性能沒(méi)有任何影響。
還有就是,任何最近發(fā)布的apps2sd或者apps2sd+都可以在任何sd卡上工作,不論這個(gè)sd卡是否有ext分區(qū)。在手機(jī)第一次啟動(dòng)的時(shí)候,它會(huì)自動(dòng)檢查sd卡,如果卡上沒(méi)有分區(qū),那么,它就自動(dòng)將程序撞到手機(jī)內(nèi)部存儲(chǔ)中。同樣,即便你的卡有了ext分區(qū),但沒(méi)有apps2sd+功能,這也不會(huì)引起任何問(wèn)題。
總而言之:
App2sd“偽造一個(gè)內(nèi)部?jī)?chǔ)存空間來(lái),然后將程序裝到這里面去。
App2sd+將更多的東西放到sd卡,省出更多空間。
2.2的apps2sd與之前的app2sd相比,問(wèn)題多多,但是確實(shí)最簡(jiǎn)單的一種,因?yàn)椋恍枰謪^(qū)。
聯(lián)系客服