J2ME ou JAVAME
Par PlaceOweb le mercredi, octobre 11 2006, 00:48 - JAVA - Lien permanent
J2ME ou JAVAME - Micro Edition ou Mobile Edition permet d'embarquer ses programmes Java sur les micro appareils, tels que les téléphones portables, PDA, etc...
Qu'est ce que J2ME ?
La Plate-forme Java 2, Micro Edition (plate-forme J2ME), est la plate-forme Java des périphériques grand public et intégrés, tels que les téléphones portables, les assistants numériques personnels (PDA), les décodeurs TV et tout un éventail d'autres appareils mobiles et sans fil. J2ME est semblable à l'environnement d'exécution Sun Java, Standard Edition (JRE)
Présentation, cours et tutoriaux J2ME
- Laboratoire SupInfo Sun
- Qu'est-ce que J2ME ?
- L'expert Java
- Lire le cours de JM Doudoux, il y a une section sur J2ME.
- Les experts en programmation de chez developpez.com
- De très bons tutoriaux pour la j2me : Java ME (Micro Edition) et aussi Android
- Débuter en J2ME avec le profil MIDP
- Faire interagir son téléphone portable avec son site web Interrogations d'une Servlet avec javax.microedition.io.HttpConnection
- Leur Forum des développeurs > Java > Général Java > Java ME
- Leur FAQ j2me
- Leur FAQ J2ME Wireless Toolkit
- De très bons tutoriaux pour la j2me : Java ME (Micro Edition) et aussi Android
- Java et mobilité
- #ProgX
- Explique comment faire un MIDlet, son interface utilisateur, des connexions distantes et stockage, son déploiement et des listings...
- Le J2Me : Java for Mobile Application
- koumag parlant de java explique le simplement J2ME dans sa doc pdf.
Des exemple de sources et codes pour J2ME
- http://www.java2s.com/Code/Java/J2ME/CatalogJ2ME.htm
- http://www.java2s.com/Code/Java/J2ME/XMLinJ2ME.htm
- Demo Title: J2ME, XML Demo
- Autentification
Les plugins J2ME pour les IDE java
J2ME sous Eclipse : EclipseME
Sachez qu'il existe un plug-in gratuit Eclipse pour programmer avec J2ME, il s'agit de EclipseME. Pour l'installer, consultez l'installation de plugins pour Eclipse.
J2ME sous Netbeans : Le NetBeans Mobility Pack
Le Pack NetBeans Mobile (NetBeans Mobility Pack) ajoute à l'IDE NetBeans tout ce qui est nécessaire pour commencer immédiatement à écrire, tester, débuger des applications Java pour téléphone mobiles et les autres appareils compatibles Java Micro Edition (Java ME).
- Le Pack NetBeans Mobile fournit un support intuitif et complet pour les configurations des appareils connectés limités (Connected, Limited Device Configuration) CLDC 1.1, les profils des appareils d'information mobiles (Mobile Information Device Profile) MIDP 1.0 et 2.0, et inclut un outils de conception visuel pour les applications mobiles, intégrant les application avec les services web. Il inclut le kit Java ME pour les sans fil et des émulateurs d'appareils, aussi aucun téléchargement supplémentaires sont nécessaire pour commencer à travailler avec les technologies mobiles.
- Le Pack NetBeans Mobile pour CDC fournit le support pour les Configurations d'Appareil Connecté (Connected Device Configuration) CDC et les appareils Profils Personnels. L'ensemble des packs vous permet d'intégrer facilement des émulateurs tiers et des kits de développements logiciels pour un environnement de test robuste.
Le 30/11/2006, le Journal du Net Développeur > Outils > Les environnements de développement Mobile > Java ME explique entre autre :
Les outils de développement Java disposent de versions capables de travailler pour Java ME : Eclipse avec Mobile Tools for Java (MTJ), tandis que Netbeans dispose d'un Mobility Pack. Là où Netbeans MP se spécialise dans le profil "bas" (MIDP/CLDC), Eclipse MJT reconnaît les deux configurations, et plusieurs profils (MIDP, Foundation Profile et Personal Profile).
Vrac
Si tu regardes les caractéristiques d'un téléphone, tu peux déjà savoir si le téléphone est compatible Java. Si tu veux plus de détails : Club-Java (http://www.club-java.com/TastePhone/J2ME/MIDP_mobile.jsp) et JBenchmark (http://www.jbenchmark.com/result.jsp) les applications peuvent se déployer par cable par réseau sans fil à proximité (infrarouge ou bluetooth), mais tu peux également installer tes applications via OTA (téléchargement de l'application par le WAP).
Ici tu as une liste téléphone supportant le J2ME http://developers.sun.com/techtopics/mobility/device/device y'a même la version des software MIDP CLDC supporté... A partir de là tu pourra commencer tes recherches... Sinon le site de sun est tres fourni en explication etc, voila la section pour les portables : http://java.sun.com/j2me/index.jsp
Tu peux aussi regarder http://www.jbenchmark.com/index.jsp pour avoir une idée de la rapidité de la JVM embarqué sur les téléphones et aussi suivant le firmware, cas vécu avec un T610 : entre la 1ere version du firmware et les versions suivantes, un facteur x2 de différence
pour résumer :
Vérifie que le portable que tu as choisi est compatible JAVA (cela signifie qu'il possède une machine virtuelle JAVA capable d'exécuter une application J2ME) Tu peux vérifier cela en consultant les détails du téléphone sur le site du constructeur, si tout est ok tu auras une ligne du genre "J2ME MIDP 2.0" installe un Wireless Toolkit (émulateur de portable) et crée tes propres applications avec un IDE adapté (Eclipse + EclipseME par exemple) Compile tes applications Déploie tes applications : Avec un câble Série / USB ou en Bluetooth / Infrarouge / wifi A l'aide d'OTA : déploiement de l'application sur un serveur web (si le téléphone est compatible)
Les pré-requis sont : Connaître JAVA, avoir de la place sur son disque dur, Eclipse + Java Sun Wireless Toolkit => espace > 100Mo, et avoir beaucoup de temps..
Juste un complément, un site que je trouve pas mal pour connaître les réelles capacités de son téléphone JAVA : http://www.club-java.com/TastePhone/J2ME/MIDP_Benchmark.jsp
Cette liste est mise à jour à partir d'une midlet que l'on peut télécharger à partir de http://wap.club-java.com/en
Par ailleurs, notez que J2ME sur Windows Mobile, c'est franchement limité et capricieux. Si vous avez un WM alors pensez plutôt C#
Comparatif Java 2 Micro Edition (J2ME) Versus Microsoft Embedded Architecture (2002)
Tutoriel de transfert Java: Mobile -> PC, Ou comment transférer des progs Java
Je cherche des infos sur la java mobile, je connais la java doc "normale" J2SE mais ou trouver sont équivalent J2ME ??? Il faut utiliser les liens vers les différentes API... depuis Java ME : http://java.sun.com/javame/reference/apis.jsp
CLDC http://java.sun.com/j2me/docs/pdf/cldc11api.pdf
Pour la "standard" java.utils.* et autres mais pour le package EM On y trouve simplement javax.microedition.io et si on cherche javax.microedition.lcdui.* ???
Et bien il faut les spec MIDP 2.0 ici : http://jcp.org/aboutJava/communityprocess/final/jsr118/index.html
Un site qui semble découvrir et évoluer avec Eclipse
http://www.blognote-info.com/index.php?Eclipse, il propose également son formateur de code pour indenter automatiquement son code source sous Eclipse.
Aussi, il trace la route pour developper en J2ME avec des liens intéressants :
- Les données persistantes sous J2ME : RMS
- Un code source pour découvrir ce que son les RecordStore et les Records qui permettent d'enregistrer des données sur n'importe quel téléphone MIDP 1.0 ou MIDP 2.0 !
- Didacticiel J2ME MIDP "Conversion de devises" pour l'EDI NetBeans IDE 4.0 Bêta 2
- MIDP Database Programming Using RMS: a Persistent Storage for MIDlets
Java Mobile programmation
Ressources de développement J2ME.
MicroEmulator
MicroEmulator is a pure Java implementation of J2ME in J2SE. MicroEmulator is licensed under LGPL so it is possible to link and distribute commercial software with its libraries.
javax.microedition.midlet
- Présentation du Package javax.microedition.midlet
- MIDlet Suite Security
- Untrusted MIDlet Suites
- Trusted MIDlet Suite Security
- Trusted MIDlet Suites Using X.509 PKI
- Signing a MIDlet Suite
- MIDlet Suite Packaging
- Version Numbering
- JAR Manifest
- Application Descriptor
- Application Lifecycle
- MIDlet lifecycle
- MIDlet Suite Security
J2ME sur zdnet
- Créer et gérer des applications MIDP avec J2ME Wireless Toolkit (2003)
- J2ME: créer un espace de stockage pour MID1et ExpensesApp (2002)
- J2ME : trier les enregistrements du RMS (2002)
** Pointeurs d'enregistrement complexes
** Trouver des enregistrements avec RecordFilter
J2ME Sources
- Gestion de fichiers
- Navigation et sélection dans le système de fichiers FileChooser permet de naviguer dans le système de fichiers et d'en sélectionner un en particulier. Il permet également de créer et de supprimer des dossiers ou des fichiers.
- Lire et écrire des fichiers FileIO permet d'effectuer les opérations de base sur des fichiers et des dossiers (créer, écrire, lire, supprimer...).
- Graphisme et interfaces graphiques
- Un menu graphique Il s'agit d'un menu graphique dans lequel les articles se mettent sur plusieurs colonnes, en fonction de la taille de l'écran et des choix du développeur.
- Utils
- Imitation des fichiers de propriétés de J2SE D'une manière similaire que le font les fichiers de propriétés en J2SE, cette classe permet de stocker des informations dans un RecordStore afin de les récupérer lors d'une exécution ultérieure.
Sun
- Java ME Technology APIs & Docs
- Developer Forums :Java ME Technologies
- Forum J2ME : CLDC and MIDP
- Forum J2ME : CDC and Personal Profile
- Forum J2ME : Sun Java Wireless Toolkit
- FileConnection APIs
- platformRequest pour exécuter une application externe via son URL, ont peut appeler (call) un téléphone (selon la rfc2806 : URLs for Telephone Calls) ou le navigateur (browser) le tout selon le protocole de l'URL mise en argument. Egalement il permet de charger ou installer un .jar ou .jad
Premier test avec NetBeans et un PDA : HTC TyTN II
- Echec lors de l'installation du jad
- MIDlet: MobileApplication1 n'est pas fiable. Continuer ?
- MobileApplication1 ne peut être trouvé dans le dossier d'installation locale - 77
Résolu : suite à la compilation par NetBeans, j'ai du déployer le .jar et non le .jad
Tests suivants avec un SPV M650
Exécuter un programme externe
String progToLaunch = "http://www.placeoweb.com/"; boolean retour = false; retour = platformRequest(progToLaunch);
Permet de lancer le navigateur avec cette adresse de définie.
Tester vos connaissances
Ressources
- Documentation MIDP2
- Access Desktop Data from Mobile Devices
- The Complete Programming FAQ/Java/J2ME
- Qu'est ce que le J2ME, une KVM, une Configuration, un Profile, le CLDC, le MIDP, le SMS, le WAP, le STK ?
- Pratique de J2ME
- technorati, tag :
- javamidlet.com
Exécuter une application externe en Java
- Exécuter une application externe en Java.
- Runtime.exec() n'est pas des plus simple...
- J2ME Executer/lancer un programme externe avec des arguments
Open Source Softwares for Mobile Phone
Choix d'un framework ou libs pour développer rapidement du J2ME
- J2ME Polish et sa doc.
- J4ME est comme J2ME Polish, mais il s'agit d'une solution open source alternative, voici son utilisation avec Eclipse.
- Kuix (Kalmeo User Interface eXtensions) et son tutoriel Eclipse.
- lwuit et son tutoriel NetBeans.
Java embedded (embarqué)
J2ME RMS
- Ce cours de 2 heures, accompagné de 4 heures de travaux pratiques vise à étudier la plate-forme J2ME
- Une petite appli J2ME qui permet de saisir des mémos, de modifier et de faire des recherches parmi les mémos. Les mémos sont stockés en Record Store.
- Mobility Technical Articles
- J2ME record management store
- Le stockage persistent
RMS (Record Management System) est une API de stockage persistent sur le terminal. C'est en quelque sorte une base de données indépendante du terminal. Chaque enregistrement est représenté sous forme de tableau d'octets. La mise est jour est dite atomique : l'enregistrement entier est réécrit à chaque fois. Les enregistrements sont stockés dans ce que l'on appelle un Record store. Si l'on veut faire un parallèle avec les SGBD relationnels, RMS correspond au SGBD lui-même et le Record store à la table. D'ailleurs, le parallèle de la notion de clé primaire des bases de données relationnelles est le recordID. Il s'agit de l'identifiant de l'enregistrement. C'est un nombre entier. La valeur de l'ID du premier enregistrement est 1 et chaque nouvel enregistrement a une valeur ID augmentée de un. Plusieurs méthodes permettent de gérer les Records store. openRecordStore et closeRecordStore permettent respectivement d'ouvrir et de fermer un Record store. La liste de tous les Record store peut être obtenue par listRecordStore. deleteRecordStore en supprime un. Le nombre d'enregistrements dans un Record store est retourné par getNumRecords. Les opérations de base sur les enregistrements sont assurées par ces méthodes : addRecord (ajout), deleteRecord (suppression), getRecord (lecture), setRecord (modification), getRecordSize (taille de l'enregistrement). L'API RMS dispose cependant de quelques particularités supplémentaires, concernant la sélection des enregistrements. La première est l'utilisation de la méthode RecordEnumeration pour lister tous les enregistrements du Record store. La seconde est la possibilité de définir un filtre avec la méthode RecordFilter. Enfin, l'interface RecordComparator doit être implémentée pour que des enregistrements puissent être comparés et donc triés.
J2ME WS (Web Service) JSR 172
- Initiation aux Web-Services avec PHP5 et Java J2ME
- Introduction to J2ME Web Services
- Using a J2ME Client to Access a Web Service
- PHP Interacting with J2ME
- Turn Your J2ME Mobile Devices into Web Service Clients
- Using JSR-172 on any J2ME-enabled mobile phone (no additional tools like kSOAP)
Sun Mobile
- Sun Mobile Device Technology - Technical Articles & Tips
- Mobility Tech Tips (also see archive of older Java ME tips)
- Java ME Technical Articles