The information contained in this document is the property of NTT DATA Italia S.p.A. and the addressee of the document. The information is closely linked to the oral comments accompanying the same, and may be used only by those attending the presentation. Copying, publishing or divulging the material contained in this document is forbidden and may be illegal. Panoramica mobile development con Android ITIS A. Monaco Cosenza, 25 Marzo 2014 © Copyright NTT DATA Italia – All Rights Reserved M052 - 04 Sommario ► Il progetto Android ► L’architettura di Android ► Ecosistema e ambiente di sviluppo ► La documentazione per gli sviluppatori © Copyright NTT DATA Italia – All Rights Reserved 1 M052 - 04 Il progetto Android: la storia 2003: Andy Rubin fonda ― Android mobile devices that are …………… more aware Primo mese Inc. “...smarter Secondo mese of its owners location and preferences.” 2004: Apple avvia ― Project Purple, un progetto segreto con AT&T. 2005: Google acquisisce Android Inc e continua lo sviluppo del sistema. 2007, jan: Apple rilascia il primo iPhone. 2007, nov: Google, HTC, Samsung rivelano l‘Open Handset Alliance e Android. 2008: primo telefono Android: HTC Dream (G1). © Copyright NTT DATA Italia – All Rights Reserved 2 M052 - 04 Il progetto Android: le versioni Primo mese Anno Versione Nome in codice 2008 1.0 n/a 2009 1.1 Petit Four 1.5 Cup Cake 1.6 Donut 2.0 Eclair 2.2 Froyo (Frozen Yogurt) 2.4 Gingerbread 3.0 Honeycomb 4.0 Ice Cream Sandwitch 2012 4.1 Jelly Bean 2013 4.4 KitKat 2010 2011 …………… http://it.wikipedia.org/wiki/Android#Versioni © Copyright NTT DATA Italia – All Rights Reserved 3 M052 - 04 Il progetto Android: le versioni Primo mese © Copyright NTT DATA Italia – All Rights Reserved Secondo mese …………… 4 M052 - 04 Il progetto Android: le versioni Primo mese © Copyright NTT DATA Italia – All Rights Reserved Secondo mese …………… 5 M052 - 04 Il progetto Android: progetto open source Il codice di Android è disponibile sotto licenze “free” Primo mese Secondo mesee “open source”. …………… Linux kernel (Open Handset Alliance): GNU GPL v2, pubblico. Android system (Google): Rete, telefonia, market, apps. Apache License v2.0, privato. Produzione di un «flagship phone» da parte di Google (Nexus), seguito da rilascio del codice (OEM). © Copyright NTT DATA Italia – All Rights Reserved 6 M052 - 04 L’architettura di Android Primo mese © Copyright NTT DATA Italia – All Rights Reserved Secondo mese …………… 7 M052 - 04 L’architettura di Android: il kernel Linux …………… © Copyright NTT DATA Italia – All Rights Reserved 8 M052 - 04 L’architettura di Android: il kernel Linux Kernel 2.6+ …………… Utilizzato per la gestione dei processi e dei thread, per la gestione a basso livello della memoria, per lo stack di rete, per la sicurezza, per il modello dei driver. © Copyright NTT DATA Italia – All Rights Reserved 9 M052 - 04 L’architettura di Android: le librerie native …………… © Copyright NTT DATA Italia – All Rights Reserved 10 M052 - 04 L’architettura di Android: le librerie native Librerie C/C++ eseguite sopra al kernel Linux ed utilizzate in diversi ambiti …………… dal sistema Android. Espongono inoltre funzionalità agli sviluppatori tramite l’application framework. © Copyright NTT DATA Italia – All Rights Reserved 11 M052 - 04 L’architettura di Android: il runtime Android …………… © Copyright NTT DATA Italia – All Rights Reserved 12 M052 - 04 L’architettura di Android: il runtime Android E’ composto dalla Dalvik Virtual Machine e dalle Core Libraries e rende possibile il …………… funzionamento delle applicazioni Android. Dalvik virtual machine. Macchina virtuale che esegue file .dex (Dalvik Executable). Sorgente Java compilato in file .class e trasformato in formato .dex. Ogni applicazione Android viene eseguita in un processo separato con la propria istanza della Dalvik virtual machine. JIT compiler (versione 2.2). Dalvik < JVM però ha altri vantaggi: • Efficiente con più VMs. • Footprint minimo in memoria. • Startup time ridotto. Core libraries. Dalvik non rispetta la specifica J2SE, né quella J2ME. Le core libraries forniscono la maggior parte delle funzionalità disponibili nelle librerie Java standard, così come librerie specifiche per Android. © Copyright NTT DATA Italia – All Rights Reserved 13 M052 - 04 L’architettura di Android: l’application framework …………… © Copyright NTT DATA Italia – All Rights Reserved 14 M052 - 04 L’architettura di Android: l’application framework …………… Fornisce servizi importanti, incapsulati in oggetti Java, alle applicazioni di livello sovrastante. Sono disponibili alla stessa maniera sia per applicazioni di sistema che per applicazioni di terze parti. © Copyright NTT DATA Italia – All Rights Reserved 15 M052 - 04 L’architettura di Android: le applicazioni Primo mese © Copyright NTT DATA Italia – All Rights Reserved Secondo mese …………… 16 M052 - 04 L’architettura di Android: le applicazioni Primo mese Secondo mese …………… Applicazioni a livello utente scritte in linguaggio Java. App di sistema = App terze parti © Copyright NTT DATA Italia – All Rights Reserved 17 M052 - 04 Ecosistema e ambiente di sviluppo Android SDK Tools AVD Manager SDK Manager LogCat Lint Proguard Debug monitor Primo mese Secondo mese …………… Integrated Development Environment (IDE) Eclipse e ADT (a breve anche Android Studio) Application Programming Interface (API) © Copyright NTT DATA Italia – All Rights Reserved 18 M052 - 04 Ecosistema e ambiente di sviluppo: installazione (1) JDK Primo mese Secondo mese http://www.oracle.com/technetwork/java/javase/downloads/index.html …………… Eclipse IDE for Java Developers http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/keplersr1 Android SDK Tools http://dl.google.com/android/android-sdk_r22.3-windows.zip ADT (Android Developer Tools) plugin for Eclipse Eclipse > Help > Install New Software : https://dl-ssl.google.com/android/eclipse/ © Copyright NTT DATA Italia – All Rights Reserved 19 M052 - 04 Ecosistema e ambiente di sviluppo: installazione (2) JDK Primo mese Secondo mese http://www.oracle.com/technetwork/java/javase/downloads/index.html …………… SDK ADT Bundle Alternativa messa a disposizione da Google, da un po’ di tempo. Pacchetto di installazione pre-configurato che semplifica l’installazione. Download http://developer.android.com/sdk/index.html Istruzioni http://developer.android.com/sdk/installing/bundle.html © Copyright NTT DATA Italia – All Rights Reserved 20 M052 - 04 Ecosistema e ambiente di sviluppo: installazione (3) JDK Primo mese Secondo mese http://www.oracle.com/technetwork/java/javase/downloads/index.html …………… Android Studio Nuovo ambiente integrato di sviluppo fornito da Google. Ancora in versione EARLY ACCESS PREVIEW !!! http://developer.android.com/sdk/installing/studio.html © Copyright NTT DATA Italia – All Rights Reserved 21 M052 - 04 Ecosistema e ambiente di sviluppo: AVD Manager AVD: Android Virtual Device Primo mese Secondo mese …………… Android SDK contiene un emulatore software che emula il funzionamento e l’aspetto di una configurazione hardware virtuale. © Copyright NTT DATA Italia – All Rights Reserved 22 M052 - 04 Ecosistema e ambiente di sviluppo: AVD Manager Interfaccia user-friendly per la mese configurazione deimese propri AVD. Primo Secondo © Copyright NTT DATA Italia – All Rights Reserved …………… 23 M052 - 04 Ecosistema e ambiente di sviluppo: SDK Manager SDK Manager permette diPrimo gestire mese gli aggiornamenti Secondo mesedelle varie versioni di Android …………… © Copyright NTT DATA Italia – All Rights Reserved 24 M052 - 04 Ecosistema e ambiente di sviluppo: Tools LogCat Primo mese raccoglie log di un device Android Secondo mese …………… Lint analisi statica per ottimizzazione e rilevazione errori comuni Proguard riduce la dimensione, ottimizzaed offusca il codice prodotto. Lo rende piùrapido e resistente al reverse engineering Dalvik Debug Monitor Server (DDMS) strumento per il debug di dispositivi Android, con raccolta di informazioni su processi, thread, heap, logcat ed emulazione di eventi. © Copyright NTT DATA Italia – All Rights Reserved 25 M052 - 04 Ecosistema e ambiente di sviluppo: Eclipse e ADT Eclipse è un ambiente di sviluppo open-source, multi-piattaforma e multi-linguaggio. …………… È la piattaforma di riferimento per Android. Alternative: Android Studio, NetBeans, … © Copyright NTT DATA Italia – All Rights Reserved 26 M052 - 04 Ecosistema e ambiente di sviluppo: Eclipse e ADT ADT: Android Developer Tools …………… Plugin per IDE Eclipse. Semplifica creazione, compilazione e mantenimento di progetti. Integra tool di sviluppo. Include editor grafici e documentazione. © Copyright NTT DATA Italia – All Rights Reserved 27 M052 - 04 Ecosistema e ambiente di sviluppo: API Android Distribution Numbers Update for January 2014 – Jelly Bean Closing in on 60% Primo mese Secondo mese …………… © Copyright NTT DATA Italia – All Rights Reserved 28 M052 - 04 Ecosistema e ambiente di sviluppo: API Android 1.5, API 3. Primo mese Secondo mese …………… Riproduzione e cattura audio/video. Riconoscimento vocale. Widget. Notifiche. WebView. Android 1.6, API 4. Gestures. Sintesi vocale. Supporto CDMA. Supporto per dimensioni e densità di schermi variabili. Android 2.1, API 7. Supporto Bluetooth 2.1. Live Wallpapers. Android 2.2, API 8. JIT compiler. Supporto installazione in SD card. Miglioramento del riconoscimento vocale ed apertura a terze parti. Supporto alla tecnologia Flash. Android 2.3, API 9/10. Supporto nativo a Voip (SIP). Supporto a NFC. Garbage Collector concorrente. Supporto ad altri formati multimediali. © Copyright NTT DATA Italia – All Rights Reserved 29 M052 - 04 Ecosistema e ambiente di sviluppo: API Android 3.0, API 11. Primo mese Secondo mese …………… Fragments. ActionBar. Nuove API per il drag and drop. Supporto per l’accelerazione hardware 2D. Nuovo framework 3D renderscript. Supporto multimediale migliorato. Android 3.1, API 12. Supporto a periferiche USB. Widget ridimensionabili. Supporto multimediale migliorato. Android 4.0.1, API 14. Merge tra versione tablet e smartphone. Linux kernel 3.x. UI riprogettata per maggior coerenza ed unificazione. Notifiche più potenti. Supporto per riconoscimento vocale continuo. API sociali. API di basso livello per lo streaming. Android 4.1.3, API 16. Project Butter. Notifiche espandibili. Social API migliorate. Riconoscimento vocale avanzato. Sintesi vocale migliorata. Google Now. Abbandono ufficiale della tecnologia Flash. http://en.wikipedia.org/wiki/Android_version_history © Copyright NTT DATA Italia – All Rights Reserved 30 M052 - 04 La documentazione Android per gli sviluppatori Primo mese Secondo mese …………… http://developer.android.com © Copyright NTT DATA Italia – All Rights Reserved 31 M052 - 04 [email protected] © Copyright NTT DATA Italia – All Rights Reserved 32