Android: da dove viene, dove è e dove - ordineingegneri.bergamo.it · 16-24 ore di lezione...
Transcript of Android: da dove viene, dove è e dove - ordineingegneri.bergamo.it · 16-24 ore di lezione...
Android: da dove viene, dove è e dove va…
Ing. Vincenzo Manzoni, PhD vincenzomanzoni.com
Commissione Informatica
Ordine degli Ingegneri della Provincia di Bergamo
Presentazione
• Laurea in Ingegneria Informatica (UniBg, 2007) – Fine tuning automatico di parametri di
sistemi di controllo (Same Deutz-Fahr)
• PhD in Information Technologies (PoliMi, 2011) – Vehicle-to-X interactions (Piaggio,
Teleparking, RSE, Massachusetts Institute of Technology)
• Ricercatore in TenarisDalmine (2011 ora) – Analisi , progetto e prototipazione di
sistemi di controllo di processo.
– Analisi dati, data mining.
11 maggio 2012 2 Seminario Android
Market Share: stato
Penetrazione di Smartphone tra gli iscritti al seminario Maggio 2012
11 maggio 2012 3 Seminario Android
I due grandi competitor
Android
• Sistema operativo per smartphone e tablet.
• Sviluppato dalla Open Handset Alliance (86 aziende), guidata da Google.
• Concesso in licenza a molti produttori (HTC, Samsung, Motorola).
• Approccio aperto.
• Market: Play Store
Apple iOS
• Sistema operativo per smartphone, lettori mp3 e tablet.
• Sviluppato da Apple.
• Utilizzato solo su dispositivi Apple (iPhone, iPod e iPad).
• Approccio chiuso.
• Market: Apple Store
11 maggio 2012 4 Seminario Android
Timeline
2007 2008 2009 2010 2011 2012 2013
iPhone OS 1.0 (iPhone)
iPhone OS 2.0 (iPhone 3G)
iPhone OS 3.0 (iPhone 3GS )
iOS 4.0 (iPhone 4)
iOS 5.0 (iPhone 4S)
Android 1.x Android 2.x
Android 3.x (tablet)
Android 4.x
11 maggio 2012 5 Seminario Android
Frammentazione interna
Aggiornato al 1 maggio 2012. Source: http://developer.android.com/resources/dashboard/platform-versions.html
2007 2008 2009 2010 2011 2012 2013
Android 1.x Android 2.x Android 3.x (tablet) Android 4.x
11 maggio 2012 6 Seminario Android
Android La storia
• Android Inc. viene fondata nel 2003. Google la acquista nel 2005.
• Serie 1.x: 2008-2009 – (Quasi) tutte le funzioni, ma implementate in modo povero.
– Maturazione con le versioni 1.5-1.6.
– Dalla 1.5 si iniziano a chiamare le versioni con nomi di dolci.
• Serie 2.x (Eclair): 2009 – UI rinnovata, riservata a smartphone con hardware potente.
– 2.2.x (Froyo): Adobe Flash, Javascript V8 nel browser, WIFi tethering
– 2.3.x (Gingerbread): nuovo redesign grafico, VoIP, NFC, supporto per nuovi sensori
• 3.x (Honeycomb): 2011 – Solo per tablet (e.g. Motorola Xoom)
• 4.0 (Ice Cream Sandwich): 2011 – Nuovo design UI
– Condivisione informazioni via NFC
11 maggio 2012 7 Seminario Android
Android
Architettura del sistema operativo: 3 layer.
1. Kernel: Linux
2. Middleware (librerie e API): C
3. Applicazioni: Java, interpretate dalla Dalvik virtual machine
11 maggio 2012 8 Seminario Android
Android Features
• Java e C/C++ (Native Development Kit)
• Multitasking
• Connettività
– GSM/GPRS/EDGE/UMTS, WiFi, Bluetooth, NFC
• Sensing
– GPS, accelerometri, magnetometri, sensori di luminosità, telecamera frontale e posteriore, microfono.
• Multitouch
• Storage
– File o SQLite
• Supporto per diverse risoluzioni di display
• Market
11 maggio 2012 10 Seminario Android
Android vs. iPhone (1/2)
Caratteristica Android iPhone
Ambiente di sviluppo Eclipse + Android SDK su Linux, Mac e Windows.
iPhone SDK su Mac (Mac Intel con Snow Leopard)
Account per lo sviluppo Non necessario Necessario (privato: 79 €, aziende: 299 €)
Curva di apprendimento Adeguata Ripida
Linguaggio Java (semplice) C, ObjectiveC, stack Cocoa
Librerie (Quasi) tutte quelle di Java Specifiche per ObjectiveC
Gestione della memoria Garbage collector Automatico da iOS 5.0. Manuale per le versioni precedenti.
Debug Integrato, flessibile Macchinoso
Bluetooth Libero Certificazione Apple
11 maggio 2012 11 Seminario Android
Android vs. iPhone (2/2)
Caratteristica Android iPhone
NFC Supporto su telefoni di fascia alta (Google Nexus S, Google Galaxy S, …)
No
Multitasking Sì Parziale
Adobe Flash Sì No
Accelerometri, magnetometri Sì Sì
Storage Sì, interno e esterno Sì, solo interno
Batteria rimovibile Sì No
Dispositivi Molti, con differenti caratteristiche tecniche.
iPhone 3GS, iPhone 4, iPhone 4S
Prezzo > 200 euro > 400 euro (3GS)
11 maggio 2012 12 Seminario Android
I tre sensi di Android
1. Udito, o il comunicare
2. Tatto, o il sentire
3. Vista, o interpretare
… per l’olfatto e il gusto, ci si sta lavorando
11 maggio 2012 13 Seminario Android
Udito, o Comunicare
Near Field Communication (NFC)
• RFID-like
• Scambio di dati tra smartphone e tag (o smartphone e smartphone) a pochi cm.
– Piccole transazioni finanziarie (biglietti trasporti)
– Setup più complessi (reti WiFi)
– Identificazione di oggetti
• Dispositivi Android (pochi!) – http://www.nfcworld.com/nfc-
phones-list/
11 maggio 2012 16 Seminario Android
Tatto, o sentire
• Localizzazione – Network-based
– GPS (Global Positioning System)
– A-GPS (Assisted GPS)
• Sensori
11 maggio 2012 17 Seminario Android
Localizzazione Consumo di batteria vs. qualità
Network based Localization GPS based Localization
11 maggio 2012 Seminario Android 18
Sensori
I dispositivi Android possono essere equipaggiati con diversi tipi di sensori:
Fisici • Accelerometro
• Giroscopio
• Sensori di illuminazione
• Prossimità
Virtuali • Orientamento
• Accelerazione lineare
• Gravità
11 maggio 2012 19 Seminario Android
Vista, o interpretare
• Uso di codici visuali per interagire con oggetti del mondo reale.
• Uso di localizzazione e orientamento (accelerometri + magnetometro) per la realtà aumentata.
11 maggio 2012 20 Seminario Android
Tag visuali
Codici a barre tradizionali (uno dei tanti standard)
Codici QR Microsoft Tag
ECC 200 Data Matrix Codice Aztec
11 maggio 2012 21 Seminario Android
Codici QR
• Quick Response code
• Bidimensionale (o barcode a matrice)
• Progettato per essere decodificato velocemente
• Può contenere ogni tipo di dato – binario, ASCII
– Testo semplice, indirizzi URL, contatti
• Standard ISO (brevetto Denso, non esercitato).
• Standard per codificare le informazioni: – de facto
– NTTDoCoMo
11 maggio 2012 22 Seminario Android
Codici QR codifica delle informazioni
Contenuto Formato de facto NTT DoCoMo
URL http://www.smigroup.it (meno frequentemente, URLTO:smigroup.it)
MEBKM
Mail mailto:[email protected] (tuttavia, dovrebbe bastare [email protected])
MATMSG
Numero di telefono tel:+393493728584
Contatto vCard (verboso!) MECARD
SMS, MMS sms:+393493728584 SMSTO:+393493728584
Informazione geografica
geo:45.8300,9.6667,340 (latitudine, longitudine, altitudine)
Riferimento: NTT DoCoMo http://www.nttdocomo.co.jp/english/service/imode/make/content/barcode/function/application/
23 Seminario Android 11 maggio 2012
Codici QR Versioni
Versione Righe/Colonne Livello corr. errori
Caratteri alfanumerici
1 21 L 25
M 20
Q 16
H 10
2 25 L 47
M 38
Q 29
H 20
…
4 33 L 114
M 90
Q 67
H 50
Codice livello
Errori corretti
L 7%
M 15%
Q 25%
H 30%
Versione ragionevolmente decodificabile dai telefoni
cellulari.
La versione viene (solitamente) scelta dal
generatore, in funzione dei caratteri da codificare.
24 Seminario Android 11 maggio 2012
Android Sistema di controllo per dispositivi industriali
11 maggio 2012 Seminario Android 25
Comunicazione a corto raggio
(Bluetooth, NFC, WiFi)
Comunicazione a medio-lungo raggio (WiFi, GPRS/UMTS)
Uso dei Android come controllo di dispositivi industriali
• Codice IP
– Standard IEC 60529
– Classifica protezione di case meccanici contro oggetti solidi (polvere) e acqua.
Solidi IPAB
Liquidi
Livello Solidi Liquidi
0 Nessuna protezione Nessuna protezione
1 > 50 mm Caduta di gocce d’acqua
2 > 12.5 mm Caduta di gocce d’acqua (max 15°)
3 > 2.5 mm Pioggia
4 > 1 mm Spruzzi
5 Polvere, parzialmente Getti
6 Polvere, completamente Ondate
7 - Immersione
8 - Sommersione
11 maggio 2012 26 Seminario Android
Case e Smartphone Android IP67
Smartphone protetti IP by-design
Motorola Defy: IP67!
Protezioni IP
Protezioni non IP
11 maggio 2012 27 Seminario Android
Sviluppo di app Android Requisiti software e hardware
• Computer con Windows / Mac / Linux – Sviluppo per iPhone richiede un Mac.
• (Almeno) Un dispositivo Android – Preferibilmente, definire un target uno per ogni fascia.
• Emulatore?
11 maggio 2012 30 Seminario Android
Modalità di sviluppo
• Attualmente esistono tre modalità di sviluppo di applicazioni per Android: – ambiente di sviluppo grafico
– ambienti write once, compile anywhere
– ambiente di sviluppo nativo
complessità
fles
sib
ilità
nativo
write once, run anywhere
grafico
11 maggio 2012 31 Seminario Android
Sviluppo grafico MIT App Inventor
• Sviluppata inizialmente da Google, è stata ora ceduta al Center for Mobile Learning del MIT (http://beta.appinventor.mit.edu).
• Non permette l’accesso a tutte le funzionalità del sistema.
Co
mp
on
enti
Preview dell’applicazione
Progetto dell’interfaccia Progetto della logica
11 maggio 2012 32 Seminario Android
Sviluppo write once run anywhere PhoneGap, Appcelerator
• Sviluppo ad alto livello: HTML5, CSS3 e Javascript.
• Compilazione di codice nativo.
• Diverse piattaforme supportate, tra cui Android, iOS, RIM, Windows Phone.
Workflow di sviluppo di PhoneGap
PhoneGap: www.phonegap.com Appcelerator: www.appcelerator.com 11 maggio 2012 33 Seminario Android
Il market
11 maggio 2012 36 Seminario Android
0
100000
200000
300000
400000
500000
600000
nov-07 giu-08 dic-08 lug-09 gen-10 ago-10 feb-11 set-11 apr-12 ott-12
# a
pp
Android iOS
Esempi
1. CO2Go – Solo telefono cellulare.
– Sampling e analisi dei segnali in tempo reale.
2. Copenhagen Wheel 1. Interazione con dispositivo embedded
Bluetooth.
2. GPS, mappe.
3. SMy Reader 1. Applicazione industriale.
2. Interazione con QR code.
11 maggio 2012 37 Seminario Android
Applicazioni Android sviluppate CO2GO
• Logging di GPS e accelerometri.
• Analisi di segnali in tempo reale
– filtraggio;
– FFT.
• Data mining.
• Interazioni con API Google Maps.
Riferimento: http://senseable.mit.edu/co2go/
11 maggio 2012 38 Seminario Android
Applicazioni Android sviluppate Copenhagen Wheel
Applicazione smartphone per Copenhagen Wheel
MIT, 2010
• Joint project tra MIT, Ducati Energia e Ministero dell’Ambiente italiano.
• Ruota elettrica che converte biciclette tradizionali in biciclette elettriche.
• Applicazione smartphone per il controllo remoto.
Riferimento: http://senseable.mit.edu/copenhagenwheel
11 maggio 2012 39 Seminario Android
Applicazioni Android sviluppate Copenhagen Wheel
• Collegamento Bluetooth verso hardware embedded.
• Localizzazione.
• Google Maps.
• Interazione REST con server web.
• Complessi layout grafici.
Localizzazione e Google Maps
Dat
i da
serv
er R
EST
Collegamenti Bluetooth
Layout grafico
11 maggio 2012 40 Seminario Android
Applicazioni Android sviluppate SMy Reader
• Decodifica di codici QR.
• Chiamate REST ad API.
• Aggiornamento automatico a nuove versioni.
11 maggio 2012 Seminario Android 41
Riferimenti web e libri per iniziare
• Dev Guide, da Android Developers: http://developer.android.com/guide/index.html
• Reference, da Android Developers: http://developer.android.com/reference/packages.html
• Libri:
11 maggio 2012 42 Seminario Android
Corso avanzato Sviluppo di applicazioni per smartphone Android
16-24 ore di lezione frontale + esercizi.
1. Approfondimento dettagliato delle tecnologie mostrate in questo seminario.
2. Fondamenti di progetto e di programmazione di applicazioni per Android. – Gestione del ciclo di vita di una applicazione.
– Applicazioni multi-thread.
– Interfacce grafiche.
– Storage su file e database relazionale.
– Internazionalizzazione.
– Localizzazione network-based e GPS based.
– Acquisizione ed elaborazione di segnali dai sensori (accelerometri, magnetometro, …).
– Interpretazione di codici visuali 1D, 2D, QR.
– Bluetooth.
– Pubblicare una applicazione sul market.
11 maggio 2012 43 Seminario Android
Ringraziamenti
• Tutti voi che siete qui!
• La Commissione Informatica, in particolare: – Ing. Luca Armanni, presidente
– Ing. Umberto Noris
– Ing. Enzo Previtali
– Ing. Alberto Taiocchi
Ing. Vincenzo Manzoni, PhD web: vincenzomanzoni.com e-mail: [email protected]
11 maggio 2012 44 Seminario Android