Fondamenti di sviluppo mobile su Android Dott. Ing. A. Tedeschi antonio.tedeschi@uniroma3.it Corso di Telecomunicazioni Wireless a.a. 2016-2017 1
Chi sono Dott. Ing. Antonio Tedeschi Ph.D. Student Signal Processing for Telecommunications and Economics (SP4TE) Contatti antonio.tedeschi@uniroma3.it Ricevimento Da concordare via mail, Via Volterra 62, Edificio Vasca Navale, 3 piano, Laboratorio di SP4TE - stanza 3.1 A. Tedeschi 2013/2014 2
Outline Introduzione Android Android studio Il materiale delle DEMO sarà messo a disposizione a fine lezione A. Tedeschi 2013/2014 3
Timeline tecnologia mobile 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 4
Statistiche di mercato Vendite Agosto anno 2013 e 2014 testo 4,9% 12,2 % Vendite in Italia Agosto Anno 2016 Android ios 82,5% Windows Other Link video diffusione Android Fonte Dati da consultare! 5
Android: storia (1/2) 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) 6
Android: storia (2/2) 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. 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 7
Versioni Cupcake 1.5 2009 Donut 1.6 2009 Eclair 2.0 2009 Froyo 2.2 2010 Gingerbread 2.3 2010 Honeycomb 3.0 2011 Icecream Sandwich 4.0 2011 Jelly Bean 4.1 2012 KitKat 4.4 2013 Lollipop 5.0 2014 Marshmallow 6.0 2015 Nougat 7.0 2016 Esistono oltre 12000 dispositivi con SO Android ufficialmente supportati da Google 8
Versioni Molteplici versioni + Molteplici Dispositivi = 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 9
Architettura 10
Architettura 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/) 11
Architettura 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 12
Architettura 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 13
Architettura 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 14
Android: Ambienti di sviluppo Due possibili strumenti per sviluppare Android Studio Eclipse + ADT plugin 15
Android Studio Android Studio scaricabile al link http://developer.android.com/sdk /installing/studio.html 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 (raccomandato) 17
Android: Ambienti di sviluppo Eclipse + ADT Plugin Requisiti: Scaricare (e successivamente installare) L SDK al link http://developer.android.com/sdk/index.html#exist ingide Prendere nota del nome e della posizione in cui è stata salvata l SDK (verrà richiesta in seguito) Scaricare e Installare l ADT Plugin 18
Eclipse + ADT Plugin Riavviato Eclipse la toolbar mostrerà SDK Manager Android Virtual Device Manager 19
SDK Manager 20
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 21
Android Virtual Device Manager 22
Android Virtual Device Manager 23