El desarrollo de una aplicación para Android desde hace semanas y me di cuenta de que me dieron mensajes como este en Catlog:Jit: Cambiar el tamaño de JitTable de 512 a 1024 y así sucesivamente .... ¿qué es esto?
Jit: Resizing JitTable from 512 to 1024
(...)
Jit: Resizing JitTable from 1024 to 2048
(...)
Jit: Resizing JitTable from 2048 to 4096
Lo que se quiere decir? ¿Es una pérdida de memoria o algo así?
Y yo también tengo esto en la zona (...):
04-24 07:59:53.131: D/dalvikvm(874): GC_EXTERNAL_ALLOC freed 207K, 48% free 2980K/5639K, external 1448K/1458K, paused 66ms
04-24 07:59:57.591: D/dalvikvm(874): GC_CONCURRENT freed 162K, 46% free 3122K/5767K, external 1371K/1673K, paused 11ms+17ms
04-24 07:59:58.771: D/dalvikvm(874): GC_CONCURRENT freed 196K, 44% free 3445K/6087K, external 1145K/1657K, paused 10ms+6ms
04-24 08:00:01.411: D/dalvikvm(874): GC_CONCURRENT freed 274K, 39% free 4267K/6983K, external 1145K/1657K, paused 6ms+7ms
04-24 08:00:04.970: D/dalvikvm(874): GC_EXTERNAL_ALLOC freed 31K, 36% free 4479K/6983K, external 1145K/1657K, paused 89ms
Aproximadamente en el 14% libre, tengo un accidente.
Esto ocurre cuando hago clic en los botones de menú (actividades cambiantes). pongo a prueba en el emulador, no sé los resultados en el teléfono ...
El error en el accidente en Logcat:
04-24 08:26:34.158: E/GraphicsJNI(482): VM won't let us allocate 1536000 bytes
04-24 08:26:34.158: D/dalvikvm(482): GC_FOR_MALLOC freed 0K, 64% free 4280K/11655K, external 11662K/13614K, paused 72ms
04-24 08:26:34.158: D/skia(482): --- decoder->decode returned false
04-24 08:26:34.168: D/AndroidRuntime(482): Shutting down VM
04-24 08:26:34.168: W/dalvikvm(482): threadid=1: thread exiting with uncaught exception (group=0x40015560)
04-24 08:26:34.218: E/AndroidRuntime(482): FATAL EXCEPTION: main
04-24 08:34:37.807: E/AndroidRuntime(522): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
04-24 08:26:34.218: E/AndroidRuntime(482): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.KeySoft.OpenGuide/com.KeySoft.OpenGuide.Favourites}: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
04-24 08:34:37.807: E/AndroidRuntime(522): at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
04-24 08:34:37.807: E/AndroidRuntime(522): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:470)
04-24 08:34:37.807: E/AndroidRuntime(522): at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:284)
04-24 08:34:37.807: E/AndroidRuntime(522): at com.KeySoft.OpenGuide.Top20.readBitmapImage(Top20.java:483)
04-24 08:34:37.807: E/AndroidRuntime(522): at com.KeySoft.OpenGuide.Top20.addShopToList(Top20.java:251)
04-24 08:34:37.807: E/AndroidRuntime(522): at com.KeySoft.OpenGuide.Top20.SqlShopsVissza(Top20.java:439)
04-24 08:34:37.807: E/AndroidRuntime(522): at com.KeySoft.OpenGuide.Top20.onCreate(Top20.java:182)
04-24 08:34:37.807: E/AndroidRuntime(522): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
04-24 08:34:37.807: E/AndroidRuntime(522): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
04-24 08:34:37.807: E/AndroidRuntime(522): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
04-24 08:34:37.807: E/AndroidRuntime(522): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
04-24 08:34:37.807: E/AndroidRuntime(522): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
04-24 08:34:37.807: E/AndroidRuntime(522): at android.os.Handler.dispatchMessage(Handler.java:99)
04-24 08:34:37.807: E/AndroidRuntime(522): at android.os.Looper.loop(Looper.java:130)
04-24 08:34:37.807: E/AndroidRuntime(522): at android.app.ActivityThread.main(ActivityThread.java:3683)
04-24 08:34:37.807: E/AndroidRuntime(522): at java.lang.reflect.Method.invokeNative(Native Method)
04-24 08:34:37.807: E/AndroidRuntime(522): at java.lang.reflect.Method.invoke(Method.java:507)
04-24 08:34:37.807: E/AndroidRuntime(522): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-24 08:34:37.807: E/AndroidRuntime(522): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-24 08:34:37.807: E/AndroidRuntime(522): at dalvik.system.NativeStart.main(Native Method)
utilizo 256 MB de RAM en emulador ... tal vez yo puedo evitar todo esto con dispositivos reales? dispositivos baratos también tiene al menos 384 MB de RAM (Galaxy Mini), pero oftem más ...
Eso le indica que está utilizando la memoria. Si su aplicación falla, publique el mensaje de error que recibe. Esas son solo información sobre la recolección de basura y el compilador Just-In-Time. Sin embargo, es probable que use demasiada memoria o tenga una fuga. – zapl
Editado mi pregunta –
Supongo que está usando imágenes grandes. En algún lugar relacionado con un archivo xml de diseño en la línea 2. Como la memoria es limitada por aplicación (aproximadamente 16 MB), debe ser muy conservador cuando utiliza imágenes. Una imagen de 1 megapíxel (1000x1000) requiere una memoria RAM de 4 megabytes. – zapl