1.use java reference(strong soft weak phantom)

2.use android:largeHeap="true" above or VMRuntime.getRuntime().setMinimumHeapSize(BIGGER_SIZE);
/system/build.prop
dalvik.vm.heapsize=128m
dalvik.vm.heapgrowthlimit=64m
((ActivityManager)getSystemService(Context.ACTIVITY_SERVICE)).getMemoryClass()

3.Use second process. Declare at AndroidManifest new Service with
android:process=":second"
Exchange between first and second process over BroadcastReceiver

4.you can use native memory (NDK & JNI)

5.bitmap.recycle() or System.gc()

6.LruCache图片缓存