Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
European Master on Critical Networked SystemsModulo su Mobile Systems
Dipartimento di Informatica e SistemisticaVia Claudio 21, 80125 Napoli
Docente: Ing. Salvatore Orlando
Parte III: Sviluppo di applicazioni J2ME
Lezione 3: IDE ed emulatori
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. Contenuti della lezione
IDE per lo sviluppo di Applicazioni J2MEJ2ME Wireless ToolkitNetBeansEclipse - MTJWebSphere Studio Device DeveloperCarbIDE.j
Emulatori di dispositivi J2ME
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. Integrated Development Enviroments (IDE)
• In linea di principio è possibile sviluppare una qualunque applicazionecon 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)
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. 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
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. 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 Researchand Instructional Use, subject to and conditioned on Your compliance with the AdditionalTerms 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
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. 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
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. J2ME Wireless Toolkit
• 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)
Caratteristiche Supportate (Optional Packages)
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. J2ME Wireless Toolkit
Schermata principale e creazione di un nuovo progetto
Console con log Operazioni
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. J2ME Wireless ToolkitFinestra Configurazione Progetto
• Selezione Piattaforma Target
• Versione MIDP / CLDC
• Packages Opzionali da Includere nel progetto
• Supporto WMA (WirelessMessaging API)
• Configurazione MidLet-suite
• Configurazione security permissions
• …
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. J2ME Wireless ToolkitFinestra 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
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. 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
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. 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
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. NetBeans
I packages Opzionali disponinbilidipendono dalla piattaforma utilizzata per lo sviluppo di un singolo progetto (gestibile dalle proprietà del progetto).
Ad esempio, utilizzando il WirelessToolkit 2.5.1 come piattaforma si hanno a disposizione tutte le API precedentemente elencate
Utilizzando invece una piattaforma propietaria (Es.: Nokia S40), si hanno a disposizione Vendor-SpecificAPIs, come “Nokia User Interface”
Caratteristiche Supportate (Optional Packages)
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. NetBeans – Flow DesignerConsente di specificare il flusso applicativo tra diversi Displayables ed element dei forms, associando azioni alla selezione di comandi
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. NetBeans – Screen Designer
Palette elementi LCD UI
Preview Formla dimensione dello schermo dipende dal profilo di emulazione selezionato Riepilogo comandi assegnati
Finestra proprietàelemento corrente
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. NetBeans – Source Editor
Codice Auto-Generato (non modificabile dal programmatore)
Elenco metodi classe corrente
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. NetBeans – Configurazione EmulatoreConsente 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)
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. NetBeans – Esecuzione
Qwerty deviceJ2ME Wireless Toolkit 2.5.1
Default Color PhoneJ2ME Wireless Toolkit 2.2
S60 EmulatorNokia S60 3° Edition SDK for MIDP
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. 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 diapplicazioni
• Il progetto Eclipse – MTJ (Mobile Tools for Java) si propone di offrire unframework completo per lo sviluppo di applicazioni J2ME
• MTJ è inquadrato in un più ampio Eclipse Subproject, Device Software Platform Project (DSDP)
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. Eclipse - MTJ
• Virtual Machine di Riferimento: nessuna (la JVM utilizzata dipendente dalparticolare SDK di sviluppo utilizzato insieme ad MTJ)
• URL per il download: www.eclipse.org
• Ultima versione di MTJ: sviluppo in corsoattualmente è 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)
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. 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
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. Eclipse - MTJConfigurazione Ambienti di Runtime
Configurazione MTJ1. Piattaforme Dispositivi,
fornite da terze parti (Es.: Sony Ericsson MIDP SDK 2.24), includenti librerie ed emulatori
2. Definizione RuntimePlaftorm (selezione di uno dei devices offerti dal Device Platform)
3. (Opzionale) Configurazione SecurityManager
4. (Opzionale) Configurazione ProvidersFirma Digitale
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. Eclipse - MTJ
Java Application Descriptor Editor
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. WebSphere Studio Device Developer
• Vendor: IBM
• Licenza: CommercialeE’ 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
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. 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
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. 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
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. 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
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. 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
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. CarbIDE.j – Nokia UI Designer
Form Editor
Selettore Layout schermo
Palette Elementi Forms
Property Sheet
Resource Tree
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. CarbIDE.j – Nokia Flow Designer
Displayables(Alert, Form, List)
Entry Point Della MidLet
Comando
Exit Point Della Midlet
Resource Tree
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. CarbIDE.j – Esecuzione Applicazione
Nota: E’ necessario abbassare il source compliance level del compilatore a 1.4
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”
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. CarbIDE.j – Deployment Applicazione
Nota: Deployment on device disponibile solo per dispositivi Nokia. E’ richiesto il software Nokia PC Suite
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
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. CarbIDE.j – DebuggingDebugging 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
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. CarbIDE.j – Debugging
Nota: On device debugging disponibile solo per dispositivi Nokia. E’ richiesto il software Nokia PC Suite
Debugging su DispositivoOperazioni 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”
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. 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
Napoli, Maggio-Giugno 07Mobilab European Master on Critical Networked Systems
Mobile SystemsS. Russo
::. 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