1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili...

34
1 Sviluppo applicazioni Sviluppo applicazioni per terminali mobili per terminali mobili 05/10/2005 Pisa 05/10/2005 Pisa Progetto per il corso di ‘Reti Mobili’ Progetto per il corso di ‘Reti Mobili’ Danele Picciaia ([email protected]) Danele Picciaia ([email protected])

Transcript of 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili...

Page 1: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

11

Sviluppo applicazioni per Sviluppo applicazioni per terminali mobiliterminali mobili

05/10/2005 Pisa05/10/2005 Pisa

Progetto per il corso di ‘Reti Mobili’Progetto per il corso di ‘Reti Mobili’

Danele Picciaia ([email protected])Danele Picciaia ([email protected])

Page 2: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

22

ArgomentiArgomenti

Introduzione: evoluzione terminali mobili Introduzione: evoluzione terminali mobili Sistemi Operativi per terminali mobiliSistemi Operativi per terminali mobili Programmazione di t.m.Programmazione di t.m.

Java MIDPJava MIDP Smartphone 2003 SDKSmartphone 2003 SDK SymbianSymbian

ConclusioniConclusioni

Page 3: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

33

Introduzione: evoluzione terminali Introduzione: evoluzione terminali mobilimobili

Aumentano le risorse Hardware......Aumentano le risorse Hardware......

Motorola 8700Anno 1998GSM 900 MhzLCD b/wPeso 200 grAutonomia 60h SB

Nokia 6630Anno 2004Quadband, edge LCD 65k coloriCCD 1.3 MPixS.O. SymbianAutonomia 11g SB...............

Page 4: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

44

Introduzione: evoluzione terminali Introduzione: evoluzione terminali mobilimobili

....cresce la programmabilità....cresce la programmabilità

Aggiornamento Firmware

Ambienti IDE per lo sviluppo e il test delleApplicazioni per terminali mobili

Page 5: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

55

Introduzione: evoluzione terminali Introduzione: evoluzione terminali mobilimobili

SmartphoneSmartphone

Nel 2002 Nokia lancia il primo “Smartphone”

Terminale con elevate caratteristiche tecniche a metàstrada fra PDA e cellulare che rilancia la programmazionedi terminali mobili

Page 6: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

66

ArgomentiArgomenti

Introduzione: evoluzione terminali mobili Introduzione: evoluzione terminali mobili

Sistemi Operativi per Sistemi Operativi per terminali mobiliterminali mobili

Programmazione di t.m.Programmazione di t.m. Java MIDPJava MIDP Smartphone 2003 SDKSmartphone 2003 SDK SymbianSymbian

ConclusioniConclusioni

Page 7: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

77

S.O. per cellulariS.O. per cellulari

Perchè si può parlare di S.O.Perchè si può parlare di S.O. MicrokernelMicrokernel Supportano multitasking e Supportano multitasking e

multithreadingmultithreading Gerarchie di memoriaGerarchie di memoria Adottano Adottano verevere CPU (soprattuto RISC) CPU (soprattuto RISC) Supporto per il multimedia e le Supporto per il multimedia e le

comunicazionicomunicazioni

Page 8: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

88

S.O. per cellulariS.O. per cellulari

Microsoft Windows CEMicrosoft Windows CE Symbian OSSymbian OS

Palm OSPalm OS Embedded LinuxEmbedded Linux

Page 9: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

99

S.O. per cellulariS.O. per cellulari

Microsoft Windows CEMicrosoft Windows CE CE è la versione di windows embeddedCE è la versione di windows embedded PocketPC è una particolare versione di PocketPC è una particolare versione di

Win CE ottimizzata per PDA e Win CE ottimizzata per PDA e SmartphoneSmartphone

PocketPC 2003 è WinCE 4.2PocketPC 2003 è WinCE 4.2

Page 10: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

1010

S.O. per cellulariS.O. per cellulari

Symbian OSSymbian OS Sviluppato da consorsio Symbian (Nokia, Sviluppato da consorsio Symbian (Nokia,

Sony, Ericsson, Motorola, ecc..)Sony, Ericsson, Motorola, ecc..) Creato per cellulariCreato per cellulari Multithreading & Cooperative Multithreading & Cooperative

MultitaskingMultitasking Attualmente versione 7.0Attualmente versione 7.0

Page 11: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

1111

ArgomentiArgomenti

Introduzione: evoluzione terminali mobiliIntroduzione: evoluzione terminali mobili Sistemi Operativi per terminali mobiliSistemi Operativi per terminali mobili

Programmazione di t.m.Programmazione di t.m. Java MIDPJava MIDP Smartphone 2003 SDKSmartphone 2003 SDK SymbianSymbian

ConclusioniConclusioni

Page 12: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

1212

Programmazione di terminali Programmazione di terminali mobilimobili

Massima compatibilitàMassima compatibilità Potenza e flessibilitàPotenza e flessibilità

Page 13: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

1313

ArgomentiArgomenti

Introduzione: evoluzione terminali mobiliIntroduzione: evoluzione terminali mobili Sistemi Operativi per terminali mobiliSistemi Operativi per terminali mobili Programmazione di t.m.Programmazione di t.m.

Java MIDPJava MIDP Smartphone 2003 SDKSmartphone 2003 SDK SymbianSymbian

ConclusioniConclusioni

Page 14: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

1414

Java MIDP - Java MIDP - introduzioneintroduzione

MIDP = Mobile Information Device Profile

Java 2 Micro Edition (J2ME) e la versione “leggera” di Java 2 Java 2 Micro Edition (J2ME) e la versione “leggera” di Java 2 Standard Edition (J2SE) ottimizzata per terminali mobiliStandard Edition (J2SE) ottimizzata per terminali mobili

Con J2ME è possibile creare delle MIDlet, ossia applicazioni di Con J2ME è possibile creare delle MIDlet, ossia applicazioni di ridotte dimensioni che sfruttano un runtime ottimizzato per ridotte dimensioni che sfruttano un runtime ottimizzato per terminali e vengono eseguite da una KVMterminali e vengono eseguite da una KVM

J2ME prevede due livelliJ2ME prevede due livelli CDC (Connected Device Configuration) per dispositivi “always on” (es. CDC (Connected Device Configuration) per dispositivi “always on” (es.

PDA)PDA) CLDC (Connected Limited Device Configuration) per dispositivi meno CLDC (Connected Limited Device Configuration) per dispositivi meno

potenti, con poca banda e accesso discontinuo (es. Cellulari)potenti, con poca banda e accesso discontinuo (es. Cellulari) MIDP è una MIDP è una estenzioneestenzione che permette di interfacciarsi che permette di interfacciarsi

direttamente con l’hw del termialedirettamente con l’hw del termiale MIDP si presenta come un pacchetto di librerie (API)MIDP si presenta come un pacchetto di librerie (API)

Page 15: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

1515

Java MIDP – Java MIDP – Strumenti di sviluppoStrumenti di sviluppo

J2ME toolkit contiene:J2ME toolkit contiene: CompilatoreCompilatore EmulatoreEmulatore DocumentazioneDocumentazione

Non viene fornito ne un IDE, ne un editorNon viene fornito ne un IDE, ne un editor La sintassi è ovviamente JAVALa sintassi è ovviamente JAVA La struttura delle applicazioni è molto sempliceLa struttura delle applicazioni è molto semplice

Deve estendere la classe javax.microedition.midlet.MIDletDeve estendere la classe javax.microedition.midlet.MIDlet Deve implementare i metodi startApp, pauseApp, destroyAppDeve implementare i metodi startApp, pauseApp, destroyApp

Occorre far particolare attenzione alla progettazione delle Occorre far particolare attenzione alla progettazione delle interfacceinterfacce Non èsistono le classi AWT/SwingNon èsistono le classi AWT/Swing Si utilizzano una serie di Si utilizzano una serie di contenitoricontenitori come Display, Displayable, come Display, Displayable,

Screen, CanvamsScreen, Canvams

Page 16: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

1616

Java MIDP – Java MIDP – esempioesempio

Page 17: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

1717

Java MIDP – Java MIDP – esempioesempio

Classi “Classi “interessanti”interessanti”:: javax.microedition.io.Connectorjavax.microedition.io.Connector javax.microedition.io.SocketConnectijavax.microedition.io.SocketConnecti

on on javax.microedition.io.HttpConnection javax.microedition.io.HttpConnection

Page 18: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

1818

Java MIDP – Java MIDP – vantaggi e svantaggivantaggi e svantaggi

VantaggiVantaggi Facilità di utilizzo (Java-Style)Facilità di utilizzo (Java-Style) MultipiattaformaMultipiattaforma Dimensioni molto contenuteDimensioni molto contenute

SvantaggiSvantaggi L’accesso a funzionalità di “basso livello” è legato alla L’accesso a funzionalità di “basso livello” è legato alla

disponibilità di API fornite dal produttore del terminaledisponibilità di API fornite dal produttore del terminale Assenza di IDEAssenza di IDE

Page 19: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

1919

Java MIDP – Java MIDP – materialemateriale

Pagina di riferimento:Pagina di riferimento: http://java.sun.com/products/midp/http://java.sun.com/products/midp/

Download di J2MEDownload di J2ME http://java.sun.com/products/j2mewtoolkit/download-2_2.htmlhttp://java.sun.com/products/j2mewtoolkit/download-2_2.html

Ottimo tutorial in italianoOttimo tutorial in italiano http://www.wmlscript.it/j2me/index.asphttp://www.wmlscript.it/j2me/index.asp

Whitepaper su KVMWhitepaper su KVM http://java.sun.com/products/cldc/wp/KVMwp.pdfhttp://java.sun.com/products/cldc/wp/KVMwp.pdf

Testo Testo

ISBN: 0596002432autori: Qusay H. Mahmoudeditore: O'Reillylingua: Italianoanno: 2002pagine: 245

Page 20: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

2020

ArgomentiArgomenti

Introduzione: evoluzione terminali mobiliIntroduzione: evoluzione terminali mobili Sistemi Operativi per terminali mobiliSistemi Operativi per terminali mobili Programmazione di t.m.Programmazione di t.m.

Java MIDPJava MIDP

Smartphone 2003 SDKSmartphone 2003 SDK SymbianSymbian

ConclusioniConclusioni

Page 21: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

2121

Smartphone 2003 SDK - Smartphone 2003 SDK - introduzioneintroduzione

SDK della famiglia “embedded”SDK della famiglia “embedded” Si integra all’interno di Visual Studio 2003Si integra all’interno di Visual Studio 2003 Molta documentazioneMolta documentazione ProgrProgr ammazione Window-Styleammazione Window-Style .Net runtime.Net runtime

Page 22: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

2222

Smartphone 2003 SDK– Smartphone 2003 SDK– Strumenti di Strumenti di svilupposviluppo

Smartphone 2003 SDK contiene:Smartphone 2003 SDK contiene: EmulatoreEmulatore DocumentazioneDocumentazione Utility per debugging remotoUtility per debugging remoto

Supporta sintassi C#, VB.netSupporta sintassi C#, VB.net Per programmare in C++ esiste eVC++Per programmare in C++ esiste eVC++ Tutte le funzionalità vengono esposte come APITutte le funzionalità vengono esposte come API

Per la maggior parte esiste un porting in .NetPer la maggior parte esiste un porting in .Net Alcune sono accessibili solo da C++ o con P/InvokeAlcune sono accessibili solo da C++ o con P/Invoke

Il set dei controlli grafici è ridottoIl set dei controlli grafici è ridotto N.B.: Loopback connectionN.B.: Loopback connection

Page 23: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

2323

Smartphone 2003 SDK – Smartphone 2003 SDK – esempioesempio

Page 24: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

2424

Smartphone 2003 SDK – Smartphone 2003 SDK – esempioesempio

Namespace e Classi “Namespace e Classi “interessanti”interessanti”:: System.io.SocketSystem.io.Socket System.Web.Services System.Web.Services

Page 25: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

2525

Smartphone 2003 SDK – Smartphone 2003 SDK – vantaggi e vantaggi e svantaggisvantaggi

VantaggiVantaggi Curva di apprendimento molto bassaCurva di apprendimento molto bassa Molte informazioni di supportoMolte informazioni di supporto Debugger evoluto (Visual Studio)Debugger evoluto (Visual Studio) Dimensioni contenuteDimensioni contenute

SvantaggiSvantaggi Il terminale deve avere PocketPC 2003 Il terminale deve avere PocketPC 2003 Necessita di VisualStudio installatoNecessita di VisualStudio installato

Page 26: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

2626

Smartphone 2003 SDK – Smartphone 2003 SDK – materialemateriale

Pagina di riferimento:Pagina di riferimento: http://msdn.microsoft.com/pocketpc/http://msdn.microsoft.com/pocketpc/

Download SDKDownload SDK http://msdn.microsoft.com/downloads/http://msdn.microsoft.com/downloads/

Tutorials ed esempiTutorials ed esempi http://www.pocketpcdn.com/http://www.pocketpcdn.com/

Book on lineBook on line http://weblogs.asp.net/nleghari/articles/smartphone.aspxhttp://weblogs.asp.net/nleghari/articles/smartphone.aspx

TestiTesti

Page 27: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

2727

ArgomentiArgomenti

Introduzione: evoluzione terminali mobiliIntroduzione: evoluzione terminali mobili Sistemi Operativi per terminali mobiliSistemi Operativi per terminali mobili Programmazione di t.m.Programmazione di t.m.

Java MIDPJava MIDP Smartphone 2003 SDKSmartphone 2003 SDK

SymbianSymbian ConclusioniConclusioni

Page 28: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

2828

Symbian - Symbian - introduzioneintroduzione

SDK realizzato dalla NOKIASDK realizzato dalla NOKIA Esistono porting per altri brandEsistono porting per altri brand Possibilità di programmare in C++ o Java con diversi compilatori/IDEPossibilità di programmare in C++ o Java con diversi compilatori/IDE JAVA MIDP SDKJAVA MIDP SDK C++ SDKC++ SDK

Page 29: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

2929

Symbian – Symbian – Strumenti di sviluppoStrumenti di sviluppo

Nokia Developer’s Suite contiene:Nokia Developer’s Suite contiene: EmulatoreEmulatore DocumentazioneDocumentazione IDEIDE

Esisteono altri pacchetti per lo sviluppo javaEsisteono altri pacchetti per lo sviluppo java S60 Java SDKS60 Java SDK

Richiede IDE esternoRichiede IDE esterno Il set dei controlli grafici è ridottoIl set dei controlli grafici è ridotto Aggiunge funzionalità di basso livello (es Aggiunge funzionalità di basso livello (es

SMS) SMS)

Page 30: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

3030

Symbian – Symbian – esempioesempio

Page 31: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

3131

Symbian – Symbian – vantaggi e svantaggivantaggi e svantaggi VantaggiVantaggi

Programmazione Java-styleProgrammazione Java-style Integrabile con diversi IDE/compilatoriIntegrabile con diversi IDE/compilatori Accesso a funzionalità di basso livelloAccesso a funzionalità di basso livello

SvantaggiSvantaggi Richiede terminale SymbianRichiede terminale Symbian Poca documentazione, a volte non ben organizzataPoca documentazione, a volte non ben organizzata

Page 32: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

3232

Symbian – Symbian – materialemateriale

Pagina di riferimento:Pagina di riferimento: http://forum.nokia.comhttp://forum.nokia.com

Tutorials ed esempiTutorials ed esempi http://www.symbian.com/developerhttp://www.symbian.com/developer

TestiTesti

Programming the Java2 MicroEdition for Symbian OS

Author: Martin de JodeISBN 0-470-09223-8

Wireless Java for Symbian Devices Author: Jonathan AllinPublished by: Symbian PressPublished in: August 2001489 pages

Page 33: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

3333

ArgomentiArgomenti

Introduzione: evoluzione terminali mobiliIntroduzione: evoluzione terminali mobili Sistemi Operativi per terminali mobiliSistemi Operativi per terminali mobili Programmazione di t.m.Programmazione di t.m.

Java MIDPJava MIDP Smartphone 2003 SDKSmartphone 2003 SDK SymbianSymbian

ConclusioniConclusioni

Page 34: 1 Sviluppo applicazioni per terminali mobili 05/10/2005 Pisa Progetto per il corso di Reti Mobili Danele Picciaia (picciaia@di.unipi.it)

3434

ConclusioniConclusioni

I terminali mobili (cellulari) rappresentano oggi uno I terminali mobili (cellulari) rappresentano oggi uno strumento potente e programmabile utilizzando un vasto strumento potente e programmabile utilizzando un vasto insieme di toolsinsieme di tools

MIDP: strumento versatile e alla portata di tuttiMIDP: strumento versatile e alla portata di tutti Smartphone SDK: potente, ricco di documentazione, Smartphone SDK: potente, ricco di documentazione,

semplice da apprenderesemplice da apprendere Symbian: potente, ottimizzato per terminali NOKIA, Sony-Symbian: potente, ottimizzato per terminali NOKIA, Sony-

EricssonEricsson