Mobile Apps e Android Tecniche Audiovisive Ing. Andrea Proietti Dip. DIET, Laboratorio di Multimedialità, I piano, stanza 111, Via Eudossiana 18, Roma Tel.: (interno 25874); Web: w3.uniroma1.it/labmultimedia; Skype: andreaproietti.ap; LinkedIn:
Sommario Applicazioni mobili Risorse hardware dei dispositivi Campi di utilizzo Esempi Android –Introduzione –Struttura protocollare –Caratteristiche tecniche –Ambiente di sviluppo Struttura di un progetto e di una applicazione Esempio di sviluppo 30/05/2016Titolo PresentazionePagina 2
Applicazioni mobili Software progettato per essere eseguito su smartphone, tablet o altri dispositivi mobili (fotocamere, orologi, cornici digitali, etc.). 30/05/2016Mobile AppsPagina 3
Sistemi di distribuzione App Store BlackBerry World Google Play Windows Phone Store Samsung, HTC, Amazon, Nokia… Package 30/05/2016Pagina 4Mobile Apps
Piattaforme hardware 30/05/2016Pagina 5Mobile Apps Processori multi-core Schermi capacitivi multi-touch Fotocamere ad alta risoluzione Sensori ambientali Connettività di rete GPS Array microfonici Memoria ad alta capacità Database & processing OS avanzati
Sensing 30/05/2016Pagina 6Mobile Apps Prossimità Gesti Giroscopio Accelerometro Magnetometro Termometro Barometro Hall Igrometro Luxmetro
30/05/2016Pagina 7 Possibili scenari Intrattenimento Context-aware Localizzazione Monitoraggio Domotica Sicurezza Logistica Tracciamento Beni culturali … Mobile Apps
Alcuni esempi (tesine/tesi) Realtà aumentata 30/05/2016Mobile AppsPagina 8
Alcuni esempi (tesine/tesi) Object detection 30/05/2016Mobile AppsPagina 9
Alcuni esempi (tesine/tesi) Social network 30/05/2016Mobile AppsPagina 10
Alcuni esempi (tesine/tesi) Controllo remoto 30/05/2016Mobile AppsPagina 11
Alcuni esempi (tesine/tesi) Geolocalizzazione 30/05/2016Mobile AppsPagina 12
Alcuni esempi (tesine/tesi) Guida multimediale 30/05/2016Mobile AppsPagina 13
Alcuni esempi (tesine/tesi) Servizi commerciali 30/05/2016Mobile AppsPagina 14
Alcuni esempi (tesine/tesi) Photo editing 30/05/2016Mobile AppsPagina 15
Android: un po’ di storia 2003 – : startup californiana Android Inc. –Sistema operativo basato su linux per vari scopi 2005: Google Mobile Division –Fondi a volontà (per dispositivi mobili) 2007: Open Handset Alliance –SDK e incentivi agli sviluppatori 2008: lancio del primo smartphone 2011: lancio del primo tablet 2012: lancio del primo hardware «non-mobile» –Nexus Q … Google Glass (2013) … Galaxy Gear (2013) 30/05/2016Mobile AppsPagina 16
Android: un po’ di numeri Android è la piattaforma mobile più popolare del mondo ~ 600 milioni di dispositivi (smartphone, tablet, foto/videocamere, cornici, orologi, lettori musicali…) ~ 1,5 milioni di nuove attivazioni al giorno nel mondo > 13 miliardi di download dal Play Store > 2 miliardi di $ di ricavi da App > 700 mila applicazioni sul Play Store ~ il 52% del mercato mondiale ~ 320 operatori e 160 paesi del mondo 30/05/2016Mobile AppsPagina 17
Android: evoluzione 1.0 Apple Pie (2008) 1.1 Banana Bread 1.5 Cupcake 1.6 Donut 2.0 Eclaire (2009) 2.2 Froyo 2.3 Gingerbread (2010) 3.0 Honeycomb (2010) - tablet 4.0 Ice Cream Sandwich (2011) 4.1 Jelly Bean (2012) … 4.4 KitKat (ottobre 2013) 30/05/2016Mobile AppsPagina 18
Android: struttura protocollare App system/user applications Framework windows, phone, notifier, location, sensors… Runtime library (OpenGL, Sqlite, SGL, Dalvik VM)… Linux Kernel driver, power manager, connections… 30/05/2016Mobile AppsPagina 19
Android: DALVIK VIRTUAL MACHINE ≠ dalla Java Virtual Machine di Sun ottimizzata per l’utilizzo su sistemi ridotti nuovo byte-code più snello compilatore JIT (Just In Time) istruzioni register-based real multitasking 30/05/2016Mobile AppsPagina 20
Android: kernel Linux vero e proprio sistema operativo strumento di basso livello driver di gestione delle periferiche driver di gestione dei processi apertura verso i produttori sicurezza e affidabilità 30/05/2016Mobile AppsPagina 21
Android: librerie di runtime OpenGL ES – grafica 3D SGL (scalable graphics library) – grafica 2D Media Framework – MPEG4, H.264, MP3, AAC, AMR, JPG, PNG FreeType – motore di rendering dei font SQLite – sistema di gestione database WebKit – webframework (HTML5, CSS3,Javascript) SSL (secure socket layer) – sicurezza 30/05/2016Mobile AppsPagina 22
Android: ambiente di sviluppo 1.Android SDK 2.ADT Plugin per Eclipse 3.Android Platform 4.Android Virtual Device / Dispositivo Fisico STRUMENTI UTILI (di Eclipse) –LogCat (messaggi dal dispositivo) –Console (stato del compilatore) –Problems (errori, warnings, problemi di codice…) SITO DI RIFERIMENTO 30/05/2016Mobile AppsPagina 23
Android: struttura di un progetto CARTELLE –src – comparto codice –res\drawable – comparto grafico –assets – risorse opzionali –bin,gen – prodotti della compilazione (don’t touch!) FILE –*.java – codice Android delle applicazioni –*.xml (res\layout) – file di configurazione della grafica –*.xml (res\values) – dichiarazione valori, stringhe, colori –AndroidManifest.xml – «manifesto» del progetto RISORSE –Android Platform – API Android e librerie dei produttori –Libraries – Librerie di terzi da includere nel progetto 30/05/2016Mobile AppsPagina 24
Android: struttura di un applicazione Activity: processi in primo piano (1 o più) –onCreate() –onResume() / onStart() –onPause() / onStop() –onDestroy() Service: processi in background (0 o più) File di layout: struttura grafica (1 per ogni attività) –Layout (lineare, tabelle, libero …) –View (text, image, …) –Form Widgets (button, radio, check, list, …) –Media Elements (audio, video, …) Android Manifest (1 per ogni progetto) –Nome dell’applicazione, icona, versione –Permessi, funzionalità usate, api usate –Nome delle attività, orientazione dello schermo –Package: paese.autore.nomeapplicazione 30/05/2016Mobile AppsPagina 25