What are the most common errors/bugs you come across to while releasing/testing Android apps for various devices?

With large number Android devices & multiple OS versions, how do you manage app quality and performance across major android handsets?

Here are possible solutions.

1. Activity management.  This isn’t specific to the cross-devices/vendors aspect of your question, but it’s the #1 issue that plagues apps (not just third party, some of Google’s own first-party apps do this wrong too).  Many app developers don’t understand the activity stack and saving/restoring state.  Where this becomes particularly egregious is when you have apps launching Intents that trigger other applications’ activities in separate tasks (e.g. launching an ACTION_VIEW for a URL and starting the Browser).  Apps and activities that respond to Intents should do the right thing and hand back to the expected activity.

2. Cross-vendor skin compatibility.  I posted a rant (with examples & screenshots) on my blog at http://whacked.net/2010/08/03/an…  Basically, different vendors have seen fit to extend and customise the default Android UI theme.  Padding, colors, etc. are different and there is no platform/API method of determining default colour choices.  Example, you want to display text on a button.  What colour should the text be if you don’t want to (or can’t) inherit the system button text style?  Well it depends on what the background colour is.  How do you know what it is?  You don’t.  On one vendor it may be light grey, so black text will stand out better.  But on another vendor is may be red, so white text might stand out better.  Google has “fixed” this in ICS by requiring the Holo theme be available on all ICS releases, but it won’t help you if your app needs to be compatible with <4.0.

3. Cross-vendor “customisations”.  Motorola is particularly guilty of this… want to build a contacts sync adapter?  Go ahead!  Just know that the standard Android method of using the contactsprovider won’t work on Motorola phones running FroYo or Gingerbread as Motorola has chosen to extend and customise its Android 1.6 based contacts method.  Writing a media player app on Android?  Awesome, Android 2.3 uses a new media player called Stagefright.  It’s totally awesome, unless you’re on a Motorola phone because they’ve ripped it out and continued to extend the older Android media framework from PacketVideo.

Leave a Reply