[HTC Sensation] Fihlvein:
I had this issue when after changing wallpaper through 3D Gallery as usual, my phone soft rebooted most of the time right when it should show me the new wallpaper on home screen.

I tried every basic things to pin down the issue. Later I saw this on logcat:

I/CacheService( 1483): Preparing DiskCache for all thumbnails.
I/CacheService( 1483): DiskCache ready for all thumbnails.
D/dalvikvm( 1483): GC_EXTERNAL_ALLOC freed 237K, 51% free 3095K/6215K, external 1938K/2095K, paused 30ms
D/dalvikvm( 1483): GC_EXTERNAL_ALLOC freed 30K, 51% free 3065K/6215K, external 3438K/4293K, paused 24ms
D/dalvikvm( 1483): GC_EXTERNAL_ALLOC freed 22K, 50% free 3129K/6215K, external 3860K/5463K, paused 23ms
I/Gallery ( 1483): onDestroy
D/dalvikvm( 252): GC_EXTERNAL_ALLOC freed 790K, 71% free 6766K/22599K, external 7174K/7883K, paused 71ms
E/dalvikvm-heap( 252): 4147200-byte external allocation too large for this process.
E/GraphicsJNI( 252): VM won't let us allocate 4147200 bytes
D/dalvikvm( 252): GC_FOR_MALLOC freed 0K, 71% free 6766K/22599K, external 7174K/7883K, paused 53ms
D/skia ( 252): --- decoder->decode returned false
W/WallpaperManager( 252): No memory load current wallpaper
W/WallpaperManager( 252): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
W/WallpaperManager( 252): at android.graphics.BitmapFactory.nativeDecodeFileDescriptor(Native Method)
W/WallpaperManager( 252): at android.graphics.BitmapFactory.decodeFileDescriptor(BitmapFactory.java:555)
W/WallpaperManager( 252): at android.app.WallpaperManager$Globals.getCurrentWallpaperLocked(WallpaperManager.java:260)
W/WallpaperManager( 252): at android.app.WallpaperManager$Globals.peekWallpaperBitmap(WallpaperManager.java:215)
W/WallpaperManager( 252): at android.app.WallpaperManager.getFastDrawable(WallpaperManager.java:406)
W/WallpaperManager( 252): at com.android.internal.service.wallpaper.ImageWallpaper$DrawableEngine.updateWallpaper(ImageWallpaper.java:173)
W/WallpaperManager( 252): at com.android.internal.service.wallpaper.ImageWallpaper$DrawableEngine$WallpaperObserver.onReceive(ImageWallpaper.java:80)
W/WallpaperManager( 252): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:709)
W/WallpaperManager( 252): at android.os.Handler.handleCallback(Handler.java:587)
W/WallpaperManager( 252): at android.os.Handler.dispatchMessage(Handler.java:92)
W/WallpaperManager( 252): at android.os.Looper.loop(Looper.java:130)
W/WallpaperManager( 252): at com.android.server.ServerThread.run(SystemServer.java:630)
D/dalvikvm( 252): GC_EXTERNAL_ALLOC freed 24K, 71% free 6765K/22599K, external 7174K/7883K, paused 64ms
E/dalvikvm-heap( 252): 3072000-byte external allocation too large for this process.
E/GraphicsJNI( 252): VM won't let us allocate 3072000 bytes
D/dalvikvm( 252): GC_FOR_MALLOC freed 2K, 71% free 6763K/22599K, external 7174K/7883K, paused 53ms
D/skia ( 252): --- decoder->decode returned false
W/dalvikvm( 252): threadid=10: thread exiting with uncaught exception (group=0x40015560)
E/AndroidRuntime( 252): *** FATAL EXCEPTION IN SYSTEM PROCESS: android.server.ServerThread
E/AndroidRuntime( 252): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
E/AndroidRuntime( 252): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
E/AndroidRuntime( 252): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:460)
E/AndroidRuntime( 252): at android.app.WallpaperManager$Globals.getDefaultWallpaperLocked(WallpaperManager.java:306)
E/AndroidRuntime( 252): at android.app.WallpaperManager$Globals.peekWallpaperBitmap(WallpaperManager.java:220)
E/AndroidRuntime( 252): at android.app.WallpaperManager.getFastDrawable(WallpaperManager.java:406)
E/AndroidRuntime( 252): at com.android.internal.service.wallpaper.ImageWallpaper$DrawableEngine.updateWallpaper(ImageWallpaper.java:173)
E/AndroidRuntime( 252): at com.android.internal.service.wallpaper.ImageWallpaper$DrawableEngine$WallpaperObserver.onReceive(ImageWallpaper.java:80)
E/AndroidRuntime( 252): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:709)
E/AndroidRuntime( 252): at android.os.Handler.handleCallback(Handler.java:587)
E/AndroidRuntime( 252): at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime( 252): at android.os.Looper.loop(Looper.java:130)
E/AndroidRuntime( 252): at com.android.server.ServerThread.run(SystemServer.java:630)
I/Process ( 252): Sending signal. PID: 252 SIG: 9
D/dalvikvm( 358): GC_EXTERNAL_ALLOC freed 618K, 55% free 3629K/8007K, external 10348K/11020K, paused 60ms
I/ServiceManager( 167): service 'SurfaceFlinger' died
I/ServiceManager( 167): service 'connectivity' died
I/ServiceManager( 167): service 'throttle' died
I/ServiceManager( 167): service 'accessibility' died
I/ServiceManager( 167): service 'mount' died
I/ServiceManager( 167): service 'diskstats' died
I/ServiceManager( 167): service 'notification' died
I/ServiceManager( 167): service 'devicestoragemonitor' died
I/ServiceManager( 167): service 'location' died
I/ServiceManager( 167): service 'search' died
I/ServiceManager( 167): service 'dropbox' died
I/ServiceManager( 167): service 'wallpaper' died
I/ServiceManager( 167): service 'usagestats' died
I/ServiceManager( 167): service 'sensorservice' died

Also, sometimes it did change the wallpaper and everything seemed to work fine - but some time later when turning screen on, the device would instantly soft reboot again.

As you can figure out from the logcat error, increasing VM heap size from default 32m to 48m could help - and it helped.

This basically started happening when I copied around 100 1280x1024 (nice resolution h&w ratio when cropping) jpg wallpapers to my sd card. I guess 3D Gallery doesn't enjoy 32m heap size enough with many "mid-high" resolution images.

So there it is in case some of you have had mysterious soft reboots.