Android高效內存1:一張圖片佔用多少內存

  在作內存優化的時候,咱們發現除了解決內存泄露問題,剩下的就只有想辦法減小真實的內存佔用。而在App中,大部份內存可能被咱們圖片佔用了,因此減小圖片的內存佔用能夠帶來直接的效果。本文就簡單介紹一張圖片到底佔用多少內存,咱們先假設咱們有一張圖片時 600 * 800 的,圖片佔用空間大小假設是 100KB另外本文知識點也是面試官喜歡問的一個點,看看本身的回答到什麼級別了。html

圖片內存大小跟佔用空間大小有什麼關係?android

  佔用空間的大小不是圖片佔用內存的大小,一些初學者可能會誤解一下。佔用空間是在磁盤上佔用的空間,內存大小是加載到內存中佔用的內存大小。兩個只是單位是同樣的,本質不是一個概念。面試

一張圖片到底佔用多少內存呢?優化

  1. 圖片佔用內存的計算公式:圖片高度 * 圖片寬度 * 一個像素佔用的內存大小編碼

  2. 因此上面的圖片佔用內存是:800 * 600 * 4 byte = 1875KB = 1.83M spa

上面的計算公式中,爲何是4byte呢?htm

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

   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

相關文章
相關標籤/搜索