I can second the map panning effect. That seems to be able to lock up some older devices (with less RAM, or poorly managed RAM?) randomly.
On Friday, December 28, 2012 7:34:05 PM UTC-5, Nathan wrote: > This is a topic that is on my mind once in a while. > > What could an app do that would cause a hard freeze on an Android device? > Obviously something really bad. > BY a hard freeze, I mean one where the user claims to have to change the > battery or use an advanced keystroke to restart the device. > > Theoretically nothing, right? After four seconds of not responding, the > Force Close dialog should appear, letting them close the program and report > through the market. > > But in the real world, I do believe it happens. I get a few reports of it > every month or so. Fortunately, not often, but I would like to keep it so. > My app doesn't use any native or OpenGL calls. Most recently, a user says > he can get a consistent freeze by panning the view. > Panning a view is a simple operation for the user, (though it is rather > complicated in my custom view code), but there are 4000 other users doing > it on the same device without complaint. > > I have very little to go on in these reports. After a full reboot, there > is little chance the logcat still has useful information. Since 4.1, we > can't use any external programs to collect the log. I aim for prevention > instead. > > Anyway, please just post your best theories. > > Here are a few things I suspect might cause these things: > Firmware/hardware errors in the device: > Some users complain about random freezes and reboots on particular devices > that seem independent. > It is certainly possible that an app developer could just be hitting a > path that freezes the device. > Example: HTC Droid Incredible, June 2010. The phone would spontaneously > report if you updated an ongoing notification more than a few hundred > times. Never found out why. To this day, I only update progress when it > moves a full percentage point. > > Runs out of memory: > Getting repeated outofmemory errors on background threads may not cause a > crash, but I think that eventually the main thread would get some errors > too. I think the Force Close should happen then too. > > Event loop gets full: > If, for example, onDraw takes .2 seconds but is called every .1 seconds, > you will eventually get behind and the user input would not be processed > and the system would appear frozen to an average observer. The same could > happen if a Handler message queue got really full. I would expect this to > cause a Force Close, but you never know. Maybe the CPU overloads too fast. > > Device or storage overheats: > I have found where the device gets physically hot, they have been > manifested as SQLiteIOExceptions, indicating the file doesn't exist when it > does. > > Case in point: > I have done a stress test where I have done the following: > GPS Locationlistener on service at 1 second intervals. > Do some computation in the listener > Insert or update up to 800 bytes of data to an SQLiteDatabase on storage > in this listener. > (The above two items in main thread). > > I did this driving at 45 mph with a Droid 1. > Did great for a while. > After an hour I observed behavior where it appeared unresponsive. No Force > Close dialog. Phone was measurably warmer than normal. I could even see it > happening in degrees, where it might take two seconds to respond to a > touch, then ten seconds, then a minute or two. If the above stress was > removed, it might eventually get back to normal where it was caught up. But > an average user would of course think it completely frozen and pull the > battery. I suspect the "full event loop" from above, possibly causing or > being caused by IO errors. > > Anyway, your thoughts are welcome. > Any sure fire technique you have found for freezing an Android, let me > know and I will try to *not* do it. > > Nathan > > -- 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