Modulo su Parte III: Lezione 3: Sviluppo di applicazioni J2ME IDE ed emulatori Docente: Ing. Salvatore Orlando Dipartimento di Informatica e Sistemistica Via Claudio 21, 80125 Napoli
::. Contenuti della lezione IDE per lo sviluppo di Applicazioni J2ME J2ME Wireless Toolkit NetBeans Eclipse - MTJ WebSphere Studio Device Developer CarbIDE.j Emulatori di dispositivi J2ME
::. Integrated Development Enviroments (IDE) In linea di principio è possibile sviluppare una qualunque applicazione con un editor di testo ed un compilatore Nella pratica l utilizzo degli ambienti di sviluppo riduce drasticamente i tempi di sviluppo Nell ambito J2ME la necessità di un ambiente di sviluppo integrato è particolarmente sentita: Necessità di disegnare interfacce grafiche (a meno che non si usi il Foundation Profile) Gestione degli eventi di navigazione tra i Displayables delle MidLets Gestione degli optional packages da utilizzare nelle applicazioni (Es.: JSR-172 per i web services) Creazione del jad-file nelle applicazioni MIDP Gestione del Deployment Debugging (richiede un emulatore)
::. Integrated Development Enviroments (IDE) Nel seguito verranno presentati diversi ambienti di sviluppo per applicazioni J2ME Verranno prese in considerazione le seguenti caratteristiche: Disponibilità (Windows / Linux) Tipo Licenza (Commerciale / Shareware / Freeware / GPL / CPL ) Configurazioni e Profili Targeted Java Virtual Machine di riferimento Features specifiche J2ME (Es.: GUI Designers, On device debugging, ) Estendibilità dell ambiente di sviluppo
::. J2ME Wireless Toolkit Vendor: Sun Microsystems Licenza: Freeware (codice sorgente non disponibile) You may reproduce and use the Software for Your own Individual, Commercial, or Research and Instructional Use, subject to and conditioned on Your compliance with the Additional Terms below. Additional Terms Disponibilità: Windows / Linux Ultima versione conosciuta: 2.5.1 (22 maggio 2007) Configurazioni Targeted: CLDC (Esiste un analogo Sun Java Toolkit per CDC) Profili Targeted: MIDP Virtual Machine di riferimento: Sun CLDC Hotspot Implementation Url per il download: http://java.sun.com/products/sjwtoolkit/download-2_5_1.html
::. J2ME Wireless Toolkit Non è un vero e proprio IDE Non include tools quali code editors, gui generators o deploy managers Supporta firma digitale per le applicazioni Supporta obfuscation (con package di terze parti, ProGuard) Struttura delle cartelle di un progetto
::. J2ME Wireless Toolkit Caratteristiche Supportate (Optional Packages) Mobile Service Architecture (JSR 248) Java Technology for the Wireless Industry (JTWI) (JSR 185) PDA Optional Packages for the J2ME Platform (JSR 75) Java APIs for Bluetooth (JSR 82) Mobile Media API (MMAPI) (JSR 135) J2ME Web Services Specification (JSR 172) Security and Trust Services API for J2ME (JSR 177) Location API for J2ME (JSR 179) SIP API for J2ME (JSR 180) Mobile 3D Graphics API for J2ME (JSR 184) Wireless Messaging API (WMA) 2.0 (JSR 205) Content Handler API (JSR 211) Scalable 2D Vector Graphics API for J2ME (JSR 226) Payment API (JSR 229) Advanced Multimedia Supplements (JSR 234) Mobile Internationalization API (JSR 238) Java Binding for the OpenGL(R) ES API (JSR 239)
::. J2ME Wireless Toolkit Schermata principale e creazione di un nuovo progetto Console con log Operazioni
::. J2ME Wireless Toolkit Finestra Configurazione Progetto Selezione Piattaforma Target Versione MIDP / CLDC Packages Opzionali da Includere nel progetto Supporto WMA (Wireless Messaging API) Configurazione MidLet-suite Configurazione security permissions
::. J2ME Wireless Toolkit Finestra Configurazione Emulatore Connettività Emulatore (proxy server) Calibrazione performances Monitoraggio e Profiling Dimensione Aree di storage ed heap Locale del dispositivo Configurazione caratteristiche opzionali: Emulazione SMS per WMA Emulazione Bluetooth Parametri Emulazione Location, Payment e SIP
::. NetBeans Vendor: Sun Microsystems Licenza: CDDL (Common Development and Distribution License) Licenza world-wide, royalty-free, non exclusive. Variazioni al codice sorgente consentite Disponibilità: Windows / Linux / Solaris / MacOS Ultima versione conosciuta: 5.5.1 (prossimo il rilascio della versione 6) J2ME viene supportata mediante Add-Ons: Configurazione CLDC: NetBeans Mobility Pack for CLDC (ver. 7.3) Configurazione CDC: NetBeans Mobility Pack for CDC (ver. 2.0) Virtual Machine di riferimentio: Sun CLDC Hotspot Implementation (CLDC), Sun CDC Hotspot Implementation (CDC) URL per il download: www.netbeans.org
::. NetBeans Ambiente di sviluppo completo: Gui Designer per configurazione CLDC (LCDUi - SVG) Design Visuale Flusso comandi applicativi Gui Designer per configurazione CDC (AWT) Wizard per la creazione di clients di Web Application (JSP-Servlet) Wizard per sviluppo Web Service Client (JSR-172) Deployment gestito supporta FTP, SFTP, trasferimento diretto sul device Supporto per Obfuscation a 9 livelli Supporto per firma digitale MidLets
::. NetBeans Caratteristiche Supportate (Optional Packages) I packages Opzionali disponinbili dipendono dalla piattaforma utilizzata per lo sviluppo di un singolo progetto (gestibile dalle proprietà del progetto). Ad esempio, utilizzando il Wireless Toolkit 2.5.1 come piattaforma si hanno a disposizione tutte le API precedentemente elencate Utilizzando invece una piattaforma propietaria(es.: NokiaS40), si hanno a disposizione Vendor-Specific APIs, come Nokia User Interface
::. NetBeans Flow Designer Consente di specificare il flusso applicativo tra diversi Displayables ed element dei forms, associando azioni alla selezione di comandi
::. NetBeans Screen Designer Preview Form la dimensione dello schermo dipende dal profilo di emulazione selezionato Riepilogo comandi assegnati Palette elementi LCD UI Finestra proprietà elemento corrente
::. NetBeans Source Editor Codice Auto- Generato (non modificabile dal programmatore) Elenco metodi classe corrente
::. NetBeans Configurazione Emulatore Consente di configurare l emulatore in cui far girare la Midlet (o l applicazione CDC). Dal Menù tools selezionare Java Platform manager Piattaforme CDC / CLDC Accesso all utility di configurazione dell emulatore (software esterno)
::. NetBeans Esecuzione Qwerty device J2ME Wireless Toolkit 2.5.1 Default Color Phone J2ME Wireless Toolkit 2.2 S60 Emulator Nokia S60 3 Edition SDK for MIDP
::. Eclipse - MTJ Vendor: Eclipse Software Foundation Licenza: EPL (Eclipse Public License) Licenza world-wide, royalty-free, non exclusive. Variazioni al codice sorgente consentite Disponibilità: Windows / Linux / Solaris / Mac OS X Ultima versione conosciuta: 3.2.2 (12 febbraio 2007) E disponibile la release candidate 2 della versione 3.3 Eclipse è un framework concepito per lo sviluppo di una vasta gamma di applicazioni Il progetto Eclipse MTJ (Mobile Tools for Java) si propone di offrire un framework completo per lo sviluppo di applicazioni J2ME MTJ è inquadrato in un più ampio Eclipse Subproject, Device Software Platform Project (DSDP)
::. Eclipse - MTJ Virtual Machine di Riferimento: nessuna (la JVM utilizzata dipendente dal particolare SDK di sviluppo utilizzato insieme ad MTJ) URL per il download: www.eclipse.org Ultima versione di MTJ: sviluppo in corso attualmente è disponibile la versione 0.7, il rilascio della versione 1.0 è previsto per Settembre 2007 MTJ supporta sia la configurazione CLDC (profilo MIDP) che CDC (profili Foundation e Personal)
::. Eclipse - MTJ Caratteristiche IDE: Nessun GUI Editor Visuale (i form vanno creati a mano) Nessun Flow Designere Visuale Editing di JAD files assistito No Debug su Emulatore/Dispositivo No Deployment diretto su dispositivo Le caratteristiche dell IDE sono fortemente ridotte rispetto a NetBeans. MTJ è supportato da importanti aziende, quali Nokia ed IBM, e c è da attendersi che in futuro possa diventare una delle piattaforma di riferimento per lo sviluppo di applicazioni J2ME
::. Eclipse - MTJ Configurazione Ambienti di Runtime Configurazione MTJ 1. Piattaforme Dispositivi, fornite da terze parti (Es.: Sony Ericsson MIDP SDK 2.24), includenti librerie ed emulatori 2. Definizione Runtime Plaftorm (selezione di uno dei devices offerti dal Device Platform) 3. (Opzionale) Configurazione Security Manager 4. (Opzionale) Configurazione Providers Firma Digitale
::. Eclipse - MTJ Java Application Descriptor Editor
::. WebSphere Studio Device Developer Vendor: IBM Licenza: Commerciale E possibile ottenere una trial di 90 giorni Disponibilità: Windows / Linux Ultima versione conosciuta:5.7 (2005) Basato sulla piattaforma Eclipse Configurazioni Supportate: CDC, CLDC Profili Supportati: MIDP, Personal Profile, Foundation Profile Virtual Machine di Riferimento: IBM J9
::. WebSphere Studio Device Developer Caratteristiche del tutto simili a MTJ Il software è stato abbandonato, in quanto inglobato in un progetto di più ampio respiro, Lotus Expeditor La principale differenza di questo ambiente di sviluppo è che include i device platforms per J9 su diverse piattaforme: Windows/x86 Linux/x86 Windows CE/ARM Linux/ARM
::. CarbIDE.J Vendor: Nokia Licenza: Freeware Disponibilità: Windows Ultima versione conosciuta: 1.5 Installabile in diversi flavors: Standalone Integrato in Eclipse (versione consigliata 3.1) Integrato in Netbeans Integrato in Borland JBuilder
::. CarbIDE.J Virtual Machine di Riferimento: nessuna (dipende dagli SDK utilizzati) Configurazioni supportate: CDC, CLDC Profili Supportati: MIDP, Personal Profile, Personal Basis Profile, Foundation Profile URL per il download: http://forum.nokia.com/main/resources/tools_and_sdks/carbide/index.html (Richiesta registrazione gratuita al Forum Nokia) IDE Plugin SDK
::. CarbIDE.j Caratteristiche IDE: GUI Editor: Nokia UI Designer (Sviluppo di interfacce grafiche fortemente orientato a dispositivi Nokia, sia per la progettazione di applicazioni che di videogiochi) Flow Designer Visuale (Simile a quello fornito con NetBeans) Editing di JAD files assistito Wizard per sviluppo Web Service Client (JSR-172) Deployment gestito supporta trasferimento diretto sul device via Bluetooth Supporto per firma digitale MidLets Gestione Digital Rights Supporto per Debug sul Dispositivo
::. CarbIDE.j Nokia UI Designer Palette Elementi Forms Resource Tree Property Sheet Form Editor Selettore Layout schermo
::. CarbIDE.j Nokia Flow Designer Entry Point Della MidLet Exit Point Della Midlet Comando Displayables (Alert, Form, List) Resource Tree
::. CarbIDE.j Esecuzione Applicazione 1. Tools Carbide.j Start Emulators 2. Selezionare la classe principale della Midlet, il file JAD o il file JAR contenente la MidLet-suite 3. Selezionare l emulatore desiderato 4. Configurare se necessario, le opzioni dell emulatore 5. Premere il pulsante Emulate Nota: E necessario abbassare il source compliance level del compilatore a 1.4
::. CarbIDE.j Deployment Applicazione 1. Generazione Deployment Package 1. Tools Carbide.j New Application Package 2. Impostare attributi per il JAD (nome midlet, vendor, ) 3. Premere il pulsante Generate 2. Deployment su dispositivo 1. Tools Carbide.j Deplyment 2. Selezionare l applicazione da deployare (file JAD) 3. Connettere un dispositivo via Nokia PC Suite 4. Effettuare il Deployment sul device 5. L installazione della MidLet proseguirà sul dispositivo Nota: Deployment on device disponibile solo per dispositivi Nokia. E richiesto il software Nokia PC Suite
::. CarbIDE.j Debugging Debugging su Emulatore 1. Impostare parametri del debugger (Es.: aumentare tempo latenza) 2. Creare una configurazione di debug (Nokia SDK Plug-In) (attenzione questa caratteristica non funziona con Eclipse 3.2) 3. Selezionare SDK ed emulatore da utilizzare per il Debug 4. Impostare i breakpoints ed avviare il debugger
::. CarbIDE.j Debugging Debugging su Dispositivo Operazioni Una Tantum Installare l agente di Debug sul dispositivo (Software Symbian OS) Impostare la connessione Bluetooth tra il dispositivo e la workstation di sviluppo Abilitare il servizio ecmtagent nelle proprietà del driver Bluetooth sulla workstation di sviluppo Operazioni Da ripetere per ogni connessione Attivare l agente di debug sul dispositivo Utilizzare l utility Device Connection per avviare la connessione utilizzata dall agente di Debug Avviare una nuova configurazione di Debug utilizzando anziché un emulatore S60 Device Over Bluetooth Nota: On device debugging disponibile solo per dispositivi Nokia. E richiesto il software Nokia PC Suite
::. Emulatori Non sempre si ha a disposizione il dispositivo sul quale testare l applicazione Write once, run anywhere non è del tutto vero in J2ME Differenze nei layout dello schermo Differenze nel rendering dei componenti di Interfaccia utente Differenze relativamente agli optional packages disponibili E pertanto opportuno avere a disposizione emulatori di diversi dispositivi (per brand e modello) sui quali testare le proprie applicazioni Tali emulatori devono: Emulare l hardware fisico del dispositivo (Es.: processore xscale) Emulare il sistema operativo del dispositivo (Es.. Symbian OS) La JVM non va emulata! Gli stessi emulatori visti per Symbian OS possono essere utilizzati anche per testare applicazioni J2ME
::. Emulatori Sun Microsystems (Generici) Default Color Phone Qwerty Device Nokia Series 40 Emulator (Nokia 61xx, 62xx, 63xx) Series 60 Emulator (Nokia 66xx) Series 60 3 Edition Emulator (Nokia Nxx) Series 80 Emulator (Nokia Communicator 9xxx) Nokia 7710 Emulator Sony Ericsson Kxxx, P9xx, Wxxx, Zxxx