1. 安卓手機的rom和ram怎麼分區
安卓手機的rom和ram區分:
ROM和RAM介紹。
ROM是英文ReadOnlyMemory的首字母的縮寫,也就是說存儲器只能讀不能寫。 RAM是英文RandomAccessMemory的首字母的縮寫,則是可以隨機讀寫的意思。但是,在計算技術突飛猛進的這幾年裡, RAM和ROM的定義也發生了不少的改變。現在ROM通常指固態的存儲器,或者說,不掉電。系統停止供電的時候它們仍然可以保持數據。而RAM通常都是斷電電之後就沒有數據的,典型的就象計算機的內存,需要系統重新啟動的時候從硬碟重新載入數據。
手機上的ROM。
不過手機上的ROM和我們一般意義上定義的ROM不同,因為雖然手機上的ROM是可以儲存東西,但是我們在一般情況下只能讀取不能寫入,這也就是為什麼其叫做「只讀儲存器」的原因,只有在特定的專業條件下,我們才可以往ROM裡面寫入東西。鑒於ROM的這種特殊性,很多手機的系統文件都存儲在手機的ROM里,這樣在一般情況下我們就無法修改手機的系統文件,不過目前通過一些特殊的手段,我們也可以實現往ROM裡面寫入東西,這種情況其實也就是我們經常所說的刷機、刷系統,因此這也被大家叫做刷ROM。綜上所述, 手機上的ROM是指手機系統及可安裝程序的空間,ROM越大,能直接在系統里安裝的程序就越多,相當於我們電腦的C盤。 當然ROM空間也是越大越好。不過現在很多程序都可以完全安裝到內存卡(自從不可添加內存卡的手機出現,軟體大多被安裝在內置SD卡裡面。甚至有些大ROM的手機都分出了足夠大的DATA分區,用來存儲安裝程序。當然這都是題外話,我們今天要說明的是區分ROM和RAM,其他的就不在贅述了),所以這個指標對於一個手機配置來說就看來不是那麼重要了,但是也不能太小,太小了,我們知道,安卓手機系統版本經常要升級,新版本有時候需要更大的ROM空間才能存儲,我們選擇手機的時候,看當下情況,始終就行,只是讓大家知道ROM的大小和手機運行快慢沒有絕對的關系。
手機上的RAM。
手機上的RAM是指系統運行及軟體運行可需要的臨時空間,跟電腦上的內存是相同的意思。 RAM越大,可同時運行的程序就越多,一些需要大量RAM的游戲也越流暢。同等cpu配置的情況下,RAM越大運行就越流暢。同樣的道理,開機系統服務及一些軟體自動後台運行,都會佔用一部分RAM空間。如果廠家說明是2GB,實際開機後你看到的卻遠遠少於2GB,這也是正常的。這個RAM是越大越好。當然,RAM越大價格肯定越貴。
手機上RAM的存儲機制與特點。
再來跟大家談談android系統的RAM內存分配機制,其實在用安卓手機的時候,不用太在意剩餘內存,Android上的應用是java,當然需要虛擬機,而android上的應用是帶有獨立虛擬機的,也就是每開一個應用就會打開一個獨立的虛擬機。如果你知道java,就能更清楚這機制了。其實和java的垃圾回收機制類似,系統有一個規則來回收內存。進行內存調度有個閥值,只有低於這個值系統才會按一個列表來關閉用戶不需要的東西。當然這個值默認設置得很小,所以你會看到內存老在很少的數值徘徊。但事實上他並不影響速度。相反加快了下次啟動應用的速度。這本來就是android標榜的優勢之一,如果人為去關閉進程,沒有太大必要。特別是使用自動關進程的軟體。到這里有人會說了,那為什麼內存少的時候運行大型程序會慢呢?其實很簡單,在內存剩餘不多時打開大型程序,會觸發系統自身的調進程調度策略,這是十分消耗系統資源的操作,特別是在一個程序頻繁向系統申請內存的時候。這種情況下系統並不會關閉所有打開的進程,而是選擇性關閉,頻繁的調度自然會拖慢系統。所以,有個更改內存閥值的程序可以有一定改善。但改動也可能帶來一些問題,取決於值的設定。 那麼,進程管理軟體有無必要呢?有的。就是在運行大型程序之前,你可以手動關閉一些進程釋放內存,可以顯著的提高運行速度。但一些小程序,完全可交由系統自己管理。
android後台原理。
那麼,如果不關程序是不是會更耗電。說說android後台的原理,你就明白了android的應用在被切換到後台時,它其實已經被暫停了,並不會消耗cpu資源,只保留了運行狀態。所以為什麼有的程序切出去重進會到主界面。但是,一個程序如果想要在後台處理些東西,如音樂播放,它就會開啟一個服務。服務可在後台持續運行,所以在後台耗電的也只有帶服務的應用了。這個在進程管理軟體里能看到,標簽是service。我們可以把帶服務的進程用進程管理軟體關閉就可以了。沒有帶服務的應用在後台是完全不耗電的,沒有必要關閉這種設計本來就是一個非常好的設計,下次啟動程序時,會更快,因為不需要讀取界面資源,何必要關掉他們抹殺這個android的優點呢。
2. 如何解除手機設備封禁
1、首先,找到手機桌面上系統自帶的【設置】功能並且點擊進入設置主頁面。
3. Android內存的相關排查方法
mpsys meminfo 是Android系統提供的查詢內存命令,用該命令可以看到:
每個進程佔用的物理內存大小
系統內存分布狀態,包括
總的可用物理內存 Total RAM
當前可用物理內存 Free RAM
已用物理內存 Used RAM
不可見內存 Lost RAM
比如輸入該命令後輸出如下日誌:
該命令列印的最後一部分,反應系統級別的內存狀況:
Total RAM: 1015868 kB
Free RAM: 638914 kB (105418 cached pss + 180168 cached + 353328 free)
Used RAM: 211428 kB (186096 used pss + 8008 buffers + 520 shmem + 16804 slab)
Lost RAM: 165526 kB
Tuning: 96 (large 256), oom 20480 kB, restore limit 6826 kB (high-end-gfx)
裡面某些欄位的意義需要注意:
mpsys meminfo
OOM Killer(Out Of Memory Killer) 是Linux當中,內存保護機制的一種。當物理內存幾乎耗盡而又需要分配新內存時,會殺掉一些優先順序低的進程,釋放內存。
LowMemoryKiller 是Android的內存保護機制。當物理內存低於閾值,就會殺掉一些優先順序低的進程,釋放內存。
聯系:LowMemoryKiller 用到了 OOM Killer 的評分機制
區別:LowMemoryKiller 是通過閾值觸發,OOM Killer 是分配內存失敗時觸發
評分原理:
oom_adj,代表進程的優先順序, 數值越大,優先順序越低,越容易被殺。系統分16個級別(取值范圍[-16, 15]整數,不連續)
通過 cat /proc/xxx/oom_adj 查看,其中xxx是進程號
oom_score_adj: 在 oom_adj 基礎上的評分,取值范圍[-1000, 1000]
通過 cat /proc/xxx/oom_score_adj 查看,其中xxx是進程號
閾值查看,以98mv100為例:
cat /sys/mole/lowmemorykiller/parameters/minfree
1024,1536,2048,3072,3584,4096
cat /sys/mole/lowmemorykiller/parameters/adj
0,58,117,176,529,1000
上訴數值表示:可用內存低於 4096 4K 時,殺掉 oom_score_adj>=1000 的應用;可用內存低於 3584 4K 時,殺掉 oom_score_adj>=529 的應用,以此類推。
因此,客戶可以通過調整 minfree 的閾值來觸發 LowMemoryKiller 更頻繁地殺應用,從而為高優先順序應用省下內存。
在 mpsys meminfo 中,GPU內存被統計到了 Lost RAM 裡面了。
因此,當應用佔用GPU內存過高時,不會體現在 Used RAM 裡面,而是體現在 Lost RAM 中。反過來,如果發現有問題的時候 Lost RAM 很高,就需要看看GPU內存使用情況了。用以下命令:�
mount -t debugfs debugfs /sys/kernel/debug/
cat /sys/kernel/debug/mali/gpu_memory
130|root@MR820:/ # cat /sys/kernel/debug/mali/gpu_memory
Name (:bytes) pid mali_mem max_mali_mem external_mem ump_mem dma_mem
其中mali_mem列就是應用佔用的GPU內存