android記憶體釋放處理

來源:互聯網
上載者:User

標籤:android資源釋放   資源釋放   android應用介面卡頓   記憶體釋放   

不知道大家對android記憶體釋放都做什麼樣的處理,本人接觸android不久,最近開發小遊戲的過程中,因為遊戲介面組件較多,剛玩遊戲的時候感覺還好,但是反覆進入遊戲介面玩幾次之後,遊戲就會卡頓,我瞬間就無語了,想來想去,還是記憶體佔用沒有得到釋放,經過一番學習,雖然沒有完全找到根源,但是已經緩解了很多,在這裡說說我是怎麼處理的吧,然後要是大家有自己好的處理方法,希望可以拿出來分享,這樣大家就能一起進步了。接下來是我的一些做法:

首先,大多數佔用記憶體的東西我知道的有(一般釋放資源我都在onDestroy()裡面做處理):

1.圖片資源;

2.list佔用;

3.數組佔用;

4.其他一些定義的方法的佔用;

5.線程回調,線程沒有關閉問題。

面對這些問題,我分別採用的方法是:

1.圖片資源回收

private void recycleBitmap( )    
{    
   if(viewGroup != null)    
   {    
         int count =  viewGroup.getChildCount;    
         for(int i=0; i <count; i++ )    
          {    
             View view = viewGroup.getChildAt(i);    
             ImageView img = (ImageView)view.findViewById(R.id.Image);    
              if(img != null)    
               {    
                   Drawable drawable = img.getDrawable( );    
                   if(drawable != null)    
                    {    
                            if(drawable instanceof BitmapDrawable)    
                             {    
                               BitmapDrawable bitmapDrawable = (BitmapDrawable)drawable;    
                                Bitmap bitmap = bitmapDrawable.getBitmap( );    
                                if(bitmap != null)    
                                   bitmap.recycle( );    
                              }    
                     }    
          }    
             }    
  }     
}    


2.list佔用:
方法:list.clear();然後在制空,不知道有沒有這個必要,但是也就一句話,而且也沒有異常,所以就順便了;


3.數組佔用:
方法:用完之後沒有用了就制空;


4.其他一些定義的方法的佔用:
方法:直接制空,如果方法內部有一些list或者數組之類的,我的處理方法是在定義的方法裡面再定義一個釋放資源的方法,然後在要釋放資源的時候調用那個方法釋放方法內部資料,在對其制空;


5.線程回調,線程沒有關閉問題:
方法:移除回調mHandler.removeCallbacks(mMethod);

android記憶體釋放處理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.