Android軟體分享 - [分享文] 使用 A2SD 時,資料存放的位置解說。 - 手機

前往內容


[分享文] 使用 A2SD 時,資料存放的位置解說。


在這裡上傳方便觀看,清晰的原圖在這裡


當官方推出 A2SD 後,我們的資料存放的方式已變成四種,如圖中所示。

有很多用家新手對相關設定,或者是一些系統/程式所提供的資訊有不理解/誤解的情況。
例如:用了非官方的A2SD後,為甚麼在 SD 上看不到程式?
              為甚麼在程式管理中 Apps 還是安裝在內存中?

一切就如上圖一樣,系統上的狀況並不會跟我們實際上的認知一致。
對系統來說 SD Card 只是一個 FAT32 分區,位於 /sdcard/ 中。
Ext2/3/4 被認定為內存的一部份,位於 /system/sd/ 中(不同 rom 會有出入)。

官方預設的 user apps 安裝位置在 /data/app/,system apps 在 /system/app/。
非官方 a2sd 的話,userapps 在 /system/sd/app/,system apps 不變。
官方 a2sd 的話,userapps 在 /system/app/、 /mnt/asec 和 /mnt/secure(/mnt/ 也是 sdcard 的一部份,受保護),system apps 不變。

我們平常用的 SD Card 是 FAT32 分區,所以不論用那種 a2sd,也不會在 /sdcard/ 上看到 apps 的。


也有另一個常見的兩個誤解:
1. Spare Parts 中的 App2sd(Where to store apps) <- 也有其他 app 有這設定。
2. 設定中的管理應用程式,移至 SD 卡或相反的選項

這兩個也是針對 官方 a2sd 的設定,所以...
內存(Internal)的意思是:
非官方 a2sd → Ext2/3/4 分區(/system/sd/app/)
官方 a2sd → ROM(/data/app/)
SD Card 的意思則是:
非官方 a2sd → Ext2/3/4 分區 + SD Card(/mnt/asec 和 /mnt/secure)
官方 a2sd → ROM + SD Card(/mnt/asec 和 /mnt/secure)


最重要的理解方法是以系統的角度去理解,弄清楚自己使用中的和設定中的是甚麼。
圖中已經非常清楚顯示了系統和實際上的差異,希望對新手們有所幫助。
My Blog: http://parsue.blogspot.com Google+: http://goo.gl/pOBjo
seto_613 wrote:
在這裡上傳方便觀看,...(恕刪)


官方預設的 user apps 安裝位置在 /data/app/,system apps 在 /system/app/。
非官方 a2sd 的話,userapps 在 /system/sd/app/,system apps 不變。
官方 a2sd 的話,userapps 在 /system/app/、 /mnt/asec 和 /mnt/secure(/mnt/ 也是 sdcard 的一部份,受保護),system apps 不變。




哇屋~~好文一篇!~!!

細細品嚐中~~


謝謝大大嚕~︿︿
好文一篇,對新手幫助極大,seto_613大大的文章都有深入
具有收藏價值~
很不少心地,圖解有一處錯誤:

在 Both A2SD 的部份,User Apps(黃色)並非跨越 ROM+Ext+SD,而只是 EXT+SD 而已。
My Blog: http://parsue.blogspot.com Google+: http://goo.gl/pOBjo
最近改用 A2SD+,發現真的好用多了。

不過也發現並不是和我以前想的一樣,所有 app 的資料能放到 EXT 分區。以下三個目錄是可以放到 EXT 分區的

/data/app -> /system/sd/app
/data/app-private -> /system/sd/app-private
/data/dalvik-cache > /system/sd/dalvik-cache

但 /data/data 並不會有 symbolic link 到 /system/sd/data。爬了一下文,發現有人試著手動將這些資料搬過去,但會被 A2SD+ 的開機 script 搬回來,應該是搬過去後有些程式跑起來並不穩定,所以才保留在原位置。

因此灌有些程式後,/data 分區的可用空間還是會變少。A2SD+ 並不是完全不吃 /data 空間的。
warlocky wrote:
最近改用 A2SD+...(恕刪)



閣下很細心呢~~

其實這是應該的,除了在運作效能上有助益外,還對 SD Card 的去壽命有好處。


先說說一個 App 的資料流吧。
 **這一部份適用於現今所有系統!

先分成以下部份:
 A。App 程式本身 - 固定的資料,不會變化,不會改動。
 B。Data 數據 - 數據資料庫(Database)。
 C。Cache 暫存 - 程式運作是所產生的數據。
 D。Dalvik Cache - Android 上的 System Cache。
    **分成屬於A和系統兩部份
 E。其他 - 連繫第三方以外所產生的資料。
    **分成屬於A和E兩部份

作用:
 A。本體,起動和運作的必要存在。
 B。A的固有數據庫,運作時會使用/修改到,只有A自己會用到。
 C。記錄一些非永久性的資料,可以共用。
 D。呼叫系統程序所需,Android 上叫 Dalvik,也就是 Java,不一定會有。
 E。呼叫非系統和非本體時所需(常見如Add-on),不一定會有。

資料流(Data Flow):
 1。執行程式時,A和B會被讀取,並放到RAM中,只讀取一次。
    **在完成時,系統才會執行程式。
 2。在程式運作時,會不斷讀寫B、C、D、E的資料。
 3。在程式結束時,系統會依A的結束程序:
    ○把B寫到ROM中
    ○系統預設是把C清除,但也會有程式寫成保留或不處理
    ○D的運作因應系統而定
    ○E的運作因應E而定

在運作是,不論是 HDD/SSD/Flash 也好,在同一組件上並不能同時讀和寫,也不能同時處理兩組資料,必須隊輪著去處理。
RAM的讀寫速度快,有直接寬大的 Gateway 和 CPU 溝通,所以A和B也在RAM中執行。
由於RAM有登錄屬性,A的資料不能被A以外使用,所以CDE會放在可共用的ROM上。
由於讀寫特性,和讀寫壽命(次數),如果CDE分開放在不同組件上的話,在運作上效能會提高,壽命也相對增加了。

為何會強制D來放於ROM中?
因為D是 System Cache,系統程序運作用的資料,放在系統所在的ROM中反而合理和安全。
而且D和E也不是A本身的產物,硬要放到A的身邊是沒有任何意義。
My Blog: http://parsue.blogspot.com Google+: http://goo.gl/pOBjo
分區完後,SDCARD格式化後還要再重新分區嗎?
張晉銘 wrote:
分區完後,SDCAR...(恕刪)



你是格式化分區,還是格式化整張 SD Card??

你把每個分區當成是不同的硬碟也可以,格式化分區並不會影響到其他分區的。
My Blog: http://parsue.blogspot.com Google+: http://goo.gl/pOBjo
warlocky wrote:
最近改用 A2SD+...(恕刪)


您好,可以請教一下您是參考哪篇 A2SD+ 的教學文章嗎?

因為,Google 大多只能只找到 A2SD,所以留言請教一下
好奇的問一個關於 A2SD 的問題

有沒有人遇到過這個問題

我用的是 NEXUS,

有設定了幾個軟體移動到SD..

最近不知道怎麼搞得...

這些軟體全部失效..

按在桌面的ICON,, 都講說"應用程式尚未安裝到手機.."

ICON 上面的圖示也全變成了白底的小綠機器人圖示..
我的相簿 http://www.imagegateway.net/a?i=InpmXKd2po 世界宇宙無敵超可愛.. "北極熊"

1頁 (共2頁)

前往