Android can be said to be a Google version of J2ME... with minor differences. Android might be a little more tightly integrated , while J2ME is far more liberal in its specifications for the developer and mobile device manufacturer. So any experience in developing J2ME apps would really be helpful in learning Android programming.
Sai Hegde wrote:Android can be said to be a Google version of J2ME... with minor differences. Android might be a little more tightly integrated , while J2ME is far more liberal in its specifications for the developer and mobile device manufacturer. So any experience in developing J2ME apps would really be helpful in learning Android programming.
I say Huge differences. Android is completely different beast from JME.
JME applications are monolithic while Android apps are more composite-able.
Sorry, what I intended to say was significant differences.
Thanks for pointing that out, John. The only point that I was trying to drill in here was that it would be easier understanding Android if you really did work on J2ME apps anytime.
The points where both overlap are the use of the core Java language, and the fact that they're both mobile environments. In that sense, knowledge of JME helps with Android. The APIs for using any handset features (like GPS, local storage, GUI, keyboard, etc.) are completely different.
No way knowing one platform would hinter knowledge of other I think. You just have to be aware of differences, and start learning Android "from scratch". Learning curve should be easier though, if you have experience with similar platform.
APIs, build process, deployment... are all completely different.
But if you are good at designing an application (not to be misunderstood as "graphical design" alone) and delivering a great user experience, then the technical differences don't matter that much. So while experience with specific APIs will not help (and even hinder sometimes, if one wants to do things like in the other environment), the experience gained in designing for small screen, limited input methods, mobility, different life cycle compared to a desktop app and so on will help.
Luckily Android allows to use more of the standard Java library than J2ME did. This helps. But built on top of it are APIs that are totally new and different.