<i>That's not to say it was playable on all of them--the Covia SmartQ5, for example, has no keyboard, trackball, or even orientation sensors, and you have to use a stylus on the screen (it also has no GPU so the game runs extremely slowly). And some devices (like the LG Eve) have directional pads that are really poor for games.</i><p>In other words: Fragmentation is a bit of a problem on the Android platform.<p>Sure, your software doesn't crash on any Android hardware. Good for you! But there's a big difference between <i>does not crash</i> and <i>is useable</i>.<p>Fortunately, your software is also usable on "average" Android hardware. Great! But there's a big difference between <i>usable</i> and <i>useful</i>, and an even bigger difference between <i>useful</i> and <i>elegantly designed</i>.<p>The problem is least-common-denominator design: You can't assume a hardware keyboard, and you can't assume a software keyboard, and you can't assume multitouch, and you can't assume an orientation sensor, and you apparently can't assume a minimum level of graphics performance. So you design something that runs well on some hardware, but not so well on others, in a way that's not necessarily easy for a potential software customer to understand or anticipate in advance. And you're careful not to accidentally take too much advantage of some hardware feature that isn't widely available, lest you box yourself into a niche.