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
所以,計算圖片占用內存大小的時候,要考慮圖片所在的目錄跟設備密度,這兩個因素其實影響的是圖片的高寬,android會對圖片進行拉升跟壓縮。
總結
1. 圖片確實很占用內存,內存優化先考慮圖片內存占用;
2. 一定要避免使用大圖片,這就是.9圖很有用的原因之一;
3. 圖片的大小對內存的影響是正比關系;
4. 本文只是簡單的告知讀者怎麽計算圖片的內存大小。
5. 如何減少圖片內存占用的方法總結請看 http://www.cnblogs.com/popfisher/p/6770018.html
Android高效內存1:一張圖片占用多少內存