Thankfully between Google's support libraries and Action Bar Sherlock most of it can be papered over. I haven't had too much trouble with it so far.
Do you support < 4.0?
Are you using Fragments for phone/tablet/TV differences, or do you stick strictly to phones?
I haven't run into many other issues(well, except Maps, though I believe this is handled with the new Maps API but I haven't worked on it yet).
OS differences, screen sizes, and layouts are handled by a lot of XML resources. Memory limitations is a big problem in older devices and OSes. Flexible layout design is also a challenge since Google & Samsung/HTC have opposing ideas of how big a widget should appear.
Between Mike & I, we have 30+ devices for testing. I have the majority since I work on the UI and need to see how our widgets look for every possible layout. We don't need to buy one of every device made, we just cover new screen types (Droid DNA), platforms (Kindle Fire), and OSes (Nexus 4). We also make sure we have any standout devices (Google Nexus, Galaxy S3). We've been collecting phones & tablets since 2010, so we're pretty well covered for older devices.
We don't mod or force-update our devices; we remain stock. When a major device updates, we update too. We don't support mods/ROMs since it's too difficult to solve bugs on moving targets.
Most users understand Android has been changing exponentially over the past two years. The Galaxy Nexus is the tipping point. Anything made prior is simply outdated. Android 2.3 is our minimum supported OS, but we leave 2.2 open for those willing to try. Similarly, a few top developers are making new apps that are strictly 4.x & up.
Also asking customers to upgrade is usually downloading new software for websites, but is buying new hardware for many android users (as there is no released update nor will there ever be for their devices)
Try multiple systems (multiple operating systems), with combinatorially many possibilities for the interesections of {operating system, browser type, browser version, screen size, resolution}.
Not at all - the difference between any two Android devices is far less than the difference between any two potential viewers of a website.
> And android is a far smaller area so tricks like just using the center third in both directions for large screens doesn't work.
Android also has an extensive set of well-defined guidelines for layout and constructing applications - the more you rely on the core API to handle these tasks, the more portable your app will be across Android devices.
That's a lot more than can be said for browser rendering in the general case.