2012-01-10

【網路轉載】導正一下APP2SD和Link2SD的觀念

原作者dx9901mk5@Mobile01

看到很多人在用這些程式時常搞混,所以先導正一下一些觀念,



1.APP其實分成3+2部分,其中的3就是:
APK(application),程式在運行的執行檔,本身就是一種zip壓縮檔,只是在此給予另一個壓縮命名檔.apk
dex(dalvik-cache),就是java虛擬機器,目的就是為了有能讓程式跑的更順暢些,dex就是其壓縮檔名稱。
Lib(library),你可以當成資料庫

其2:
data:顧名思義就是程式運作時存放紀錄的地方(程式設定檔、遊戲紀錄,以及部分會將"達成某條件即可自行啟動"的特性放在此)
cache:運作中產生的快取暫存區

通常最大的都是apk,lib跟dex與apk相比小很多,幾乎很少看到超過3MB的,大多都是幾kb。
data幾乎微乎其微,破百kb就算多的了,cache可有可無,一般也頂多50kb以內就算大的。


2.APP2SD和APP2SD+(含進階版Link2sd)的作用?

APP2SD是將apk和lib兩個丟到SD卡(如果有分割,只會被丟到第一區)
dex因為跟運作有關,所以被限制只能留在ROM。(但目前還是許多程式不支援APP2SD,且就算能夠移動,系統還是會留下dex)

APP2SD+,是將原本可供使用者安裝程式的ROM區塊整個寫入限制安裝apk的指令,並以SD卡的第二區塊整個替換,好處是APP的3+2部分全都會在上面,原本ROM的部分只會剩下系統本身的app。
但有些程式很容易在這樣的狀態下運作出錯(像部分輸入法),但此時已經無法再使用原本給使用者安裝空間的ROM區塊。

Link2sd是APP2SD+的進化型,好處是可以共用SD第二區塊和原本使用者共用的ROM,且SD卡格式可以使用FAT32的格式,比起系統內部的原始格式甚至ext2~4都要來的有效率,所以很多人會發生程式移動到SD卡(僅限C10以上高速卡)後程式運作反而大幅度加速的原因,因為儲存效率好太多了。
目前最新版可以移動apk、lib和dex,但由於2.3的lib的搬遷暫時會失效一次(搬完後,過段時間apk重讀又會再ROM裡開設一個lib檔案),所以記得剛做好後重開機幾次,再去link2sd按下選單-->更多,從最下面的"清除城市快取"往上做到"重新連結函士庫",做完一次後重開機大致上就不會在搬移失效了。
;至於data和cache目前是不做任何干涉。

APP2SD和APP2SD+含Link2SD是處裡ROM空間的部分,Link2SD有些人RAM一開始有變多算是假象,因為APP本身擁有"達成某條件即可自行啟動"的特性,剛移過去時,原本自行啟動的條件達到,系統要去呼叫APP時卻因為找不到原本的啟動路徑,但apk執行幾次後連結就會被重新改寫(當然也相對的減少系統呼叫一些程式)

原出處:Mobile01 http://www.mobile01.com/topicdetail.php?f=569&t=2160644

沒有留言: