TShopping

 找回密碼
 註冊
搜索
查看: 473|回復: 0

[教學] 詳細解說App2sd+與App2sd區別(刷ROM必看)!!!!

[複製鏈接]
發表於 2013-8-6 18:19:51 | 顯示全部樓層 |閱讀模式
 
Push to Facebook Push to Plurk Push to Twitter 
原文出自XDA論壇上8樓的neoKushan

就 如同你的電腦上有硬碟一樣,手機上也有“硬碟”,那就是你的SD卡。如同你在電腦上可以給硬碟分區一樣,sd卡同樣能分區。一般來說,不論你是否分區,你 的sd卡買回來之後,就只有一個很大的fat32區,當然,這個fat32格式的卡,足夠讓你儲存相片,短信,email等等。

在 Android手機上,除了你外置的sd卡以外,還有手機內部快閃記憶體(NAND)。傳統意義上來說,以前你只能將軟體安裝到NAND中而不能把軟體安裝到 sd卡中。於是,尷尬的是,當你有一個32g的sd卡,但只有5mb的內部存儲,你同樣不能安裝多少軟體,裝幾個後手機就提示空間已滿。Android手 機只允許裝到NAND中的一個原因是保護智慧財產權也就是防止盜版。訪問手機內部存儲空間就是一件很麻煩的事情,(一般來說沒有root是完全不可能的)。 正因為訪問很麻煩,所以你很難到那裡面去把app拷貝下來然後再發到網上去讓別人安裝。

但這樣一來,像我們這些很喜歡裝很多app的人,就尷尬了。雖然這些app都是合法拷貝,但是內部存儲空間很快就會耗盡而無法安裝新軟體。

所以,2.2的android,Google給了一種將軟體安裝到sd卡的辦法,這樣就能安裝更多軟體。Sd上會生成一個大概叫做 .android_secure的資料夾,將軟體安裝到裡面。但這個方法有一些問題:

1,軟體不是自動安裝到sd卡中這個資料夾,你需要手動去點擊“移動到sd卡”
2,不是說有的軟體都能被“移動”,事實上很多軟體都不能移動。是否能移動到sd卡,取決於開發者是否更新軟體並允許移動。很多開發者不願意更新。
3,即便能移動過去,不是所有的軟體資料都移動到sd卡,同樣有一些資訊是需要保留在NAND上面的,所以,你的手機照樣會很快就用完內部存儲。
4,你可以通過命令列強制將所有軟體都裝到sd卡上。但這麼做的後果就是,小外掛程式什麼的就不再能用。

這 就是官方2.2的app2sd。但是在2.2出來之前,一些聰明的人搞出來了一個民間的所謂apps2sd。記得之前開頭我說過sd卡就是一個很大的 fat32分區?apps2sd通過將你的sd卡分區成兩個檔案系統,達到將軟體安裝到sd卡的目的:一個如之前一樣的fat32分區,讓你裝之前需要在 sd卡上安裝的東西;另外創建一個ext分區。Ext只是一個檔案系統的名稱,同fat32,ntfs一樣,只是這個ext系統是android內部存儲 用的格式。Sd卡之所以一般都是fat32格式,那是因為這個格式的使用是最廣泛的,windows,linux,都能使用這個格式,而ext格式一般來 說,只是在linux下可以看到並讀取。

Ext格式有不同的版本。最常見的就是ext3。和ext2比起來,最大的不同就是ext3格式 有了“日誌”(Journal)功能。日誌功能最大的好處,就是當你的操作(如對sd進行讀取或者寫作的過程中)因為意外原因別打斷(比如,突然斷電), 那麼,有日誌功能的ext3分區上的檔,不會有任何損壞或者丟失。當我們每次打開我們的電話時,上面總是提示“正在準備sd卡”。每次都提示正在準備, 但其實系統正在做的就是檢查fat32格式是不是損壞,這正是因為fat32格式不具備日誌功能。回想一下以前在windows98年代的日子,每次當我 們並非正確關機或者突然重啟之後,會出來一個帶著掃描進度條的藍屏,這個掃描進度條和現在正在準備sd卡,是一個意思。但當我們後來用 windows 2000、windows xp時,因為這兩個系統開始支援帶有日誌功能的ntfs,所以在這兩個系統下,檔案系統損壞的可能被降低了。

現 在,你應該已經把你的sd卡分好區了:fat32格式和ext格式。至於ext格式是ext3還是ext4,不是很重要。使用ext4,並不會帶來什麼好 處(譯者注:有時候rom不支持ext4,反而麻煩)。當你分好區之後,apps2sd在你的電話上運行一段腳本,從手機的內部存儲創建一個“符號連結” (symbolic links)到sd卡的ext分區上。一個符號連結和快捷方式的意思有點像,但是,一個符號連結對於作業系統來說,是不可見的。換句 話,有了這個對作業系統不可見的符號連結的android系統,當你在安裝軟體到內部存儲的時候,系統無法分辨你是安裝到了內部存儲NAND中還是sd卡 的ext分區中,於是,就這麼瞞天過海,軟體從手機內部存儲安裝到了sd卡上。這樣,這個方式可以很有效的節省你的手機內部存儲。

但是, 這個ext分區在windows下是不可見的。在windows下,你的sd卡像是少了一部分空間一樣,而少的這一部分,就是你的ext分區的空間。比 如,你有一張4g的sd卡,(大概有3.5g的實際使用空間),然後你創造了一個512m的ext分區,這時將卡插到電腦上,windows顯示你的卡就 只有3g了。“失去”的那些空間其實沒有失去,只是被windows無法看到的ext分區使用了。當你重新格式化你的sd卡時,這些空間自然就又會出現。 更重要的是,應為ext格式支援日誌功能,所以這個分區不需要“正在準備sd卡”,意味著這個分區在你手機啟動的一刹那就可以正常的訪問:所有你桌面小工 具啊等等東西,就可以開機運行。(不像2.2的app2sd,開機之後小外掛程式消失)

最後,app2sd和apps2sd+,這兩個概念, 還是有一些區別的。記得之前我說過,所有的程式都是儲存在NAND中的一個資料夾中嗎?其實,這個不準確。準確的說,是儲存在兩個地方。這第二個地方,叫 做Davlik Cache。你其實不需要知道這個東西是什麼,只要知道的是,所有的程式都需要調用這東西來儲存資料,所以,最終這東西也會慢慢的耗掉你 的NAND存儲空間。Apps2sd+就將Davlik Cache也一併移動到了ext分區上,省出更多的空間。一些人認為,這樣會導致性能的損失,因 為他們覺得內部存儲的NAND應該總是比外部的sd卡塊。(這就是為什麼人們總是爭吵到底是class 4還是class 6的sd卡,更適合 apps2sd,這爭吵背後的邏輯就是,更快的卡對性能提升更好)。但事實是,你的程式最後還是從手機中RAM中開始運行,所以,基本上沒有什麼影響。同 時,考慮到大多數的軟體都是幾百k,最多不過1,2mb,其實對性能沒有任何影響。

還有就是,任何最近發佈的apps2sd或者 apps2sd+都可以在任何sd卡上工作,不論這個sd卡是否有ext分區。在手機第一次啟動的時候,它會自動檢查sd卡,如果卡上沒有分區,那麼,它 就自動將程式撞到手機內部存儲中。同樣,即便你的卡有了ext分區,但沒有apps2sd+功能,這也不會引起任何問題。

總而言之:
App2sd“偽造一個內部儲存空間來,然後將程式裝到這裡面去。
App2sd+將更多的東西放到sd卡,省出更多空間。
2.2的apps2sd與之前的app2sd相比,問題多多,但是確實最簡單的一種,因為,他不需要分區。


 

臉書網友討論
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2016-12-12 03:46 , Processed in 0.056840 second(s), 22 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表