Seminario Sviluppo mobile su Android - Roma Tre...

22
Corso di Telecomunicazioni Wireless a.a. 2016-2017 Fondamenti di sviluppo mobile su Android © A. Tedeschi 2016/2017 1 Dott. Ing. A. Tedeschi [email protected]

Transcript of Seminario Sviluppo mobile su Android - Roma Tre...

Page 1: Seminario Sviluppo mobile su Android - Roma Tre Universityhost.uniroma3.it/laboratori/sp4te/teaching/tw/documents/Seminario_… · iOS Windows Other Vendite Agosto –anno 2013 e

Corso diTelecomunicazioni Wireless

a.a. 2016-2017

Fondamenti di sviluppo mobile su

Android

© A. Tedeschi 2016/2017 1

Dott. Ing. A. Tedeschi

[email protected]

Page 2: Seminario Sviluppo mobile su Android - Roma Tre Universityhost.uniroma3.it/laboratori/sp4te/teaching/tw/documents/Seminario_… · iOS Windows Other Vendite Agosto –anno 2013 e

Dott. Ing. Antonio Tedeschi

Ph.D. Student

Signal Processing for Telecommunications and

Economics (SP4TE)

Contatti

[email protected]

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

Page 3: Seminario Sviluppo mobile su Android - Roma Tre Universityhost.uniroma3.it/laboratori/sp4te/teaching/tw/documents/Seminario_… · iOS Windows Other Vendite Agosto –anno 2013 e

• Introduzione

• Android

• Android studio

© A. Tedeschi 2013/2014

Outline

3

Il materiale delle DEMO sarà messo a disposizione a fine lezione

Page 4: Seminario Sviluppo mobile su Android - Roma Tre Universityhost.uniroma3.it/laboratori/sp4te/teaching/tw/documents/Seminario_… · iOS Windows Other Vendite Agosto –anno 2013 e

© 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

Page 5: Seminario Sviluppo mobile su Android - Roma Tre Universityhost.uniroma3.it/laboratori/sp4te/teaching/tw/documents/Seminario_… · iOS Windows Other Vendite Agosto –anno 2013 e

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

Page 6: Seminario Sviluppo mobile su Android - Roma Tre Universityhost.uniroma3.it/laboratori/sp4te/teaching/tw/documents/Seminario_… · iOS Windows Other Vendite Agosto –anno 2013 e

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

Page 7: Seminario Sviluppo mobile su Android - Roma Tre Universityhost.uniroma3.it/laboratori/sp4te/teaching/tw/documents/Seminario_… · iOS Windows Other Vendite Agosto –anno 2013 e

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

Page 8: Seminario Sviluppo mobile su Android - Roma Tre Universityhost.uniroma3.it/laboratori/sp4te/teaching/tw/documents/Seminario_… · iOS Windows Other Vendite Agosto –anno 2013 e

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

Page 9: Seminario Sviluppo mobile su Android - Roma Tre Universityhost.uniroma3.it/laboratori/sp4te/teaching/tw/documents/Seminario_… · iOS Windows Other Vendite Agosto –anno 2013 e

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

Page 10: Seminario Sviluppo mobile su Android - Roma Tre Universityhost.uniroma3.it/laboratori/sp4te/teaching/tw/documents/Seminario_… · iOS Windows Other Vendite Agosto –anno 2013 e

Architettura

10© A. Tedeschi 2016/2017

Page 11: Seminario Sviluppo mobile su Android - Roma Tre Universityhost.uniroma3.it/laboratori/sp4te/teaching/tw/documents/Seminario_… · iOS Windows Other Vendite Agosto –anno 2013 e

• 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

Page 12: Seminario Sviluppo mobile su Android - Roma Tre Universityhost.uniroma3.it/laboratori/sp4te/teaching/tw/documents/Seminario_… · iOS Windows Other Vendite Agosto –anno 2013 e

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

Page 13: Seminario Sviluppo mobile su Android - Roma Tre Universityhost.uniroma3.it/laboratori/sp4te/teaching/tw/documents/Seminario_… · iOS Windows Other Vendite Agosto –anno 2013 e

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

Page 14: Seminario Sviluppo mobile su Android - Roma Tre Universityhost.uniroma3.it/laboratori/sp4te/teaching/tw/documents/Seminario_… · iOS Windows Other Vendite Agosto –anno 2013 e

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

Page 15: Seminario Sviluppo mobile su Android - Roma Tre Universityhost.uniroma3.it/laboratori/sp4te/teaching/tw/documents/Seminario_… · iOS Windows Other Vendite Agosto –anno 2013 e

Due possibili strumenti per sviluppare

• Android Studio

• Eclipse + ADT plugin

Android: Ambienti di sviluppo

15© A. Tedeschi 2016/2017

Page 16: Seminario Sviluppo mobile su Android - Roma Tre Universityhost.uniroma3.it/laboratori/sp4te/teaching/tw/documents/Seminario_… · iOS Windows Other Vendite Agosto –anno 2013 e

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)

Page 17: Seminario Sviluppo mobile su Android - Roma Tre Universityhost.uniroma3.it/laboratori/sp4te/teaching/tw/documents/Seminario_… · iOS Windows Other Vendite Agosto –anno 2013 e

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

Page 18: Seminario Sviluppo mobile su Android - Roma Tre Universityhost.uniroma3.it/laboratori/sp4te/teaching/tw/documents/Seminario_… · iOS Windows Other Vendite Agosto –anno 2013 e

Riavviato Eclipse la toolbar mostrerà

Eclipse + ADT Plugin

19

SDK Manager

Android Virtual Device Manager

© A. Tedeschi 2016/2017

Page 19: Seminario Sviluppo mobile su Android - Roma Tre Universityhost.uniroma3.it/laboratori/sp4te/teaching/tw/documents/Seminario_… · iOS Windows Other Vendite Agosto –anno 2013 e

20

SDK Manager

© A. Tedeschi 2016/2017

Page 20: Seminario Sviluppo mobile su Android - Roma Tre Universityhost.uniroma3.it/laboratori/sp4te/teaching/tw/documents/Seminario_… · iOS Windows Other Vendite Agosto –anno 2013 e

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

Page 21: Seminario Sviluppo mobile su Android - Roma Tre Universityhost.uniroma3.it/laboratori/sp4te/teaching/tw/documents/Seminario_… · iOS Windows Other Vendite Agosto –anno 2013 e

22

Android Virtual Device Manager

© A. Tedeschi 2016/2017

Page 22: Seminario Sviluppo mobile su Android - Roma Tre Universityhost.uniroma3.it/laboratori/sp4te/teaching/tw/documents/Seminario_… · iOS Windows Other Vendite Agosto –anno 2013 e

23

Android Virtual Device Manager

© A. Tedeschi 2016/2017