title: Java ME
text: # Java ME
  
  Java Platform, Micro Edition, ou Java ME (anciennement Java 2 Platform, Micro Edition, ou J2ME), est une spécification de la plate-forme Java d'Oracle, destinée typiquement aux applications pour systèmes embarqués et mobiles (microcontrôleur, capteur, passerelle, smartphone, assistant personnel numérique, décodeur TV, imprimante).
  
  Java ME est né en 1999, de la volonté de Sun de structurer ses différentes plateformes, et notamment Java Card, PersonnalJava et EmbeddedJava.
  
  La plate-forme est composée :
  
  * d'une KVM (Kilobyte Virtual Machine), une machine virtuelle capable d'exécuter une application Java ;
  * d'un ensemble de bibliothèques, notamment une API donnant accès aux fonctions de base du système ainsi qu'aux fonctions spécifiques de l'eco-système visé.
  
  ## Configurations
  
  Les configurations les plus courantes en 2014 sont :
  
  * CLDC (Connected Limited Device Configuration), que l'on retrouve par exemple dans les téléphones mobiles ;
  * CDC (Connected Device Configuration), qui est plutôt utilisé dans des décodeurs de télévision numérique.
  
  À la même époque, les profils les plus courants sont :
  
  * MIDP (Mobile Information Device Profile), dont sont équipés les téléphones WAP Java ME ;
  * DoJa, développé par NTT DoCoMo pour les téléphones i-mode Java ME ;
  * MicroUI (Micro User Interface) standard (ESR Consortium) pouvant équiper les petits microcontrôleurs jusqu'aux tablettes sous Android et iPhone.
  
  Les téléphones se caractérisent par leur fragmentation qui se traduit sur Java ME : les caractéristiques des téléphones mobiles sont différentes d'un constructeur à un autre, rendant ainsi complexe et coûteux le développement d'applications mobile.
  
  Certaines applications sont développées pour fonctionner sur un nombre important de portables (par exemple : Google Maps, Opera Mini). D'autres se doivent d'être développées pour correspondre précisément aux caractéristiques des téléphones ciblés. Cette étape s'appelle le portage. Plusieurs solutions de portage, à partir d'un code source Java ME commun, existent, notamment NeoMAD de Neomades ou encore Celsius de Mobile Distillery.
  
  