posted 14 years ago
J2ME is geared towards monolithic apps, where a single program does everything, much as is the case with desktop apps. Android is more of a component architecture. While an Android app stands by itself, often components within the app may be invoked by other apps. For example, a phone book app may publish an interface to its database services, allowing other apps to access phone book entries without having to explicitly code detailed support into the phonebook app.
Technically, Android is not "Java", since we usually consider Java to signify not only the language, but the VM and the core classes. No one really cared about the difference, however, until Oracle's lawyers got involved. The Dalvik environment is somewhat richer than J2ME, since its least-common-denominator is more powerful hardware, but for the most part, there's nothing missing in J2ME that will kill you.
The biggest difficulty in moving between the 2 platforms is their fundamental difference in application architecture. As I said, a J2ME app is a program (or set of programs), whereas an Android app is a set of interconnected modules where each module belongs to 1 of 4 basic component types. Both have lifecyle support for an environment where the app may be pushed into the background or put to sleep altogether, although Android makes those stages perhaps a bit more visible.
Experience keeps a dear School, but Fools will learn in no other.
---
Benjamin Franklin - Postal official and Weather observer