有沒有哪位能詳細講解一下安卓手機的分區?

我知道的有recovery區,ROM區(系統區,刷機時格式化並刷入新系統),app區(安裝app的,恢復出廠設置時格式化此部分),存儲區(平時放文件的地方)。有沒有哪位能說的更清楚一些?另外,安卓5.0之後的系統不分區了,實際使用也確實沒有應用總大小限制了。但為什麼恢復出廠設置仍然只是清空app,不影響其他文件呢?


Android手機和平板的內部存儲分區列表如下:

/boot /system /recovery /data /cache /misc

另外還有 SD card分區:

/sdcard /sd-ext

請注意只有/sdcard是所有Android設備都有的,/sd-ext只在某些設備上可以看到。現在讓我們分別分析這些分區的內容和功能。

/boot

這個分區上有Android的引導程序,包括內核和內存操作程序。沒有這個分區設備就不能被引導。恢復系統的時候會擦除這個分區,並且必須重新安裝引導程序和ROM才能重啟系統。

/system

這個分區上是除了內核和內存操作之外的整個操作系統。裡面包含了Android用戶介面和預先安裝的系統應用。擦除了這個分區就會刪除掉Andorid系統,所以你需要進入recovery模式或者bootloader模式去安裝一個新的ROM。

/recovery

recovery分區被認為是另一個啟動分區,你可以啟動設備進入recovery控制台去執行高級的系統恢復和管理操作。

/data

這個分區保存著用戶數據。通訊錄、簡訊、設置和你安裝的apps都在這個分區上。擦除這個分區相當於恢復出廠設置,當你第一次啟動設備的時候或者在安裝了官方或者客戶的ROM之後系統會自動重建這個分區。當你執行恢復出廠設置時,就是在擦除這個分區。

/cache

這個分區是Android系統存儲頻繁訪問的數據和app的地方。擦除這個分區不影響你的個人數據,當你繼續使用設備時,被擦除的數據就會自動被創建。

/misc

這個分區包含各種複雜的類似於on/off的系統設置。這些設置可能是USB配置和某些硬體配置信息。這是一個重要的分區,如果該分區損壞或者丟失,設備的功能可能就工作不正常。

/sdcard

這個分區不是內部的存儲區,而是SD card。這是你個人存儲大文件的地方,存儲多媒體文件、文檔、ROM文件等等。如果你備份了這個分區上文件,那麼擦除這個分區將會很安全。不過請注意一些用戶安裝的apps會存儲數據和設置參數到SD card上,擦除這個分區會掉的這些數據。

/sd-ext

這個分區不是Android設備的標準分區,但是在修改版的自定義ROM的情況下變得很流行。

以上就是Android各個分區的功能。當你安裝ROM時或者系統詢問你要刪除某個分區時,你就會準確地知道哪些會丟失哪些不會丟失,因此你就會去備份那些將會丟失文件。


安卓手機一般包括以下標準內部分區:

  • /boot
  • /system
  • /recovery
  • /data
  • /cache
  • /misc

另外還與SD卡分區:

  • /sdcard
  • /sd-ext

boot 分區

一般的嵌入式Linux的設備中.bootloader,內核,根文件系統被分為三個不同分區。在Android做得比較複雜,從這個手機分區和來看,這裡boot分區是把內核和ramdisk file的根文件系統打包在一起了,是編譯生成boot.img來燒錄的。

如果沒有這個分區,手機通常無法啟動到安卓系統。只有必要的時候,才去通過Recovery軟體擦除(format)這個分區,一旦擦除,設備只有再重新安裝一個新的boot分區,可以通過安裝一個包含boot分區的ROM來實現,否則無法啟動安卓系統。

system 分區

這裡是掛載到/system目錄下的分區。這裡有 /system/bin 和 /system/sbin 保存很多系統命令。它是由編譯出來的system.img來燒入。

相當於你電腦的C盤,用來放系統。這個分區基本包含了整個安卓操作系統,除了內核(kernel)和ramdisk。包括安卓用戶界面、和所有預裝的系統應用程序。擦除這個分區,會刪除整個安卓系統。你可以通過進入Recovery程序或者bootloader程序中,安裝一個新ROM,也就是新安卓系統。

recovery分區

recovery 分區即恢復分區,在正常分區被破壞後,仍可以進入這一分區進行備份和恢復.我的理解是這個分區保存一個簡單的OS或底層軟體,在Android的內核被破壞後可以用bootloader從這個分區引導進行操作。

這個分區可以認為是一個boot分區的替代品,可以是你的手機進入Recovery程序,進行高級恢復或安卓系統維護工作。

userdata 分區

它將掛載到 /data 目錄下, 它是由編譯出來的userdata.img來燒入。

這個分區也叫用戶數據區,包含了用戶的數據:聯繫人、簡訊、設置、用戶安裝的程序。擦除這個分區,本質上等同於手機恢復出廠設置,也就是手機系統第一次啟動時的狀態,或者是最後一次安裝官方或第三方ROM後的狀態。在Recovery程序中進行的「data/factory reset 」操作就是在擦除這個分區。

cache 分區

它將掛載到 /cache 目錄下。這個分區是安卓系統緩存區,保存系統最常訪問的數據和應用程序。擦除這個分區,不會影響個人數據,只是刪除了這個分區中已經保存的緩存內容,緩存內容會在後續手機使用過程中重新自動生成。

MISC分區

這個分區包括了一些雜項內容:比如一些系統設置和系統功能啟用禁用設置。這些設置包括CID(運營商或區域識別碼)、USB設置和一些硬體設置等等。這是一個很重要的分區,如果此分區損壞或者部分數據丟失,手機的一些特定功能可能不能正常工作。

SD卡分區

一般默認的是掛載在/sdcard目錄。

這個分區不是設備系統存儲空間,是SD卡空間。從使用上講,這個是你自己的存儲空間,可以隨便你任意存放相片、視頻、文檔、ROM安裝包等。擦除這個分區是完全安全的,只要你把分區中你需要的數據都備份到了你的電腦中。雖然一些用戶安裝的程序會使用這個分區保存它的數據和設置信息,擦除了這個分區,這些程序的數據,比如有些遊戲的存檔,就會全部丟失。在既有內部SD卡和外部SD卡的設備中,比如三星Galaxy S和一些平板電腦,/sdcard分區通常指向內部SD卡。外部SD卡,如果存在的話,會對應一個新的分區,每個設備都不一樣。在三星Galaxy S手機中, /sdcard/sd代表的是外部SD卡,而其它設備,有可能是/sdcard2。與/sdcard不同,沒有系統或應用程序數據會自動存放在外部SD卡中。外部SD卡中的所有數據都是用戶自己添加進去的。在你把分區中需要的數據都備份到了你的電腦中之後,你可以安全的擦除這個分區。

SD卡擴展分區

它的目錄名是 /sd-ext ,它不是一個標準的Android分區,是運行APP2D軟體擴展出來分區。目的是為了多擴展一個安裝程序空間,這個對於Flash空間(或者說ROM空間)不夠,又喜歡安裝軟體的人是有用應用。


首先,安卓內部的分區很多。

其次,遠比其他幾位答主說的分區多。

以下以我的夏普304SH(已真磚)為例

實在懶得寫了,每個分區的用處自己百度。


//魅族MX5 使用adb命令導出系統根目錄分區與/system分區,需要了解哪部分分區,請留言!!!

shell@mx5:/ $ ll
drwxr-xr-x root root 2016-03-18 06:00 acct
drwxrwx--- system cache 2015-09-26 01:09 cache
lrwxrwxrwx root root 1970-01-01 08:00 charger -&> /sbin/healthd
dr-x------ root root 2016-03-18 06:00 config
drwxr-xr-x root root 2015-09-26 00:57 custom
lrwxrwxrwx root root 2016-03-18 06:00 d -&> /sys/kernel/debug
drwxrwx--x system system 2016-03-18 06:00 data
-rw-r--r-- root root 372 1970-01-01 08:00 default.prop
drwxr-xr-x root root 2016-03-18 06:00 dev
-rw-r--r-- root root 127 1970-01-01 08:00 enableswap.sh
lrwxrwxrwx root root 2016-03-18 06:00 etc -&> /system/etc
-rw-r--r-- root root 2821 1970-01-01 08:00 factory_init.project.rc
-rw-r--r-- root root 13943 1970-01-01 08:00 factory_init.rc
-rw-r--r-- root root 33981 1970-01-01 08:00 file_contexts
-rw-r----- root root 1887 1970-01-01 08:00 fstab.mt6795
-rwxr-x--- root root 535680 1970-01-01 08:00 init
-rwxr-x--- root root 605 1970-01-01 08:00 init.aee.rc
-rwxr-x--- root root 1311 1970-01-01 08:00 init.environ.rc
-rwxr-x--- root root 3483 1970-01-01 08:00 init.modem.rc
-rwxr-x--- root root 40644 1970-01-01 08:00 init.mt6595.rc
-rwxr-x--- root root 42097 1970-01-01 08:00 init.mt6795.rc
-rwxr-x--- root root 26414 1970-01-01 08:00 init.mt6795.usb.rc
-rwxr-x--- root root 19937 1970-01-01 08:00 init.project.rc
-rwxr-x--- root root 23541 1970-01-01 08:00 init.rc
-rwxr-x--- root root 1828 1970-01-01 08:00 init.ssd.rc
-rwxr-x--- root root 2433 1970-01-01 08:00 init.trace.rc
-rwxr-x--- root root 3885 1970-01-01 08:00 init.usb.rc
-rwxr-x--- root root 583 1970-01-01 08:00 init.xlog.rc
-rwxr-x--- root root 301 1970-01-01 08:00 init.zygote32.rc
-rwxr-x--- root root 531 1970-01-01 08:00 init.zygote64_32.rc
-rw-r--r-- root root 987 1970-01-01 08:00 meta_init.modem.rc
-rw-r--r-- root root 1563 1970-01-01 08:00 meta_init.project.rc
-rw-r--r-- root root 14813 1970-01-01 08:00 meta_init.rc
drwxrwxr-x root system 2016-03-18 06:00 mnt
dr-xr-xr-x root root 1970-01-01 08:00 proc
-rw-r--r-- root root 9394 1970-01-01 08:00 property_contexts
drwxrwx--- system system 2010-01-01 08:00 protect_f
drwxrwx--- system system 2010-01-01 08:00 protect_s
drwx------ root root 2015-09-24 10:51 root
drwxr-x--- root root 1970-01-01 08:00 sbin
lrwxrwxrwx root root 2016-03-18 06:00 sdcard -&> /storage/emulated/legacy
-rw-r--r-- root root 471 1970-01-01 08:00 seapp_contexts
-rw-r--r-- root root 84 1970-01-01 08:00 selinux_version
-rw-r--r-- root root 266467 1970-01-01 08:00 sepolicy
-rw-r--r-- root root 13878 1970-01-01 08:00 service_contexts
drwxr-x--x root sdcard_r 2016-03-18 06:00 storage
dr-xr-xr-x root root 2016-03-18 06:00 sys
drwxr-xr-x root root 1970-01-01 08:00 system
-rw-r--r-- root root 8589 1970-01-01 08:00 ueventd.rc
lrwxrwxrwx root root 2016-03-18 06:00 vendor -&> /system/vendor

shell@mx5:/ $ cd system/
shell@mx5:/system $ ll
drwxr-xr-x root root 2015-09-24 10:45 app
drwxr-xr-x root shell 2015-09-24 10:45 bin
-rw-r--r-- root root 8189 2015-09-24 10:45 build.prop
drwxr-xr-x root root 2015-09-24 10:45 customizecenter
drwxr-xr-x root root 2015-09-24 10:45 data
drwxr-xr-x root root 2015-10-21 16:30 etc
drwxr-xr-x root root 2015-09-24 10:45 fonts
drwxr-xr-x root root 2015-09-24 10:45 framework
drwxr-xr-x root root 2015-09-24 10:45 lib
drwxr-xr-x root root 2015-09-24 10:45 lib64
drwx------ root root 1970-01-01 08:00 lost+found
drwxr-xr-x root root 2015-09-24 10:45 media
drwxr-xr-x root root 2015-09-24 10:45 priv-app
-rw-r--r-- root root 2175250 2015-09-24 10:45 recovery-from-boot.p
drwxr-xr-x root root 2015-09-24 10:45 res
drwxr-xr-x root root 2015-09-24 10:45 tts
drwxr-xr-x root root 2015-09-24 10:45 usr
drwxr-xr-x root shell 2015-09-24 10:45 vendor
drwxr-xr-x root shell 2015-09-27 00:09 xbin


基本和樓上講的差不多,對於常見的 Android ,分區也會有不同,只是有些分區固定了,不允許刷也沒有重刷的必要

bootloader

recovery

system

radio

boot

userdata

cache

這些是我手機官方刷機包里的所有 img 文件,其中有個 radio 是基帶驅動文件,這個一般不可以重新刷所以刷機的時候是沒有這種文件給你刷的,另外對樓上做個小小的補充,boot 里其實還包括了手機底層一些硬體的驅動


樓上講的很細,稍帶一點就是:我們通常講的「雙清」,清除的就是data分區及cache分區。

而刷機的話,大部分都需要先刷入三方的recovery,即:重刷recovery分區,才能再去刷system分區。

/sdcard分區可能會有兩個,需要看是否支持外置SD卡。一般廠商內置的存儲器會單獨分出一個/sdcard分區,用來給用戶作為基礎存儲區。


推薦閱讀:

如何評價8848鈦金手機廣告中的"成功不是跑得快,不跌跟頭才是成功"這句話?
有哪些深度清理手機垃圾的軟體可以推薦?
小米對美國人說「MIUI 比iOS好用」,你怎麼看?
如何評價董明珠嗆聲雷軍,說雷軍是小偷?
qq6.0的開啟藍牙尋找丟失兒童是什麼原理?

TAG:手機 | 手機ROM | Android | Android第三方ROM | 手機內存 |