衆所周知 Android 內存分配比較蛋疼,過多的加載Bitmap,如果不處理好會造成很頭疼的問題---------OutofMemoryError.
造成這個問題的大致就那麼幾個原因:
第一:移動設備的資源是有限的,對於單個應用程序,系統虛擬機通常會分配16M,當然現在基本都是32M,甚至有64M的。但是資源還是有限制的,需要注意。
第二:Bitmap本身就會消耗很大內存,特別是色彩豐富的,比如單反相機拍的,像素高的手機拍的照片都會很大。官方文檔給了個例子。一臺Galaxy Nexus手機,拍張照片爲2592*1936像素,如果加載這張圖片則需要消耗的內存爲2596*1936*4大約爲19M。幾張程序就崩潰了。
第三:一般來說Android程序會頻繁的加載幾張圖片,比如一些控件:"ListView,GridView,ViewPager..."。用戶使用中會經常的滑動屏幕,會頻繁的加載不同的圖片,如此處理好圖片的問題就十分重要了,不光是程序的穩定性,圖文更能提高用戶體驗。
一下幾篇文章是我通過閱讀官方API的理解,分爲5個小節。