> 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to