Чрезмерная ненужная система, вызванная GC на android 2.3.5 во время анимации

В моем приложении у меня есть ViewSwitcher с двумя детьми:

<ViewFlipper android:id="@+id/galeryviewflipper" android:layout_width="fill_parent" android:layout_height="fill_parent"> <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent"> <ImageView android:id="@+id/galeryimageview_0" android:layout_width="fill_parent" android:layout_height="fill_parent" android:scaleType="fitCenter" /> (... other stuff here) </RelativeLayout> <RelativeLayout> (... copy previous except for IDs) </RelativeLayout> </ViewFlipper> 

Затем я переключаю галереи изображений (каждая фотография размером 800×600):

 //(setup wanted images into ImageViews) //then: viewFlipper.setInAnimation(instance, R.anim.fade_in); viewFlipper.setOutAnimation(instance, R.anim.fade_in); viewFlipper.setDisplayedChild(nextIndex); 

В Android 2.3.4 все идет так, как ожидалось, но на 2.3.5 телефоне (галактика S2), dalvik вызывает несколько раз GC во время анимации, что приводит к неаккуратному пользователю (обратите внимание на время GC и продолжительность!). Я не называю System.gc anyhere в приложении явно.

 05-18 21:06:56.040: D/dalvikvm(6617): GC_EXTERNAL_ALLOC freed <1K, 50% free 5447K/10695K, external 17083K/17815K, paused 30ms 05-18 21:06:56.115: D/dalvikvm(6617): GC_EXTERNAL_ALLOC freed <1K, 50% free 5447K/10695K, external 17083K/17815K, paused 30ms 05-18 21:06:56.175: D/dalvikvm(6617): GC_EXTERNAL_ALLOC freed <1K, 50% free 5447K/10695K, external 17083K/17815K, paused 31ms 05-18 21:06:56.245: D/dalvikvm(6617): GC_EXTERNAL_ALLOC freed <1K, 50% free 5447K/10695K, external 17083K/17815K, paused 30ms 05-18 21:06:56.305: D/dalvikvm(6617): GC_EXTERNAL_ALLOC freed <1K, 50% free 5447K/10695K, external 17083K/17815K, paused 31ms 05-18 21:06:56.365: D/dalvikvm(6617): GC_EXTERNAL_ALLOC freed <1K, 50% free 5447K/10695K, external 17083K/17815K, paused 30ms 05-18 21:06:56.415: D/dalvikvm(6617): GC_EXTERNAL_ALLOC freed <1K, 50% free 5447K/10695K, external 17083K/17815K, paused 32ms 

Он также делает то же самое на другом телефоне 2.2+ (а не на галактике s2), поэтому в общей сложности на одном телефоне нет вызовов GC, на двух других это происходит. И, телефон OK намного менее мощный, чем Galaxy S2, и по-прежнему демонстрирует плавное постепенное исчезновение из-за отсутствия вызовов GC во время анимации. Какие-либо предложения? Спасибо за помощь.

Это определенно не вызвано недостаточной памятью, на Galaxy S2 5MB используется из кучи 64 МБ во время этого процесса. Кажется, что это не связано с фактическим использованием кучи, это происходит каждый раз.