開發過Android app的工程師多半懂如何有效率地加載Bitmap,以維持使用者介面的響應和避免過度使用應用程式的記憶體。如果不關心Bitmap的加載,Bitmap將快速地消耗應用程式可用的記憶體,並導致應用程式因為
java.lang.OutOfMemoryError: bitmap size exceeds VM budget.的例外而崩潰。
以下幾個原因造成應用程式加載Bitmap的工作更為複雜。
- 行動手機通常有限制系統資源。對於單一應用程式Android裝置最少只需16MB的可用記憶體,應用程式應該優化使在最小記憶體的限制下能運行。不過,許多裝置都配置較高的限制。
- Bitmap占用許多記憶體,特別是富含圖片的功能如相簿。舉例來說,Galaxy Nexus上的相機拍的相片高達5290x1936象素。如果Bitmap配置是使用ARGB_8888,加載一張相片到記憶體大約需要19M的記憶體(5290x1936x4 bytes),瞬間就超過一些裝置的應用程式記憶體限制。
- 應用程式的使用者介面往往需要一次加載許多的Bitmap,元件如ListView、GridView和ViewPager通常在螢幕上一次都包含許多Bitmap,並有更多超出螢幕以外的Bitmap準備顯示。
既然我們常常使用Bitmap,而Bitmap又容易消耗應用程式可用的記憶體,接下來的相關文章將介紹如何有效率地加載Bitmap物件,使應用程式能順利加載Bitmap並運行。
沒有留言:
張貼留言