編輯:關於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
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);
上篇文章主要介紹了Java內存分配相關的知識以及在Android開發中可能遇見的各種內存洩露情況並給出了相對應的解決方案,如果你還沒有看過上篇文章,建議點擊這裡閱讀一下,
Android Bitmap 加載與像素操作一:加載與像素讀寫在Android SDK中,圖像的像素讀寫可以通過getPixel與setPixel兩個Bitmap的API
(1)布局文件layout (2)需要彈出的Toast布局文件 (3)類的文件 package com
本文實例講述了Android編程實現簡易彈幕效果。分享給大家供大家參考,具體如下:首先上效果圖,類似於360檢測到騷擾電話頁面:布局很簡單,上面是一個RelativeLa