> System.exit() might be easier. You are right. Works out the same. Thanks!
> What log messages appear when this happens? Below I have interspersed log info labeled by "4fadden" and generated from freeMemory() and totalMemory(), showing values that are similar to the DDMS values. The total heap according to DDMS lies close to totalMemory(), but totalMemory() - freeMemory() is for some reason about 0.5 MB larger than the allocated memory as reported by DDMS. Maybe it is just the memory probing moment that causes these differences (say before/after shedding a bitmap). Anyway, here is the log output after the point where the crash occurs in one of the later runs (around the fifth or so; it never happens in the first run). It shows that a 0.5 memory allocation fails very shortly after the app still reported using about 4 MB of a 6 MB heap, and I cannot see where the missing 10 MB has gone. 01-13 20:36:00.597: INFO/ActivityManager(51): Starting activity: Intent { action=android.intent.action.MAIN categories= {android.intent.category.LAUNCHER} flags=0x10200000 comp={vOICe.vOICe/ vOICe.vOICe.The_vOICe} } 01-13 20:36:00.757: WARN/AudioFlinger(32): write blocked for 101 msecs 01-13 20:36:00.827: DEBUG/dalvikvm(15350): GC freed 538 objects / 56720 bytes in 154ms 01-13 20:36:00.957: DEBUG/dalvikvm(15350): GC freed 238 objects / 58632 bytes in 82ms 01-13 20:36:01.057: DEBUG/Sensors(51): open_akm, fd=117 01-13 20:36:01.057: DEBUG/Sensors(51): sensors=00000001, real=00000005 01-13 20:36:01.057: DEBUG/AKMD(37): akmd: Compass OPEN 01-13 20:36:01.087: DEBUG/Sensors(51): using /dev/input/event4 (name=compass) 01-13 20:36:01.087: DEBUG/Sensors(15350): sensors_data_open: fd = 24 01-13 20:36:01.097: DEBUG/LocationManagerService(51): _requestLocationUpdates: listener = android.os.binderpr...@435b9bc0 01-13 20:36:01.097: DEBUG/GpsLocationProvider(51): setMinTime 1000 01-13 20:36:01.107: DEBUG/LocationManagerService(51): _requestLocationUpdates: listener = android.os.binderpr...@435b9bc0 01-13 20:36:01.197: DEBUG/SensorService(51): Compass needs calibration, accuracy=3 01-13 20:36:01.287: DEBUG/CameraService(32): Connect E from ICameraClient 0x31fd8 01-13 20:36:01.287: DEBUG/CameraService(32): Client E constructor 01-13 20:36:01.287: VERBOSE/QualcommCameraHardware(32): openCameraHardware: call createInstance 01-13 20:36:01.287: VERBOSE/QualcommCameraHardware(32): createInstance: E 01-13 20:36:01.287: VERBOSE/QualcommCameraHardware(32): constructor E 01-13 20:36:01.287: VERBOSE/QualcommCameraHardware(32): constructor X 01-13 20:36:01.287: VERBOSE/QualcommCameraHardware(32): setParameters: E params = 0xbec4b938 01-13 20:36:01.287: VERBOSE/QualcommCameraHardware(32): initCameraParameters: E 01-13 20:36:01.287: VERBOSE/QualcommCameraHardware(32): loading libqcamera 01-13 20:36:01.297: VERBOSE/QualcommCameraHardware(32): waiting for REX to initialize. 01-13 20:36:01.297: VERBOSE/QualcommCameraHardware(32): Received REX- ready signal. 01-13 20:36:01.297: VERBOSE/QualcommCameraHardware(32): REX is ready. 01-13 20:36:01.297: VERBOSE/QualcommCameraHardware(32): starting REX emulation 01-13 20:36:01.307: VERBOSE/QualcommCameraHardware(32): init camera: waiting for QCS_IDLE 01-13 20:36:01.637: VERBOSE/QualcommCameraHardware(32): STATE CAMERA_FUNC_START // STATUS 1 01-13 20:36:01.637: VERBOSE/QualcommCameraHardware(32): camera_cb: state transition QCS_INIT --> QCS_IDLE 01-13 20:36:01.637: VERBOSE/QualcommCameraHardware(32): init camera: woke up 01-13 20:36:01.637: VERBOSE/QualcommCameraHardware(32): init camera: initializing parameters 01-13 20:36:01.637: VERBOSE/QualcommCameraHardware(32): initCameraParameters: set parm: CAMERA_PARM_PREVIEW_MODE, 0 01-13 20:36:01.637: VERBOSE/QualcommCameraHardware(32): initCameraParameters: set parm: CAMERA_PARM_ENCODE_ROTATION, 0 01-13 20:36:01.637: VERBOSE/QualcommCameraHardware(32): initCameraParameters: set parm: CAMERA_PARM_WB, 1 01-13 20:36:01.637: VERBOSE/QualcommCameraHardware(32): initCameraParameters: set parm: CAMERA_PARM_EFFECT, 1 01-13 20:36:01.637: VERBOSE/QualcommCameraHardware(32): initCameraParameters: set parm: CAMERA_PARM_ANTIBANDING, 3 01-13 20:36:01.637: VERBOSE/QualcommCameraHardware(32): initCameraParameters: set parm: CAMERA_PARM_NIGHTSHOT_MODE, 0 01-13 20:36:01.637: VERBOSE/QualcommCameraHardware(32): initCameraParameters: set parm: CAMERA_PARM_LUMA_ADAPTATION, 0 01-13 20:36:01.637: INFO/QualcommCameraHardware(32): setting thumbnail dimentions to 512x384, quality 30 01-13 20:36:01.637: VERBOSE/QualcommCameraHardware(32): Setting JPEG- image quality is 100 01-13 20:36:01.637: VERBOSE/QualcommCameraHardware(32): initCameraParameters: X 01-13 20:36:01.637: VERBOSE/QualcommCameraHardware(32): setParameters: X mCameraState=1 01-13 20:36:01.637: VERBOSE/QualcommCameraHardware(32): createInstance: X created hardware=0x100a8 01-13 20:36:01.637: DEBUG/CameraService(32): Client X constructor 01-13 20:36:01.637: DEBUG/CameraService(32): Connect X 01-13 20:36:01.827: DEBUG/Sensors(15350): M-Sensor status 1 01-13 20:36:01.827: DEBUG/SensorService(51): Compass needs calibration, accuracy=1 01-13 20:36:02.637: DEBUG/CameraService(32): setPreviewDisplay (0x32980) 01-13 20:36:02.647: DEBUG/CameraService(32): getParameters 01-13 20:36:02.647: VERBOSE/QualcommCameraHardware(32): getParameters: EX 01-13 20:36:02.647: ERROR/Camera(15350): _getParameters: antibanding=auto;antibanding-values=off,50hz,60hz,auto;effect- values=mono,negative,solarize,pastel,mosaic,resize,sepia,posterize,whiteboard,blackboard,aqua;jpeg- quality=100;jpeg-thumbnail-height=384;jpeg-thumbnail-quality=30;jpeg- thumbnail-width=512;luma-adaptation=0;nightshot-mode=0;picture- format=jpeg;picture-size=2048x1536;preview-format=yuv422sp;preview- frame-rate=15;preview- size=480x320;rotation=0;whitebalance=auto;whitebalance- values=auto,custom,incandescent,fluorescent,daylight,cloudy,twilight,shade 01-13 20:36:02.667: VERBOSE/WifiMonitor(51): Event [CTRL-EVENT-SCAN- RESULTS Ready] 01-13 20:36:02.697: INFO/ActivityManager(51): Displayed activity vOICe.vOICe/.The_vOICe: 2089 ms 01-13 20:36:02.727: ERROR/Camera(15350): setParameters() 01-13 20:36:02.747: DEBUG/CameraService(32): setParameters(jpeg- thumbnail-width=512;luma-adaptation=0;antibanding-values=off,50hz, 60hz,auto;preview-frame-rate=2;preview-size=480x320;picture- format=jpeg;autofocus=true;antibanding=auto;jpeg-thumbnail- height=384;picture-size=2048x1536;whitebalance=auto;jpeg-thumbnail- quality=30;jpeg-quality=85;whitebalance- values=auto,custom,incandescent,fluorescent,daylight,cloudy,twilight,shade;preview- format=yuv422sp;rotation=0;effect- values=mono,negative,solarize,pastel,mosaic,resize,sepia,posterize,whiteboard,blackboard,aqua;nightshot- mode=0) 01-13 20:36:02.747: VERBOSE/QualcommCameraHardware(32): setParameters: E params = 0x40307d08 01-13 20:36:02.747: VERBOSE/QualcommCameraHardware(32): initCameraParameters: E 01-13 20:36:02.747: VERBOSE/QualcommCameraHardware(32): camera hardware has been started already 01-13 20:36:02.747: VERBOSE/QualcommCameraHardware(32): initCameraParameters: set parm: CAMERA_PARM_PREVIEW_MODE, 0 01-13 20:36:02.747: VERBOSE/QualcommCameraHardware(32): initCameraParameters: set parm: CAMERA_PARM_ENCODE_ROTATION, 0 01-13 20:36:02.747: VERBOSE/QualcommCameraHardware(32): initCameraParameters: set parm: CAMERA_PARM_WB, 1 01-13 20:36:02.747: VERBOSE/QualcommCameraHardware(32): initCameraParameters: set parm: CAMERA_PARM_EFFECT, 1 01-13 20:36:02.747: VERBOSE/QualcommCameraHardware(32): initCameraParameters: set parm: CAMERA_PARM_ANTIBANDING, 3 01-13 20:36:02.747: VERBOSE/QualcommCameraHardware(32): initCameraParameters: set parm: CAMERA_PARM_NIGHTSHOT_MODE, 0 01-13 20:36:02.747: VERBOSE/QualcommCameraHardware(32): initCameraParameters: set parm: CAMERA_PARM_LUMA_ADAPTATION, 0 01-13 20:36:02.747: INFO/QualcommCameraHardware(32): setting thumbnail dimentions to 512x384, quality 30 01-13 20:36:02.747: VERBOSE/QualcommCameraHardware(32): Setting JPEG- image quality is 85 01-13 20:36:02.747: VERBOSE/QualcommCameraHardware(32): initCameraParameters: X 01-13 20:36:02.747: VERBOSE/QualcommCameraHardware(32): setParameters: X mCameraState=1 01-13 20:36:02.767: DEBUG/CameraService(32): getParameters 01-13 20:36:02.767: VERBOSE/QualcommCameraHardware(32): getParameters: EX 01-13 20:36:02.767: ERROR/Camera(15350): _getParameters: antibanding=auto;antibanding-values=off,50hz, 60hz,auto;autofocus=true;effect- values=mono,negative,solarize,pastel,mosaic,resize,sepia,posterize,whiteboard,blackboard,aqua;jpeg- quality=85;jpeg-thumbnail-height=384;jpeg-thumbnail-quality=30;jpeg- thumbnail-width=512;luma-adaptation=0;nightshot-mode=0;picture- format=jpeg;picture-size=2048x1536;preview-format=yuv422sp;preview- frame-rate=2;preview- size=480x320;rotation=0;whitebalance=auto;whitebalance- values=auto,custom,incandescent,fluorescent,daylight,cloudy,twilight,shade 01-13 20:36:02.877: DEBUG/CameraService(32): startPreview() 01-13 20:36:02.877: VERBOSE/QualcommCameraHardware(32): getParameters: EX 01-13 20:36:02.877: VERBOSE/QualcommCameraHardware(32): startPreview E 01-13 20:36:02.877: VERBOSE/QualcommCameraHardware(32): camera hardware has been started already 01-13 20:36:03.017: VERBOSE/QualcommCameraHardware(32): initPreview: preview size=480x320 01-13 20:36:03.017: VERBOSE/QualcommCameraHardware(32): constructing MemPool preview backed by pmem pool /dev/pmem_adsp: 4 frames @ 230400 bytes, offset 72, buffer size 307272 01-13 20:36:03.017: ERROR/QualcommCameraHardware(32): pmem pool /dev/ pmem_adsp ioctl(PMEM_GET_SIZE) is 2097152 01-13 20:36:03.017: VERBOSE/QualcommCameraHardware(32): constructing PreviewPmemPool 01-13 20:36:03.017: VERBOSE/QualcommCameraHardware(32): waiting for QCS_PREVIEW_IN_PROGRESS 01-13 20:36:03.017: VERBOSE/QualcommCameraHardware(32): getInstance: X old instance of hardware 01-13 20:36:03.017: VERBOSE/QualcommCameraHardware(32): get_preview_mem: base 0x40824000 MALLOC size 307272 index 0 --> 0x40824000 01-13 20:36:03.017: VERBOSE/QualcommCameraHardware(32): getInstance: X old instance of hardware 01-13 20:36:03.017: VERBOSE/QualcommCameraHardware(32): get_preview_mem: base 0x40824000 MALLOC size 307272 index 1 --> 0x4086f048 01-13 20:36:03.017: VERBOSE/QualcommCameraHardware(32): getInstance: X old instance of hardware 01-13 20:36:03.017: VERBOSE/QualcommCameraHardware(32): get_preview_mem: base 0x40824000 MALLOC size 307272 index 2 --> 0x408ba090 01-13 20:36:03.517: VERBOSE/QualcommCameraHardware(32): STATE CAMERA_FUNC_START_PREVIEW // STATUS 0 01-13 20:36:03.517: VERBOSE/QualcommCameraHardware(32): camera_cb: state transition QCS_INTERNAL_PREVIEW_REQUESTED --> QCS_PREVIEW_IN_PROGRESS 01-13 20:36:03.517: VERBOSE/QualcommCameraHardware(32): startPreview X 01-13 20:36:03.517: VERBOSE/QualcommCameraHardware(32): getPreviewHeap 01-13 20:36:03.767: DEBUG/AudioHardwareMSM72XX(32): Going to standby 01-13 20:36:03.997: DEBUG/LocationMasfClient(51): getNetworkLocation (): Returning cache location with accuracy 150.0 01-13 20:36:04.147: DEBUG/dalvikvm(15350): GC freed 1098 objects / 749408 bytes in 190ms 01-13 20:36:04.417: INFO/4fadden(15350): CPU 21%, 4086 KB of 6037 KB in use 01-13 20:36:04.437: DEBUG/VolumePanel(51): onVolumeChanged(streamType: 3, flags: 0) 01-13 20:36:04.998: INFO/global(15350): Jan 13, 2009 8:36:04 PM java.io.BufferedReader <init> 01-13 20:36:04.998: INFO/global(15350): INFO: Default buffer size used in BufferedReader constructor. It would be better to be explicit if a 8k-char buffer is required. 01-13 20:36:05.387: DEBUG/dalvikvm(15350): GC freed 2852 objects / 1867528 bytes in 106ms 01-13 20:36:05.707: INFO/global(15350): Jan 13, 2009 8:36:05 PM java.io.BufferedReader <init> 01-13 20:36:05.707: INFO/global(15350): INFO: Default buffer size used in BufferedReader constructor. It would be better to be explicit if a 8k-char buffer is required. 01-13 20:36:06.058: WARN/AudioFlinger(32): write blocked for 65 msecs 01-13 20:36:06.797: DEBUG/dalvikvm(15350): GC freed 2300 objects / 1756480 bytes in 146ms 01-13 20:36:06.957: DEBUG/dalvikvm(15350): GC freed 56 objects / 27088 bytes in 144ms 01-13 20:36:07.997: DEBUG/dalvikvm(15350): GC freed 175 objects / 1391168 bytes in 114ms 01-13 20:36:08.317: INFO/4fadden(15350): CPU 28%, 3964 KB of 6037 KB in use 01-13 20:36:08.767: DEBUG/dalvikvm(15350): GC freed 146 objects / 927992 bytes in 141ms 01-13 20:36:08.767: ERROR/dalvikvm-heap(15350): 518400-byte external allocation too large for this process. 01-13 20:36:08.777: ERROR/(15350): VM won't let us allocate 518400 bytes 01-13 20:36:09.027: DEBUG/Sensors(51): close_akm, fd=117 01-13 20:36:09.027: DEBUG/Sensors(51): sensors=00000000, real=00000000 01-13 20:36:09.027: DEBUG/LocationManager(15350): removeUpdates: listener = voice.voice.voicelocator$voicelocationliste...@43445e30 01-13 20:36:09.027: DEBUG/LocationManagerService(51): _removeUpdates: listener = android.os.binderpr...@435b9bc0 01-13 20:36:09.167: DEBUG/AKMD(37): akmd: Compass CLOSE 01-13 20:36:09.507: WARN/ActivityManager(51): Activity pause timeout for HistoryRecord{43576530 {vOICe.vOICe/vOICe.vOICe.The_vOICe}} 01-13 20:36:09.527: WARN/ActivityManager(51): Duplicate finish request for HistoryRecord{43576530 {vOICe.vOICe/vOICe.vOICe.The_vOICe}} 01-13 20:36:09.647: DEBUG/CameraService(32): stopPreview() 01-13 20:36:09.647: VERBOSE/QualcommCameraHardware(32): stopPreview: E 01-13 20:36:09.647: VERBOSE/QualcommCameraHardware(32): stopPreviewInternal E 01-13 20:36:09.657: VERBOSE/QualcommCameraHardware(32): waiting for QCS_IDLE 01-13 20:36:09.842: VERBOSE/QualcommCameraHardware(32): getInstance: X old instance of hardware 01-13 20:36:09.842: VERBOSE/QualcommCameraHardware(32): free_preview_mem: EX NOP 01-13 20:36:09.842: VERBOSE/QualcommCameraHardware(32): getInstance: X old instance of hardware 01-13 20:36:09.842: VERBOSE/QualcommCameraHardware(32): free_preview_mem: EX NOP 01-13 20:36:09.842: VERBOSE/QualcommCameraHardware(32): getInstance: X old instance of hardware 01-13 20:36:09.842: VERBOSE/QualcommCameraHardware(32): free_preview_mem: EX NOP 01-13 20:36:09.857: VERBOSE/QualcommCameraHardware(32): STATE CAMERA_FUNC_STOP_PREVIEW // STATUS 1 01-13 20:36:09.857: VERBOSE/QualcommCameraHardware(32): camera_cb: state transition QCS_INTERNAL_PREVIEW_STOPPING --> QCS_IDLE 01-13 20:36:09.857: VERBOSE/QualcommCameraHardware(32): stopPreviewInternal: Freeing preview heap. 01-13 20:36:09.857: VERBOSE/QualcommCameraHardware(32): destroying PreviewPmemPool 01-13 20:36:09.857: VERBOSE/QualcommCameraHardware(32): releasing PreviewPmemPool memory 0x40824000 from module 22 01-13 20:36:09.857: VERBOSE/QualcommCameraHardware(32): destroying MemPool preview 01-13 20:36:09.857: VERBOSE/QualcommCameraHardware(32): destroying MemPool preview completed 01-13 20:36:09.857: VERBOSE/QualcommCameraHardware(32): stopPreviewInternal: X Preview has stopped. 01-13 20:36:09.857: VERBOSE/QualcommCameraHardware(32): stopPreview: X 01-13 20:36:09.857: DEBUG/CameraService(32): stopPreview(), hardware stopped OK 01-13 20:36:10.048: WARN/ActivityManager(51): Duplicate finish request for HistoryRecord{43576530 {vOICe.vOICe/vOICe.vOICe.The_vOICe}} 01-13 20:36:10.550: WARN/ActivityManager(51): Duplicate finish request for HistoryRecord{43576530 {vOICe.vOICe/vOICe.vOICe.The_vOICe}} 01-13 20:36:10.875: DEBUG/CameraService(32): Client E disconnect 01-13 20:36:10.875: VERBOSE/QualcommCameraHardware(32): stopPreview: E 01-13 20:36:10.875: VERBOSE/QualcommCameraHardware(32): stopPreviewInternal E 01-13 20:36:10.875: ERROR/QualcommCameraHardware(32): Preview not in progress! 01-13 20:36:10.875: VERBOSE/QualcommCameraHardware(32): stopPreview: X 01-13 20:36:10.875: VERBOSE/QualcommCameraHardware(32): cancelPicture: E cancel_shutter = 1, cancel_raw = 1, cancel_jpeg = 1 01-13 20:36:10.875: VERBOSE/QualcommCameraHardware(32): not taking a picture (state QCS_IDLE) 01-13 20:36:10.875: VERBOSE/QualcommCameraHardware(32): cancelPicture: X 01-13 20:36:10.875: VERBOSE/QualcommCameraHardware(32): release E 01-13 20:36:10.875: VERBOSE/QualcommCameraHardware(32): stopping camera. 01-13 20:36:10.875: VERBOSE/QualcommCameraHardware(32): stopping camera: waiting for QCS_INIT 01-13 20:36:10.877: VERBOSE/QualcommCameraHardware(32): STATE CAMERA_FUNC_STOP // STATUS 1 01-13 20:36:10.887: VERBOSE/QualcommCameraHardware(32): camera_cb: state transition QCS_IDLE --> QCS_INIT 01-13 20:36:10.887: VERBOSE/QualcommCameraHardware(32): Shutting REX down. 01-13 20:36:10.897: VERBOSE/QualcommCameraHardware(32): REX has shut down. 01-13 20:36:10.897: VERBOSE/QualcommCameraHardware(32): dlclose (libqcamera) refcount 0 01-13 20:36:10.897: VERBOSE/QualcommCameraHardware(32): release X 01-13 20:36:10.897: VERBOSE/QualcommCameraHardware(32): ~QualcommCameraHardware E 01-13 20:36:10.897: VERBOSE/QualcommCameraHardware(32): ~QualcommCameraHardware X 01-13 20:36:10.897: DEBUG/CameraService(32): Client X disconnect 01-13 20:36:10.907: DEBUG/CameraService(32): Client E destructor 01-13 20:36:10.907: DEBUG/CameraService(32): Client E disconnect 01-13 20:36:10.917: DEBUG/CameraService(32): Client X disconnect 01-13 20:36:10.917: DEBUG/CameraService(32): Client X destructor 01-13 20:36:11.007: DEBUG/dalvikvm(15350): GC freed 397 objects / 1177576 bytes in 91ms 01-13 20:36:11.052: WARN/ActivityManager(51): Duplicate finish request for HistoryRecord{43576530 {vOICe.vOICe/vOICe.vOICe.The_vOICe}} 01-13 20:36:11.555: WARN/ActivityManager(51): Duplicate finish request for HistoryRecord{43576530 {vOICe.vOICe/vOICe.vOICe.The_vOICe}} 01-13 20:36:12.572: DEBUG/AudioHardwareMSM72XX(32): Going to standby Regards --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---