1. 程式人生 > >android 記憶體管理概要

android 記憶體管理概要

一、zram

zram swap 主要原理就是從記憶體分配一塊區域出來用作 swap 分割槽,每次如果記憶體空間不夠了,不是把應用程式殺掉,而是把應用程式所佔用的記憶體資料複製到 swap 分割槽,等切換回來的時候就可以直接把這部分資料恢復到記憶體當中,節省重新開啟所需的時間。而被放到 swap 分割槽的應用程式,所佔用的記憶體都是被壓縮過的,比如,微信在普通記憶體中佔用 50 MB 的空間,如果壓縮率為 0.4,則放到 swap 分割槽裡面的資料只需要 20 MB 的空間,這樣 swap 分割槽裡面就可以存放更多後臺臨時不用的應用程式,變相擴充套件了記憶體的大小。

        zram 塊裝置驅動結構:

驅動部分

該部分建立了一個塊裝置,然後提供了處理 IO 請求的介面;

資料流操作部分

該部分主要提供序列或者並行的壓縮和解壓操作;

解壓縮演算法部分

該部分主要是一個個壓縮和解壓演算法,每個演算法都提供統一的壓縮和解壓介面給資料流操作部分呼叫。

二、lmk

       程序等級:空程序、後臺程序、內容提供點、可見程序、前臺程序、NATIVIE程序

       殺程序原則:選優先順序最大的、其次選記憶體佔用量最大的、然後kernel釋放SIGKILL訊號