29/09/14 Università di Salerno -‐ a.a. 2013-‐2014 Android Mobile Programming – Prof. R. De Prisco Prof. Roberto De Prisco 2 per favore … Android Mobile Programming – Prof. R. De Prisco … o almeno Slide 3 Università di Salerno -‐ a.a. 2013-‐2014 … e … NON RISPONDERE!!!! Scrivere un app che meHe la vibrazione il lun e gio dalle 16:00 alle 18:00 1 29/09/14 Dress Code Android Mobile Programming – Prof. R. De Prisco Slide 4 Università di Salerno -‐ a.a. 2013-‐2014 • Lui – Vestito scuro, cravatta, camicia chiara, calze scure, scarpe scure. • Lei – Tailleur, gonna di lunghezza adeguata, pantaloni, giacca o simile, camicetta, maglieria in tinta. Ovviamente sto scherzando, ma sappiate che nel mondo del lavoro troverete anche questo! Info corso Android Mobile Programming – Prof. R. De Prisco Slide 5 Università di Salerno -‐ a.a. 2013-‐2014 • Prof. Roberto De Prisco – studio: 4° piano, studio 58 • numerazione Dip. di InformaUca – [email protected] • Orario lezioni – Lunedì 16:00-‐18:00 Lab. Turing – Giovedì 16:00-‐18:00 Lab. Turing 2 29/09/14 SO per smartphone e tablet Android Mobile Programming – Prof. R. De Prisco Android Slide 6 Università di Salerno -‐ a.a. 2013-‐2014 Android (Google) 52,10% iOS (Apple) 41,00% Windows mobile (Microso`) 3,40% Blackberry 2,90% Symbian (Nokia) 0,20% ed altri … Altre moUvazioni Android Mobile Programming – Prof. R. De Prisco Slide 7 Università di Salerno -‐ a.a. 2013-‐2014 • Ambiente di sviluppo – facile da istallare – molU tools per lo sviluppo di app • Istallazioni delle app – facile – non richiede nessuna registrazione • MolUssime risorse online 3 29/09/14 Slide Cosa faremo nel corso 8 Università di Salerno -‐ a.a. 2013-‐2014 Android Mobile Programming – Prof. R. De Prisco Impareremo a scrivere app per Android!!! Slide Cosa faremo nel corso 9 Università di Salerno -‐ a.a. 2013-‐2014 Android Mobile Programming – Prof. R. De Prisco ArchiteHura Android SDK Emulatore Vedremo tuHo ciò che serve per scrivere app … 4 29/09/14 Slide ArgomenU 10 Università di Salerno -‐ a.a. 2013-‐2014 Android Mobile Programming – Prof. R. De Prisco • Layout – costruzione dell’interfaccia grafica • pulsanU, liste, immagini, etc. • Listener – funzioni da eseguire • • • • • • • • Intent Permessi Alarms FrammenU Networking Sensori MulUmedia Data storage CiaoMondo Risorse didamche Android Mobile Programming – Prof. R. De Prisco Slide 11 Università di Salerno -‐ a.a. 2013-‐2014 • Lezioni!!!! • Google – http://developer.android.com – http://developer.android.com/guide – http://developer.android.com/training • Books – BigNerd Ranch (in inglese) – hHp://www.bignerdranch.com/ • Cursera – ommo video corso (in inglese) – hHps://www.coursera.org/course/android • Googling! 5 29/09/14 Slide Sito web 12 Università di Salerno -‐ a.a. 2013-‐2014 Android Mobile Programming – Prof. R. De Prisco hHp://www.di.unisa.it/~robdep/MP/ • • • • • Informazioni Annunci Codice app Esami RisultaU Contest Android Mobile Programming – Prof. R. De Prisco Slide 13 Università di Salerno -‐ a.a. 2013-‐2014 • La migliore app sviluppata DURANTE il corso verrà premiata con un telefonino Android! – Samsung S3 mini • Dual core 1.2GHz, 4”, 5Mpixel, 8GB • Per partecipare occorre – frequentare il corso – sviluppare in gruppi di 2 persone max – consegnare l’app una semmana prima dell’ulUma lezione del corso • Il premio verrà assegnato con giudizio insindacabile del docente – che include la non assegnazione (solo se non ci sarà nessuna app di una certa complessità). 6 29/09/14 Esame Android Mobile Programming – Prof. R. De Prisco Slide 14 Università di Salerno -‐ a.a. 2013-‐2014 • L’app contest NON è l’esame!!!!! • Esame – ScriHo – Laboratorio • vengono ammessi gli studenU che superano lo scriHo – Orale • vengono ammessi gli studenU che superano il laboratorio Come contaHare il docente Android Mobile Programming – Prof. R. De Prisco Slide 15 Università di Salerno -‐ a.a. 2013-‐2014 • Fine lezione (o nella pausa) • Orario di ricevimento studenU – Mer 11:00-‐13:00 – Gio 12:00-‐13:00 • Email – Risposta non garanUta, dipende dalla domanda! – Condizione necessaria: il messaggio deve contenere il nome del miHente – Appuntamento • NON telefonare 7 29/09/14 Domande? Slide 16 Android Mobile Programming – Prof. R. De Prisco Università di Salerno -‐ a.a. 2013-‐2014 Android Mobile Programming – Prof. R. De Prisco Università di Salerno -‐ a.a. 2013-‐2014 La pia7aforma Android 17 8 29/09/14 La piaHaforma Android Android Mobile Programming – Prof. R. De Prisco Slide 18 Università di Salerno -‐ a.a. 2013-‐2014 • Sistema so`ware per telefonini e tablet – OS kernel – Librerie di sistema – Framework per le applicazioni – Applicazioni di base • SDK per lo sviluppo di nuove applicazioni – librerie – tool di sviluppo – documentazione • manuali • esempi http://developer.android.com/training L’architeHura Android Android Mobile Programming – Prof. R. De Prisco Slide 19 Università di Salerno -‐ a.a. 2013-‐2014 9 29/09/14 Linux kernel layer Android Mobile Programming – Prof. R. De Prisco Slide 20 Università di Salerno -‐ a.a. 2013-‐2014 • Fornisce i servizi di base del sistema operaUvo – filesystem – gesUone della memoria e dei processsi – gesUone dell’interfaccia di rete – drivers per le periferiche • Servizi specifici per Android – gesUone della baHeria – gesUone della memoria condivisa – low memory killer – interprocess communicaUon e altre Librerie Android Mobile Programming – Prof. R. De Prisco Slide 21 Università di Salerno -‐ a.a. 2013-‐2014 • Funzioni – Libreria di sistema (bionic libc) – Surface manager (update del display) – Media manager (playback audio/video file) – Webkit (motore browser) – OpenGL (motore per la grafica) – SQLite (database) • Android RunUme – app (Dalvik Virtual Machine) 10 29/09/14 Android RunUme: Libreria Core Android Mobile Programming – Prof. R. De Prisco Slide 22 Università di Salerno -‐ a.a. 2013-‐2014 • App Android sono scriHe in Java • La libreria fornisce molte classi pronte per l’uso: – classi di base: java.*, javax.* – classi per le app: android.* – Internet/web services: org.* – Unit tesUng: junit.* Android runUme: Dalvik VM Android Mobile Programming – Prof. R. De Prisco Slide 23 Università di Salerno -‐ a.a. 2013-‐2014 • App: – ScriHe in Java – Compilate in file Java Bytecode – Un tool, DX, trasforma i file bytecode in un singolo file Dex Bytecode (classes.dex) – Il file classes.dex conUene anche tuHe i file di daU necessari e viene istallato sulla target device – Dalvik Virtual Machine esegue il file Dex • Dalvik è una VM specifica per sistemi Android – CPU meno veloci (rispeHo ad un PC) – Meno RAM – BaHeria con durata limitata 11 29/09/14 ApplicaUon framework Android Mobile Programming – Prof. R. De Prisco Slide 24 Università di Salerno -‐ a.a. 2013-‐2014 • Moduli so`ware necessari per le app – Package manager • gesUsce l’istallazione delle app sul disposiUvo mobile – AcUvity Manager • gesUsce il ciclo di vita delle applicazioni • permeHe di passare da un’applicazione all’altra – View System • fornisce gli elemenU di base per le interfacce utente – icone, testo, boHoni, ecc. ApplicaUon framework Android Mobile Programming – Prof. R. De Prisco Slide 25 Università di Salerno -‐ a.a. 2013-‐2014 – Resource manager • elemenU non compilaU (es. stringhe, immagini) – Content Provider • gesUsce la condivisione di daU fra applicazioni – LocaUon manager • fornisce informazioni sulla posizione geografica • usa il GPS – NoUficaUon Manager • permeHe la noUfica di evenU – Es. se sUamo facendo una chiamata telefonica ed arriva un messaggio 12 29/09/14 Slide Applicazioni (app) 26 Università di Salerno -‐ a.a. 2013-‐2014 Android Mobile Programming – Prof. R. De Prisco • Applicazioni già presenU nel sistema – Home: Main screen – Contam – Telefono – Browser – Email client – Media player – … altre • Si possono sosUture con nuove app Slide Versioni 27 Università di Salerno -‐ a.a. 2013-‐2014 Android Mobile Programming – Prof. R. De Prisco Release date # versione nome diffusione (lug 2014) mar 2014 19 4.4 Kit Kat 17.9% Jelly Bean 9.0% 31 oH 2013 18 4.3 13 nov 2012 17 4.2.x 9 lug 2012 16 4.1.x 16 dic 2011 15 4.0.3 -‐ 4.0.4 19 oH 2011 14 4.0 – 4.0.2 feb 2011 – lug 2011 11-‐13 3.0-‐3.2 feb – set 2011 10 2.3.3 – 2.3.7 19.7% 27.8% Ice Cream Sandwich Honeycomb Gingerbread 11.4% <0.1% <0.1% 13.5% 6 dic 2010 9 2.3 – 2.3.2 20 mag 2010 8 2.2 Froyo 0.7% nov 2009-‐ gen 2010 5-‐7 2.0 – 2.1 Eclair <0.1% 15 set 2009 4 1.6 Donut <0.1% 30 apr 2009 3 1.5 Cupcake <0.1% 9 feb 2009 2 1.1 Android 1.1 <0.1% 23 set 2008 1 1.0 Android 1.0 <0.1% <0.1% 13 29/09/14 Slide Versioni 28 Android Mobile Programming – Prof. R. De Prisco Università di Salerno -‐ a.a. 2013-‐2014 Android Mobile Programming – Prof. R. De Prisco Università di Salerno -‐ a.a. 2013-‐2014 Android Developer Tools 29 14 29/09/14 Slide ADT 30 Android Mobile Programming – Prof. R. De Prisco Università di Salerno -‐ a.a. 2013-‐2014 • Istallare l’ADT • L’interfaccia Eclipse • L’emulatore Android • StrumenU per il debug • Altri strumenU Istallazione ADT Android Mobile Programming – Prof. R. De Prisco Slide 31 Università di Salerno -‐ a.a. 2013-‐2014 hHp://developer.android.com/sdk è necessario avere Java istallato (meglio JDK6) 15 29/09/14 ADT Android Mobile Programming – Prof. R. De Prisco Slide 32 Università di Salerno -‐ a.a. 2013-‐2014 • Nell’ADT sono inclusi: – Eclipse + plugin ADT – Android SDK Tools – PiaHaforma Android – Emulatore Android Prima app: CiaoMondo Android Mobile Programming – Prof. R. De Prisco Slide 33 Università di Salerno -‐ a.a. 2013-‐2014 • Visualizza un saluto al mondo! CiaoMondo • Vediamo – il codice • Scriviamo l’app! – Tour dell’SDK 16 29/09/14 CiaoMondo Android Mobile Programming – Prof. R. De Prisco Slide 34 Università di Salerno -‐ a.a. 2013-‐2014 • src – file sorgenU • gen – file generaU automaUcamente • Android 4.4.2 e Private Libraries – Librerie Android • assets – Assets, es. assets/fonts/… – NON vengono generaU ID • bin – file da istallare sul target device • libs – altre librerie • res – resources (file di layout, immagini, suoni, ecc.) – vengono idenUficaU con degli ID CiaoMondo Android Mobile Programming – Prof. R. De Prisco Slide 35 Università di Salerno -‐ a.a. 2013-‐2014 • AndroidManifest.xml – informazioni sull’app • permessi • amvità • icona • proguard-‐project.text – per il tool ProGuard: compaHa, ommizza e offusca il codice sorgente (protezione) • project.properUes – specifica alcune proprietà dell’app 17 29/09/14 Emulatore Android Android Mobile Programming – Prof. R. De Prisco Slide 36 Università di Salerno -‐ a.a. 2013-‐2014 • Android Virtual Device Manager Emulatore vs. real device Android Mobile Programming – Prof. R. De Prisco Slide 37 Università di Salerno -‐ a.a. 2013-‐2014 • Real device " veloce, facile gesUre l’input (es. rotazioni display) " l’esecuzione è reale • Emulatore " lento (a volte molto), alcune operazioni sono difficoltose " è comunque un “simulatore” " ci sono dei bug " Facile creare situazioni parUcolari: • baHeria scarica • arrivo di un messaggio 18 29/09/14 Slide Emulatore 38 Università di Salerno -‐ a.a. 2013-‐2014 Android Mobile Programming – Prof. R. De Prisco • Rotazione dello schermo hHp://code.google.com/p/android/issues/detail?id=61671 Emulatore Android Mobile Programming – Prof. R. De Prisco Slide 39 Università di Salerno -‐ a.a. 2013-‐2014 • telnet 19 29/09/14 Slide Emulatore 40 Università di Salerno -‐ a.a. 2013-‐2014 Android Mobile Programming – Prof. R. De Prisco • Comunicazione fra due emulatori “numero di telefono”: 5556 “numero di telefono”: 5554 Slide Debugger 41 Università di Salerno -‐ a.a. 2013-‐2014 Android Mobile Programming – Prof. R. De Prisco • Eclipse debugger • breakpoints – controllo del valore delle variabili – esecuzione step-‐by-‐step • Molto uUle per trovare errori nei programmi DebugTrovaErrore 20