為什么Android手機的ROM和RAM顯示的都不是最大值?如標稱為ROM:512MB,RAM:512MB,實際ROM:350MB,RAM:350MB。想知道原因嗎?答案在這里。
簡單的來說,拿就ROM來說,一部分是被BootLoader和Radio占用了,當然如果你要忘記了算system占用的,那么ROM就顯得更少了,個別的系統還會自己定制一個空間用來存儲特殊需要的功能,比如CD機模擬等,也會占用ROM空間。
同樣,對于RAM來說,同樣的道理,一部分被BP(Radio等)占用,用于處理通話和modem,當然也有部分設備在BP部分使用了單獨的內存,但相對比較少見。還有一部分被顯存占用了,這個和windows上一樣的道理。
產品給出的那個值都是理論值,當然它也確實有這么大。但是我們的手機并不是裸機呀,你要安裝系統啊,然后這部分會占用一定的RoM。另外,手機會分配一定空間作為緩存空間。最后剩下的就是用來安裝軟件的硬盤。
同理,RAM也是這個原理,開機后會分配一定空間運行安卓系統,剩下的才是給你來運行第三方軟件的。所以不管怎么看,實際值小于理論值是很正常的。
曾經有一個疑問,既然在電腦內存中,ROM指的是正常情況下不可擦寫的存儲器,那為什么手機上的ROM是可以安裝app的呢。
下面我們大體了解下手機內存:
運行內存與物理內存(也即所說的RAM和ROM)
智能手機的內存分運行內存RAM(系統內存)和物理內存ROM(非運行內存)兩種:
①手機的運行內存相當于電腦的內存,即RAM(隨機存取存儲器Random Access Memory);RAM越大,手機能在運行狀態下運行多個程序且流暢。當RAM不足的時候就會提示「Out of memory」錯誤。因為軟件運行的時候都要從外存上調入內存RAM,CPU是跟RAM通信的。CPU不直接跟外存通信,因為RAM存取速度比外存快多了。手機運存(RAM)決定手機的速度和處理強度。手機系統內存RAM一般使用進程管理之類的軟件來查看。剛開機的時候的手機系統內存是最大的,開機后來電管家、防火墻、自動鎖鍵盤等軟件就自動運行并且常駐內存。
②手機的非運行內存,相當于電腦硬盤的系統分區,即ROM(Read-Only Memory);ROM越大,就像硬盤越大,能存放更多的數據。
這里就出現矛盾了!為什么手機ROM相當于電腦硬盤? 眾所周知,內存在電腦上的概念包含了ROM和RAM,那為何現在手機ROM卻跟電腦硬盤等同了呢。
經過查資料我發現:之所以等同,那是因為ROM可永久保留數據的特性,再加上現在已近實現了ROM的可擦寫功能,這樣最終來看,ROM的所有功能跟硬盤的功能確實如出一轍。
換句話說:以前的ROM由于只能一次寫入,修改起來相當麻煩且價格昂貴。所以只能存儲一些不會更改的數據,比如主板BIOS信息,具體需要修改的數據還是要交給硬盤處理。但隨著時代進步,可擦寫的ROM,尤其是“閃存”這種新型rom的出現,已經使得我們拋棄硬盤成為了可能。
舉個例子:我們經常在裝系統的時候,把PE系統做到優盤里面,用優盤啟動電腦進入PE系統。這樣進入后的系統,跟硬盤無關。完全就是閃存這種ROM當做存儲操作系統的地方,內存條RAM當做系統和軟件運行空間。 這其實就是當前手機內存的組成原理。 手機ROM就是優盤,手機RAM就是內存條。
再舉個例子:某款安卓手機小C的rom為4G,除掉系統分區,其他的虛擬為內置sd卡,其實就一個4G的閃存芯片,你可以簡單理解為分為了3個區(系統區+用戶數據區+內置sd區),事實上分區很多。
現在的手機rom大部分都是這樣設計,比如三星和華為的手機都是這樣,標稱的大rom實際上大部分都虛擬成了內置sd。
所以,由于是分區時設置的容量,rom是可以調整的,比如一塊硬盤上,c盤和d盤、e盤的大小都是可以調整的,區別是安卓系統用戶自己很難調整。
先看安卓的分區,安卓系統一般把rom芯片分成7個區,如果再加上內置sd卡這個分區,就是8個:
hboot分區----------負責啟動。
radio分區----------負責驅動。
recovery分區-------負責恢復。
boot分區-----------系統內核。
system分區---------系統文件。
cache分區----------系統緩存。
userdata分區-------用戶數據。
大家看到沒有,前6個區的容量在系統信息里面是看不出來的,我們看到的rom總容量,其實就是第7個區userdate區的大小,這個區主要裝一些軟件,是用戶可以使用的分區。這個分區的大小直接影響到安裝軟件的數量。也就是說userdate區就是我們常說的“可用rom”
在安卓里,雖然軟件可以安裝到卡中,但是一些系統軟件最好還是安裝到userdata分區,否則會出現加載的一些小問題,比如使用的桌面軟件和一些在桌面上顯示插件的軟件。并且就算你把軟件都裝到卡里,userdata分區還是會不斷減小。就像在電腦里,就算你把軟件裝到D盤,仍然會在c盤生成一些系統文件,占掉c盤空間一樣。
關于手機顯示的RAM是減去了顯存剩下的,手機屏幕分辨率越大,屏幕尺寸越大,需要的顯存就越大,另外安卓系統本身要用掉一些運存,這個因手機而異,所以會造成有的1G RAM的手機通常在設置里面查看只有600多。
網絡資料:(請著重看下文藍色標注部分)
以前ROM一旦出廠后上面存儲的數據就無法改寫或刪除,同時數據不會因斷電而丟失。后來,一種新型的EEPROM(電子式可抹除可編程只讀內存)代替了原來的ROM。再后來,Flash Memory(閃存)代替了EEPROM,閃存可以很容易的改寫。現在我們說智能手機中的ROM一般指的是Flash Memory(NOR型)。
在Android手機中,一部分ROM被安裝了操作系統(固件包),也有可能預裝了很多程序,就像Windows的系統盤,這部分被保護起來(可能通過軟件設置的權限保護而不是硬件保護,root手機之后能夠對這部分區域進行讀寫),對于普通用戶ROM是只讀的,只有獲得操作系統的最高權限(Root)才能向里面寫入數據,也就是我們所說的刷ROM包。另外一部分ROM空間分配給用戶用來存儲數據,這部分區域仍舊稱為「只讀」,但已經完全脫離了「Read-Only Memory」,被稱作「手機內部存儲」或「機身內存」,與外部存儲「內存卡」相對。
手機存儲和存儲卡(經過上面的解釋我們應該明白:手機存儲就是手機內部ROM可擦寫閃存,存儲卡就是外部手工插上的閃存SD類型卡)
平時在安裝程序的時候,會被提示是裝在手機存儲和存儲卡里。盡量要把大文件放到內存卡里,因為手機儲存要預留一些空間做緩存(比如電腦上好多聊天記錄或者存檔文件會存儲到c盤),太滿了會影響手機系統的運行,就像電腦系統C盤。
不過對于用戶來說 ,沒有相關常識的用戶可能會比較迷惑。 我很贊賞apple對這樣的問題的處理方式,apple一直直觀地引導用戶理解產品的功能和性能而不是宣傳其技術參數,比如ipod可以存xxxx首歌,等等。
從宣傳的角度來講:一般用戶都以為大就比較好,利于宣傳產品的性能,甚至有些還虛標。從技術的角度來講:說最大值也沒錯,因為被系統占用了一部分或可見或隱藏而已。
另外根據硬件廠商的慣例,存儲的容量廠商都是按照1000算的,不一致。曾經發生過有人買了500GB買了一款500G的移動硬盤發現容量只有465G,然后認定是虛標欺詐去退貨,商家很無辜的事情。
暫時沒想到1000進制的意義何在?一張32G的SD卡,顯示29G也好(1024進制),顯示31.9G也好(1000進制),它始終就是固定那么大的。不會因為你顯示的多了,就感覺容量大了。這似乎是一種掩耳盜鈴的行為。
同理,如果手機上是1000進制,跟電腦上的計算方式將會不同,但是按照1024換算的時候,會顯示偏小。