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

Post on 01-May-2015

216 views 0 download

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

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 (picciaia@di.unipi.it)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

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...............

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

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

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

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

88

S.O. per cellulariS.O. per cellulari

Microsoft Windows CEMicrosoft Windows CE Symbian OSSymbian OS

Palm OSPalm OS Embedded LinuxEmbedded Linux

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

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

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

1212

Programmazione di terminali Programmazione di terminali mobilimobili

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

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

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)

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

1616

Java MIDP – Java MIDP – esempioesempio

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

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

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

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

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

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

2323

Smartphone 2003 SDK – Smartphone 2003 SDK – esempioesempio

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

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

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

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

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

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)

3030

Symbian – Symbian – esempioesempio

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

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

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

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