Fuga de memoria de Google Maps Android API v2 SupportMapFragment
Usando 2 actividades simples. Primera actividad que solo contiene un botón para iniciar la segunda actividad que contiene el mapa:
Actividad principal:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void goToMap(View view){ //This is just the onClick method for the button
Intent intent=new Intent( this, BigMapTest.class);
startActivity(intent);
}
La actividad del mapa:
public class BigMapTest extends FragmentActivity {
SupportMapFragment mapFragment;
GoogleMap map;
@Override
protected void onCreate(Bundle arg0) {
// TODO Auto-generated method stub
super.onCreate(arg0);
setContentView(R.layout.travel_diary_big_map);
mapFragment=(SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.big_map);
map=mapFragment.getMap();
}
El diseño XML para la actividad del mapa:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<fragment
android:id="@+id/big_map"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
class="com.google.android.gms.maps.SupportMapFragment"
/>
Ahora, cuando ejecuto este código, presionando el botón para moverme a la Actividad con el mapa, y presionando para regresar a la primera actividad ... luego, repitiendo el proceso, puedo ver que el montón aumenta de tamaño cada vez, hasta que alcanza Es límites y luego comienza a sujetarse. Si se mete un poco más con el mapa (es decir, con el zoom), puedo obtener una excepción de OOM en este momento.
01-25 16: 10: 13.931: D / dalvikvm (21578): GC_FOR_ALLOC liberado 1898K, 7% libre 45859K / 49187K, 204ms en pausa
01-25 16: 10: 14.671: I / dalvikvm-heap (21578): Clamp objetivo de GC de 52.724MB a 48.000MB
01-25 16: 10: 14.671: D / dalvikvm (21578): GC_CONCURRENT liberado 2534K, 6% libre 46554K / 49187K, pausado 3ms + 14ms
01-25 16: 10: 15.372: I / dalvikvm-heap (21578): Clamp target heap GC de 52.979MB a 48.000MB
01-25 16: 10: 15.382: D / dalvikvm (21578): GC_CONCURRENT liberado 2273K, 5% libre 46815K / 49187K, pausado 3ms + 15ms
01-25 16: 10: 15.622: I / dalvikvm-heap (21578): Clamp objetivo de GC de 52.604MB a 48.000MB
01-25 16: 10: 15.622: D / dalvikvm (21578): GC_FOR_ALLOC liberado 657K, 6% libre 46431K / 49187K, pausado 202ms
01-25 16: 10: 16.203: I / dalvikvm-heap (21578): Clamp objetivo de GC de 52.959MB a 48.000MB
01-25 16: 10: 16.203: D / dalvikvm (21578): GC_FOR_ALLOC liberado 1469K, 5% libre 46796K / 49187K, pausado 217ms
01-25 16: 10: 16.203: I / dalvikvm-heap (21578): Forzando la recopilación de SoftReferences para la asignación de 278744 bytes
01-25 16: 10: 16.423: I / dalvikvm-heap (21578): Clamp objetivo de GC de 52.952MB a 48.000MB
01-25 16: 10: 16.423: D / dalvikvm (21578): GC_BEFORE_OOM liberado 9K, 5% libre 46786K / 49187K, pausado 219ms
01-25 16: 10: 16.423: E / dalvikvm-heap (21578): Sin memoria en una asignación de 278744 bytes.
Cualquier sugerencia / ayuda sería apreciada.