I've started to learn to program Android. From about two weeks of programming I have one good thing and and bad thing to say:
Good: The programmer has a great deal of freedom. For example I can create a program to replace the Home/Start screen application. I can also access all the hardware (for example GPS, SMS, sensors).
Bad: Not to good documented yet. There are many classes in API that lacks documentation and you have to guess how to do things.
More info on the Android developer site.