android記憶體釋放處理

來源:互聯網
上載者:User

標籤:handler   玩遊戲   span   mod   重複   記憶體釋放   想去   應該   getchild   

不知道大家對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( );    
                              }    
                     }    
          }    
             }    
  }     
}    
關於圖片佔用記憶體的釋放,假設是一些遊戲引擎之類的。應該有相應的clear方法,在結束一個介面的時候能夠調用相應方法釋放記憶體。

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.