"1. Open Source
Leave it to Google to place all the code for their handset platform
in the hands of the masses. Not only does this mean anyone can
download and roll a new version of their phone firmware, but it
also means absolutely any maker can roll its own Android device.
I'm looking forward to an Android-powered toaster oven any day now.
What's worse is Google knows how to protect valued code; Its Maps,
Gmail, and Store applications aren't open source. Figuring out when
it's okay to include one of those in your own application requires
a crack legal team with a hotline to the EFF. This is the most
benign on this list, and it's only here because now everyone and
their brother is going to make a new "Android-powered" device.
"2. The Tyranny of the Activity
Through the Activity, Android forces developers to build apps in
smaller, bite-sized chunks. For example, in their sample text
editor code, they have one Activity for picking from a list of
editable files and another Activity for actually editing a file's
contents. Android also encourages developers to communicate among
their Activities using Intents (more on why I hate those
later)."