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