Device fragmentation is an age-old problem for Java ME. It stems from two main factors. First, Java ME is merely a set of specifications and APIs, which vendors are free to implement in their JVMs. However, not all vendors interpret the specifications to mean the exact same thing, which can lead to differences in the behaviors of different JVMs. These differences are usually minor or occur in corner cases, but nonetheless they do exist and can be a source of great pain for developers.
The second reason for device fragmentation is the fact that there are simply a lot of different models of Java ME phones currently in use. Java ME devices cover all price segments from the extremely cheap but low-end devices (with ...