1. 程式人生 > >Android高效內存1:一張圖片占用多少內存

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

像素 更多 內存 加載 手機 mic style 占用 們的

  在做內存優化的時候,我們發現除了解決內存泄露問題,剩下的就只有想辦法減少真實的內存占用。而在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

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