Android frustrations: Overall system performance
Update: Downgrading from the unofficial Froyo (2.2) release to an unofficial 2.1 release (2.1-update1, from the JM5 release which can be found on the internet) seems to improve things greatly: The “Active Applications” widget now shows 7 to 9 apps running without any significant slowdowns. “Force close”s are gone, lag is way down, battery seems to last longer (though only the next days will show). I’m not yet sure about the clock (I don’t trust it) and the general problem of missing feedback on actions is still there but it’s less serious because everything’s fast, now. So, the next articles will be about some of the apps. Finally!
One of the most notable things (a 3rd generation iPod touch being my companion for over a year now) is the less-than-stellar performance of most things on the Samsung. I believe it’s caused more by the software than the hardware, the Samsung Galaxy sports a 1GHz processor and 512 MB of memory.
My most prominent (and hardest to bear) examples (using the unofficial Froyo images found on the web; performance was worse in 2.1):
- clicking buttons often does not offer any feedback (> 30% of the cases, more like 70% if the phone has been running for some time)., so you’re always wondering if the phone actually recognized your clicks This makes for a terrible user experience since it often takes 3-10 seconds to launch applications.
- When someone calls you, the phone rings, the screen goes dark and after around 3 seconds the screen lights up again and you see who’s calling. This is pretty ugly for a device that’s dominantly a phone! (This was really bad with 2.1, around 10 sec)
- The clock runs 7 minutes late after a single day of use. The C.L.O.C.K, can you believe it?
- battery drain is really bad. Even mild use of 3G (downloading one small app, checking facebook once, twitter twice) means that the battery is down to 25% ofter one day (no phone use). This means you cannot take this device with you (on a trip) if you cannot be sure that you can charge it overnight. This also makes the navigation applications useless because the battery will not survive a trip longer than 2-3 hours.
- applications seem to use blocking updates which makes the system unresponsive (instead of updating in the background in a separate thread). This should be blamed on the applications (since background updates are even advertised as best practice by Google) but the prevalence of applications that present a “wait or force close” screen after updates is high. Even Google’s Listen stalls on me every few minutes. I hope, developer education will solve this one.
- You see the “force close” screen much to often. This is almost certainly caused by generally low quality of apps in the Android market but even apps delivered stock with the phone crash way to often.
These are my top-level frustrations and I think there are conceptual reasons for them:
- The code produced by the Dalvik VM is still much slower than machine-specific code.
- the Android OS gives applications a lot of freedom (which is a good thing), allowing them to do things in a non-optimal way
- there is no review of applications enforcing strong quality standards. This is two-faced. It allows for innovation and crazy ideas but allows for a lot of bad user experience. I guess, even the apps produced by Google, Facebook or twitter might be better if they had to go through an Apple store-like review process.
In the end, it’s still really hard to write good, working software. It’s even harder to write software that has a good user experience. And it’s still a lot harder to do this for smartphone-type devices where functionality is more limited and user experience is the only thing that really counts.
I love that now there i strong competition to the iPhone, but (at least for me) Android does not deliver, yet. But I’m not giving up. The platform does have a lot of interesting concepts (think of Intents, e.g.).
Am 15. August 2010 um 19:39 Uhr
While Google does recommend doing updates in the background as best practice they don’t provide a sample application that demonstrates how the developer should go about it.
Especially when it would be best practice to use an android service it’s hard to find a good example to copy.
On the topic of battery use:
Android provides via:
Menu/Settings/About Phone/Battery/Battery use a display what used up how much battery. It’s well hidden, but very helpful to find what’s actually using the battery.
The phone might check for WLans and Bluetooth in the background when you don’t deactivate the two.