• 4

導正一下APP2SD和Link2SD的觀念。

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

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執行幾次後連結就會被重新改寫(當然也相對的減少系統呼叫一些程式)

2011-05-18 11:16 發佈
感謝詳細的解說

請問
令人不解的事
手機廠商為何不將ROM或RAM加大
是有啥設計瓶頸嗎?非得要像早期286電腦一樣
一天到晚在那搞EMM386記憶體管理優化,才能跑某某某程式遊戲
實在是不夠人性化耶

allenff wrote:
感謝詳細的解說請問令...(恕刪)

我想,成本吧!一般來說都會考量現況的量是否足夠,若足夠,當然就有機會不再增加。
SE今年第一季財報超慘的,看來有點後繼無力 ~~後續手機仍有機會繼續cost down了
Very very good article.

I am thinking whether we should move apk, dex, or both apk + dex to SD 2nd partition (Link2SD)

Assume my SD card is c10, will that be faster for the phone to read, if I put apk and dex separately (just like dual channel)?

And in terms of energy saving (assuming reading SD should use more energy for reading SD), whether I should leave apk or dex in ROM?
gisolury wrote:
Very very ...(恕刪)


要用雙邊的話可以,但效能不增反減喔,因為CPU還是對原本ROM內的位置下指令,只是連結再倒過去Link2sd,效能增加的原因是存取效率,其中一邊還是再ROM的話,會有效率存取不彰的消息。

另外理論上Link2sd後會比較耗電,但實際上我用起來是還好~沒啥感覺
本來使用APP2SD
後來換成Link2SD
但最後還是換回APP2SD
Link2SD能移動幾乎所有的app
對ROM來說很省空間
但耗電的問題 有人覺得會有人覺得不會
另一個是分割的問題
我的卡為16G C10 用 Partition Wizard 分割
第二個partition因為容量較小的關係應該會被限制在16KB 8KB 4KB 以內
第一個partition當然是選32KB
但最後分好可以視著在第一個分割新增一個檔案 然後隨便打幾個字
在PC上檢視這個檔案的大小 發現佔用並不是32KB
表示第一個分割區的format是跟第二個一樣的,並非32KB
這樣錄影會頓
dx9901mk5 wrote:
APK(application),程式在運行的執行檔,本身就是zip壓縮檔指示在此給予另一個壓縮命名檔.apk程...(恕刪)


個人一點點意見,
沒記錯的話apk的壓縮格式是一種符合zip壓縮格式的壓縮包裝檔,
APK的全稱是Android Package,也就是Android安裝程序包裝檔,像java的jar檔也是類似這樣,
所以個人淺見是認為不能說apk本身就是zip壓縮檔,再給予另外一個壓縮檔命!

以上都只是個人的認知,如有錯誤請指正~謝謝~
真的~
我的也是一樣
錄影會頓
怎辦?
請問有解嗎?第二區改成2G Format成32K這樣可以嗎?
但第二區怎備份出來?

我會用Link2SD主要是想讓小工具可以在桌面使用
用APP2SD,桌面小工具不能用,都不能跑了還智慧咧?

所以重點還是記憶體不夠大,又回到早期電腦玩EMM386那套玩法了,(一直到WIN95才脫離魔掌)
很瞎耶,啥時代了

不知廠商加個256MB的ROM可能成本要多加1萬元吧
這問題10年後不知能不能解決

gtspeed9 wrote:
我的卡為16G C10 用 Partition Wizard 分割
第二個partition因為容量較小的關係應該會被限制在16KB 8KB 4KB 以內
第一個partition當然是選32KB
但最後分好可以視著在第一個分割新增一個檔案 然後隨便打幾個字
在PC上檢視這個檔案的大小 發現佔用並不是32KB
表示第一個分割區的format是跟第二個一樣的,並非32KB
這樣錄影會頓...(恕刪)

allenff wrote:
不知廠商加個256MB的ROM可能成本要多加1萬元吧
這問題10年後不知能不能解決...(恕刪)


近期上市的手機
ROM可安裝APP的空間大多有1G以上
其實都很夠用了
應該是不用等到10年後啦

AmigoChiu wrote:
個人一點點意見,沒記...(恕刪)

恩,我'ˇ我這樣說有瑕疵,立刻去修正,謝謝指教^^
  • 4
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?