天天看點

Android高效記憶體1:一張圖檔占用多少記憶體

  在做記憶體優化的時候,我們發現除了解決記憶體洩露問題,剩下的就隻有想辦法減少真實的記憶體占用。而在App中,大部分記憶體可能被我們圖檔占用了,是以減少圖檔的記憶體占用可以帶來直接的效果。本文就簡單介紹一張圖檔到底占用多少記憶體,我們先假設我們有一張圖檔時 600 * 800 的,圖檔占用空間大小假設是 100KB。另外本文知識點也是面試官喜歡問的一個點,看看自己的回答到什麼級别了。

圖檔記憶體大小跟占用空間大小有什麼關系?

  占用空間的大小不是圖檔占用記憶體的大小,一些初學者可能會誤解一下。占用空間是在磁盤上占用的空間,記憶體大小是加載到記憶體中占用的記憶體大小。兩個隻是機關是一樣的,本質不是一個概念。

一張圖檔到底占用多少記憶體呢?

  1. 圖檔占用記憶體的計算公式:圖檔高度 * 圖檔寬度 * 一個像素占用的記憶體大小

  2. 是以上面的圖檔占用記憶體是:800 * 600 * 4 byte = 1875KB = 1.83M 

上面的計算公式中,為什麼是4byte呢?

  4byte是跟圖檔的編碼格式有關系,更多詳情請移步

   http://www.cnblogs.com/popfisher/p/6770018.html

圖檔所在目錄對記憶體的影響?

  在Android中,圖檔的存放目錄和手機的螢幕密度影響圖檔最終的大小,舉個例子:

  假設我們的圖檔放到xhdpi目錄下,那麼我們本文中的圖檔占用的記憶體大小如下:

  螢幕密度為2的裝置:800 * 600 * 4byte = 1.83M

  螢幕密度為3的裝置:800 * 1.5 * 600 * 1.5 * 4byte = 1.83 * 2.25M = 4.12M

  是以,計算圖檔占用記憶體大小的時候,要考慮圖檔所在的目錄跟裝置密度,這兩個因素其實影響的是圖檔的高寬,android會對圖檔進行拉升跟壓縮。

總結

  1. 圖檔确實很占用記憶體,記憶體優化先考慮圖檔記憶體占用;

  2. 一定要避免使用大圖檔,這就是.9圖很有用的原因之一;

  3. 圖檔的大小對記憶體的影響是正比關系;

  4. 本文隻是簡單的告知讀者怎麼計算圖檔的記憶體大小。

  5. 如何減少圖檔記憶體占用的方法總結請看 http://www.cnblogs.com/popfisher/p/6770018.html

繼續閱讀