I like to think myself a j2me expert and a competent windows compact programmer. I generally like the SDK, most of the stuff is exactly where I thought it would be, it supports generics and auto boxing, there is lots of javadoc , generally a lot more to like then to hate.
On the plus side:
1) IDE integration, at least as good as eclipseme or using visual studio for windows compact
2) Does(or will do) everything that j2me does and then some
3) Permissions handled at install time. It's a pain dealing with the fact that every other operation you might want to execute might be canceled by the user. The Android way the user can look at the software vendor at install time and just not install the stuff if he doesn't want it to do everything it wants to do.
5) Hooks into the camera, gps, phone, sms... there is just no solution for j2me that'll work on even half of the phones that have all those features and can run j2me.
6) The strings XML persistence sets everyone up for a very easy time internationalizing.
Now for some negatives:
1) Why is the ui not more like swing(though could be worse, we could have to do our own garbage collection like in SWT)? Why must they provide most of the examples for the ui in XML? I want to use XML for ease of maintenance, I want to code it in java first when I learn it.
2) Using a part of the api in juint is not trivial, so there are very few tests that can be written.
3) No jdbc drivers, or serversocket before the contest is due.
I must say I disagree with a couple of points made in previous posts:
1) Lack of documentation - you can not use logarithms before you learn to add, some familiarity with another mobile framework is definitely a prerequisite. If you want to get started right readWireless Java
, making android do most of the stuff you want is trivial after reading that book.
2) SqlLite is bad - No, SqlLite is good. Its not a replacement for a fully featured relational database, its a replacement for new File("c:test.txt"). If you need a fully featured relational database host it on your server and use http(which is very well documented) to get data from it.