Android 影像記憶體管理心得
Android App很容易發生記憶體過量的問題,這個時候如何釋放不用的記憶體成為一門學問,但這篇心得不會講到如何釋放記憶體。
App在讀取大量圖片的情況很容易造成記憶體過量的問題,實際測試在新專案裡面,在xml設定一個ImageView,設定一張原圖大約為300kb的png的圖,居然吃掉了約10mb的記憶體空間,由於Android在讀取的時候是用Bitmap來讀圖,檔案大小會根據原圖的解析度。
所以一個頁面若是有很多圖片,開開關關就很容易造成記憶體過量。在xml定義縮圖也是沒有意義的,只會縮放大小。
(ps:兩個ImageView使用一樣的圖,並不會造成記憶體兩倍。)
這邊提供一個小心得是,在定義xml的時候,都使用同一張圖來定義ImageView,當作是預覽用,讓他佔一個空間以調整大小與距離。
之後在程式執行的時候,首先將圖全部以bitmap的方式讀進來,在一個個view設定圖片,這樣就能夠對bitmap進行真正意義的縮放,還有記憶體的釋放也容易。
App在讀取大量圖片的情況很容易造成記憶體過量的問題,實際測試在新專案裡面,在xml設定一個ImageView,設定一張原圖大約為300kb的png的圖,居然吃掉了約10mb的記憶體空間,由於Android在讀取的時候是用Bitmap來讀圖,檔案大小會根據原圖的解析度。
所以一個頁面若是有很多圖片,開開關關就很容易造成記憶體過量。在xml定義縮圖也是沒有意義的,只會縮放大小。
(ps:兩個ImageView使用一樣的圖,並不會造成記憶體兩倍。)
這邊提供一個小心得是,在定義xml的時候,都使用同一張圖來定義ImageView,當作是預覽用,讓他佔一個空間以調整大小與距離。
之後在程式執行的時候,首先將圖全部以bitmap的方式讀進來,在一個個view設定圖片,這樣就能夠對bitmap進行真正意義的縮放,還有記憶體的釋放也容易。
留言
張貼留言