標籤:android style class java tar com
一:Dalvik虛擬機器
對於Android平台來說,其託管層使用的Dalvik JavaVM從目前的表現來看還有很多地方可以最佳化處理,比如我們在開發一些大型遊戲或耗資源的應用中可能考慮手動幹涉GC處理,使用 dalvik.system.VMRuntime類提供的setTargetHeapUtilization方法可以增強程式堆記憶體的處理效率。當然具體原理我們可以參考開源工程,這裡我們僅說下使用方法:
private final static floatTARGET_HEAP_UTILIZATION = 0.75f;
在程式onCreate時就可以調用 VMRuntime.getRuntime().setTargetHeapUtilization(TARGET_HEAP_UTILIZATION); 即可。
除了最佳化Dalvik虛擬機器的堆記憶體配置外,我們還可以強制定義自己軟體的對記憶體大小,我們使用Dalvik提供的 dalvik.system.VMRuntime類來設定最小堆記憶體為例:
- private final static int CWJ_HEAP_SIZE = 6* 1024* 1024 ;
- VMRuntime.getRuntime().setMinimumHeapSize(CWJ_HEAP_SIZE);
//設定最小heap記憶體為6MB大小。
二:bitmap
Android 中用bitmap 時很容易記憶體溢出,報如下錯誤:Java.lang.OutOfMemoryError : bitmap size exceeds VM budget
- BitmapFactory.Options options = new BitmapFactory.Options();
- options.inSampleSize = 2;
改變圖片大小,並不能去除溢出錯誤。可以藉助recycle()方法顯示讓GC回收一個Bitmap對象,通常對一個不用的Bitmap可以使用下面的方式
if(bitmapObject.isRecycled()==false) //如果沒有回收
bitmapObject.recycle();