1. 程式人生 > >記憶體溢位(OOM)

記憶體溢位(OOM)

什麼是OOM?

     OOM是out of memory的簡稱,也稱記憶體溢位。

     

什麼樣的場景下會出現OOM?

       1、在對圖片進行記憶體快取處理的時候就會出現OOM異常,可能在集合中儲存幾十張圖片還好,如果需要儲存幾百甚至上千的圖片就會出現記憶體溢位的情況,不管你的手機配置再高再好也會出現此種情況。比如說你的手機可能有1G的執行記憶體,Android並不會將1G的記憶體全部分配給你,不管手機的執行記憶體有多大,Android只會給每個App分配16M或者32M的空間,比如每張圖片100kb,16M也只能載入160張左右的照片,要知道實際的App課遠不止這些圖片的,一旦超出16M就記憶體溢位了,

      

//獲取Android系統給App分配的執行記憶體, 返回的資料以B為單位
        long maxMemory = Runtime.getRuntime().maxMemory();
        Log.i(TAG,"maxMemory:"+maxMemory);
        //maxMemory:402653184 

 

如何解決記憶體溢位?