Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di ‘Reti Mobili’ Danele Picciaia ([email protected]) 1 Argomenti Introduzione: evoluzione terminali mobili Sistemi Operativi per terminali mobili Programmazione di t.m. Java MIDP Smartphone 2003 SDK Symbian Conclusioni 2 Introduzione: evoluzione terminali mobili Aumentano le risorse Hardware...... Motorola 8700 Anno 1998 GSM 900 Mhz LCD b/w Peso 200 gr Autonomia 60h SB Nokia 6630 Anno 2004 Quadband, edge LCD 65k colori CCD 1.3 MPix S.O. Symbian Autonomia 11g SB ..... ..... ..... 3 Introduzione: evoluzione terminali mobili ....cresce la programmabilità Ambienti IDE per lo sviluppo e il test delle Applicazioni per terminali mobili Aggiornamento Firmware 4 Introduzione: evoluzione terminali mobili Smartphone Nel 2002 Nokia lancia il primo “Smartphone” Terminale con elevate caratteristiche tecniche a metà strada fra PDA e cellulare che rilancia la programmazione di terminali mobili 5 Argomenti Introduzione: evoluzione terminali mobili Sistemi mobili Programmazione di t.m. Operativi per terminali Java MIDP Smartphone 2003 SDK Symbian Conclusioni 6 S.O. per cellulari Perchè si può parlare di S.O. Microkernel Supportano multitasking e multithreading Gerarchie di memoria Adottano vere CPU (soprattuto RISC) Supporto per il multimedia e le comunicazioni 7 S.O. per cellulari Microsoft Windows CE Symbian OS Palm OS Embedded Linux 8 S.O. per cellulari Microsoft Windows CE CE è la versione di windows embedded PocketPC è una particolare versione di Win CE ottimizzata per PDA e Smartphone PocketPC 2003 è WinCE 4.2 9 S.O. per cellulari Symbian OS Sviluppato da consorsio Symbian (Nokia, Sony, Ericsson, Motorola, ecc..) Creato per cellulari Multithreading & Cooperative Multitasking Attualmente versione 7.0 10 Argomenti Introduzione: evoluzione terminali mobili Sistemi Operativi per terminali mobili Programmazione di t.m. Java MIDP Smartphone 2003 SDK Symbian Conclusioni 11 Programmazione di terminali mobili Massima compatibilità Potenza e flessibilità 12 Argomenti Introduzione: evoluzione terminali mobili Sistemi Operativi per terminali mobili Programmazione di t.m. Java MIDP Smartphone 2003 SDK Symbian Conclusioni 13 Java MIDP - introduzione MIDP = Mobile Information Device Profile Java 2 Micro Edition (J2ME) e la versione “leggera” di Java 2 Standard Edition (J2SE) ottimizzata per terminali mobili Con J2ME è possibile creare delle MIDlet, ossia applicazioni di ridotte dimensioni che sfruttano un runtime ottimizzato per terminali e vengono eseguite da una KVM J2ME prevede due livelli CDC (Connected Device Configuration) per dispositivi “always on” (es. PDA) CLDC (Connected Limited Device Configuration) per dispositivi meno potenti, con poca banda e accesso discontinuo (es. Cellulari) MIDP è una estenzione che permette di interfacciarsi direttamente con l’hw del termiale MIDP si presenta come un pacchetto di librerie (API) 14 Java MIDP – Strumenti di sviluppo J2ME toolkit contiene: Non viene fornito ne un IDE, ne un editor La sintassi è ovviamente JAVA La struttura delle applicazioni è molto semplice Compilatore Emulatore Documentazione Deve estendere la classe javax.microedition.midlet.MIDlet Deve implementare i metodi startApp, pauseApp, destroyApp Occorre far particolare attenzione alla progettazione delle interfacce Non èsistono le classi AWT/Swing Si utilizzano una serie di contenitori come Display, Displayable, Screen, Canvams 15 Java MIDP – esempio 16 Java MIDP – esempio Classi “interessanti”: javax.microedition.io.Connector javax.microedition.io.SocketConnection javax.microedition.io.HttpConnection 17 Java MIDP – vantaggi e svantaggi Vantaggi Facilità di utilizzo (Java-Style) Multipiattaforma Dimensioni molto contenute Svantaggi L’accesso a funzionalità di “basso livello” è legato alla disponibilità di API fornite dal produttore del terminale Assenza di IDE 18 Java MIDP – materiale Pagina di riferimento: Download di J2ME http://www.wmlscript.it/j2me/index.asp Whitepaper su KVM http://java.sun.com/products/j2mewtoolkit/download-2_2.html Ottimo tutorial in italiano http://java.sun.com/products/midp/ http://java.sun.com/products/cldc/wp/KVMwp.pdf Testo ISBN: 0596002432 autori: Qusay H. Mahmoud editore: O'Reilly lingua: Italiano anno: 2002 pagine: 245 19 Argomenti Introduzione: evoluzione terminali mobili Sistemi Operativi per terminali mobili Programmazione di t.m. Java MIDP Smartphone 2003 SDK Symbian Conclusioni 20 Smartphone 2003 SDK - introduzione SDK della famiglia “embedded” Si integra all’interno di Visual Studio 2003 Molta documentazione Progr ammazione Window-Style .Net runtime 21 Smartphone 2003 SDK– Strumenti di sviluppo Smartphone 2003 SDK contiene: Supporta sintassi C#, VB.net Per programmare in C++ esiste eVC++ Tutte le funzionalità vengono esposte come API Emulatore Documentazione Utility per debugging remoto Per la maggior parte esiste un porting in .Net Alcune sono accessibili solo da C++ o con P/Invoke Il set dei controlli grafici è ridotto N.B.: Loopback connection 22 Smartphone 2003 SDK – esempio 23 Smartphone 2003 SDK – esempio Namespace e Classi “interessanti”: System.io.Socket System.Web.Services 24 Smartphone 2003 SDK – vantaggi e svantaggi Vantaggi Curva di apprendimento molto bassa Molte informazioni di supporto Debugger evoluto (Visual Studio) Dimensioni contenute Svantaggi Il terminale deve avere PocketPC 2003 Necessita di VisualStudio installato 25 Smartphone 2003 SDK – materiale Pagina di riferimento: Download SDK http://www.pocketpcdn.com/ Book on line http://msdn.microsoft.com/downloads/ Tutorials ed esempi http://msdn.microsoft.com/pocketpc/ http://weblogs.asp.net/nleghari/articles/smartphone.aspx Testi 26 Argomenti Introduzione: evoluzione terminali mobili Sistemi Operativi per terminali mobili Programmazione di t.m. Java MIDP Smartphone 2003 SDK Symbian Conclusioni 27 Symbian - introduzione SDK realizzato dalla NOKIA Esistono porting per altri brand Possibilità di programmare in C++ o Java con diversi compilatori/IDE JAVA MIDP SDK C++ SDK 28 Symbian – Strumenti di sviluppo Nokia Developer’s Suite contiene: Emulatore Documentazione IDE Esisteono altri pacchetti per lo sviluppo java S60 Java SDK Richiede IDE esterno Il set dei controlli grafici è ridotto Aggiunge funzionalità di basso livello (es SMS) 29 Symbian – esempio 30 Symbian – vantaggi e svantaggi Vantaggi Programmazione Java-style Integrabile con diversi IDE/compilatori Accesso a funzionalità di basso livello Svantaggi Richiede terminale Symbian Poca documentazione, a volte non ben organizzata 31 Symbian – materiale Pagina di riferimento: Tutorials ed esempi http://forum.nokia.com http://www.symbian.com/developer Testi Programming the Java2 Micro Edition for Symbian OS Author: Martin de Jode ISBN 0-470-09223-8 Wireless Java for Symbian Devices Author: Jonathan Allin Published by: Symbian Press Published in: August 2001 489 pages 32 Argomenti Introduzione: evoluzione terminali mobili Sistemi Operativi per terminali mobili Programmazione di t.m. Java MIDP Smartphone 2003 SDK Symbian Conclusioni 33 Conclusioni I terminali mobili (cellulari) rappresentano oggi uno strumento potente e programmabile utilizzando un vasto insieme di tools MIDP: strumento versatile e alla portata di tutti Smartphone SDK: potente, ricco di documentazione, semplice da apprendere Symbian: potente, ottimizzato per terminali NOKIA, Sony-Ericsson 34