When I got acquainted with Android platform my first impression was WOW, that's must be a super awesome thing. But when I started developing for it I felt that its learning curve could be simpler. Don't get me wrong, it is not hard, but it feels so javish ... I am an experienced Java developer and know how most Java apis looks like. I think that Android API could be designed with less patterns in mind and still be effective.
Just to name a couple of design decisions that have puzzled me:
- Activity concept is too generic
- Content providers seem to be odd, especially when it comes to real-world examples of retrieving data from the SQLite storage
- Too many callbacks - Java 5 isn't the best fit for it
- Dialogs are asynchronous - is that so crucial for the platform?

isUserAMonkey()can actually be a useful method if you stress test your application with the Google UI/Application Exerciser Monkey. – raymi Oct 24 '11 at 13:29