Seminario Sviluppo mobile su Android - Roma Tre...
Transcript of Seminario Sviluppo mobile su Android - Roma Tre...
Corso diTelecomunicazioni Wireless
a.a. 2016-2017
Fondamenti di sviluppo mobile su
Android
© A. Tedeschi 2016/2017 1
Dott. Ing. A. Tedeschi
Dott. Ing. Antonio Tedeschi
Ph.D. Student
Signal Processing for Telecommunications and
Economics (SP4TE)
Contatti
Ricevimento
Da concordare via mail,
Via Volterra 62, Edificio Vasca Navale, 3 piano,
Laboratorio di SP4TE - stanza 3.1
© A. Tedeschi 2013/2014
Chi sono…
2
• Introduzione
• Android
• Android studio
© A. Tedeschi 2013/2014
Outline
3
Il materiale delle DEMO sarà messo a disposizione a fine lezione
© A. Tedeschi 2016/2017
Timeline tecnologia mobile
4
• 1973 : Ing. Cooper crea il
primo prototipo di telefono
cellulare
• 1974 : patent riguardante i
concetti base degli
smartphone
• 2000 – 2010: Mercato della
telefonia mobile dominato da
Symbian
• 2008 : Rilascio di Android sul
mercato globale
• 2010: Android conquista il
primato e diventa l’OS più
venduto
testo
Statistiche di mercato
5
Link video diffusione Android
Fonte Dati da consultare!
© A. Tedeschi 2016/2017
82,5%
4,9%
12,2 %
Vendite in Italia
Agosto Anno 2016
Android
iOS
Windows
Other
Vendite Agosto – anno 2013 e 2014
Android: storia (1/2)
6
Android Inc. fondata nel 2003 da Andy Rubin e Chris
White
• L’Idea: creare un SO open source diverso dai
competitor
• Problema: mancanza di fondi
• Soluzione: Nel 2005 Google acquista la società e
crea la «Google Mobile Division» con a capo
Rubin
• 2014 – Rubin annuncia le sue dimissioni per
dedicarsi alle startup
Open Handset Alliance:
• consorzio di aziende nel settore Hi Tech
• Permette la presentazione di Android nel 2007
rilasciando la prima SDK (Software Development
Kit)
© A. Tedeschi 2016/2017
SDK composta da:
• gli strumenti di sviluppo
• un emulatore del dispositivo
• un sistema di aggiornamenti dell’sdk
• la documentazione
• i tutorial di base per prendere familiarità con il sistema
La Mobile Division di Google nel 2009 riuscì a creare non un SO adatto
per un solo dispositivo ma un intero ecosistema.
Android: storia (2/2)
7
Curiosità:
• Per incentivare lo sviluppo di app Google creò l’Android Developer Challenge
con un montepremi di 10 milioni di dollari per le migliori 50 applicazioni
© A. Tedeschi 2016/2017
Versioni
8
Cupcake 1.5
2009
Gingerbread 2.3
2010
Donut 1.6
2009
Eclair 2.0
2009
Froyo 2.2
2010
Honeycomb 3.0
2011
Icecream Sandwich 4.0
2011
Jelly Bean 4.1
2012
KitKat 4.4
2013
Esistono oltre 12000 dispositivi con SO Android ufficialmente
supportati da Google
Lollipop 5.0
2014
© A. Tedeschi 2016/2017
Marshmallow 6.0
2015
Nougat 7.0
2016
Molteplici versioni + Molteplici Dispositivi =
Versioni
9
Infiniti aspetti da gestire
durante lo sviluppo di un app
Fondamentale:
• Essere compatibili con le versioni più diffuse
• Gestire opportunamente l’aspetto grafico
• Puntare su una grafica user friendly
© A. Tedeschi 2016/2017
Architettura
10© A. Tedeschi 2016/2017
• Linux Kernel
utilizzato nelle versione 2.6, versione 3.x (versione di Android dalla 4.0
alla 4.2), versione SELinux (Android ≥ 4.3 per approfondimenti su SELinux
http://selinuxproject.org/page/SEAndroid )
necessario per virtualizzare l’hardware sottostante
• Libraries
sono librerie native scritte in C/C++ (più performanti) rappresentati il
vero e proprio nucleo di gestione del sistema operativo. Tra queste
fondamentali sono
• Surface Manager: gestione interfaccia grafica
• Media Framework: gestione file multimediali
• SQLite: gestione e creazione di database leggeri (approfondimenti su
SQLite http://www.sqlite.org/)
Architettura
11© A. Tedeschi 2016/2017
Architettura
12
• Android Runtime
Offre la Dalvik Virtual Machine, macchina virtuale simile alla Java Virtual
Machine, ma che si differenzia da questa poiché in grado di leggere file con
estensione .dex, ottenuti durante la fase di compilazione
• Application Framework
un insieme di API Java che sfruttano le librerie in C/C++ definite nello strato
inferiore, per dare origine a operazioni ben precise, richiamate attraverso lo
strato Applications. Tra queste si ha ad esempio l’Activity Manager, gestore
dell’interfaccia grafica
• Applications
lo strato finale con cui l’utente interagisce con il sistema
© A. Tedeschi 2016/2017
Dalvik Virtual Machine
• Diversa dalla Java Virtual Machine
• Ottimizzata per esecuzione di app in ambienti a memoria ridotta.
Permette una riduzione del 50% di memoria fisica occupata dal file
generato
• Sfrutta le caratteristiche offerte dall’O.S.
• Basata sull’approccio Just-in-time: app compilata solo in parte dallo
sviluppatore, ogni volta la Dalvik dovrà eseguire il codice compilandolo
in linguaggio macchina in realtime per ogni esecuzione
• Capacità di eseguire un determinato bytecode, il DEX (Dalvik Executable),
ottimizzato per smartphone
• Ogni applicazione su Android ha un proprio processo e la sua
corrispondente istanza di Dalvik Virtual Machine
Architettura
13© A. Tedeschi 2016/2017
Android RunTime
• È il nuovo system runtime di Android
• Introdotto sperimentalmente da Google nella release KitKat 4.4
• Deve essere abilitata manualmente
• Sfrutta le caratteristiche offerte dall’O.S.
• Basata sull’approccio Ahead-of-time: app viene interamente compilata
durante l’installazione sul device e non durante l’esecuzione utilizzando il
dex2oat tool
• Vantaggi in termini di performance
• Aumentano i tempi di installazione di un app
• Miglioramento del garbage collection, sviluppo e debugging
• Fonte: https://source.android.com/devices/tech/dalvik/art.html
Architettura
14© A. Tedeschi 2016/2017
Due possibili strumenti per sviluppare
• Android Studio
• Eclipse + ADT plugin
Android: Ambienti di sviluppo
15© A. Tedeschi 2016/2017
Android Studio scaricabile al linkhttp://developer.android.com/sdk/installing/studio.html
Android Studio
17
Pro: • primo IDE professionale che offre una nuova esperienza di
sviluppo
• significativi miglioramenti per la gestione e lo sviluppo dei
progetti
• Supporto NDK (anche su Windows senza l’uso di Cygwing)
Contro: • presenza di bug,
• compilazione iniziale un po’ più lenta
© A. Tedeschi 2016/2017
(raccomandato)
Requisiti:
• Scaricare (e successivamente installare) L’SDK al
link http://developer.android.com/sdk/index.html#ExistingIDEPrendere nota del nome e della posizione in cui
è stata salvata l’SDK (verrà richiesta in seguito)
• Scaricare e Installare l’ADT Plugin
Android: Ambienti di sviluppo
18
Eclipse + ADT Plugin
© A. Tedeschi 2016/2017
Riavviato Eclipse la toolbar mostrerà
Eclipse + ADT Plugin
19
SDK Manager
Android Virtual Device Manager
© A. Tedeschi 2016/2017
20
SDK Manager
© A. Tedeschi 2016/2017
21
Android Virtual Device Manager
• Gestore dei dispositivi
virtuali di Android
• Permette la creazione di
dispositivi le cui
caratteristiche possono
essere definite in base
alle proprie esigenze
Pro
Si dispone di qualsiasi tipo
di device Android
Contro
L’emulatore è lento
© A. Tedeschi 2016/2017
22
Android Virtual Device Manager
© A. Tedeschi 2016/2017
23
Android Virtual Device Manager
© A. Tedeschi 2016/2017