Android Code Camp, Urbino — 2012.Benvenuti.AndroidCode Camp
Android Code Camp, Urbino — 2012.Scaletta day 1.Il mercato degli smartphone.Il progetto Android.L‘architettura di Android....
Android Code Camp, Urbino — 2012.Mobile market.Il mercato degli smartphone.Numeri e crescita.Il mercato di Android.Attivaz...
Android Code Camp, Urbino — 2012.Il mercato degli smartphone.433 milioni di unità nel 2011.616 milioni di unità previste n...
Android Code Camp, Urbino — 2012.   Il mercato degli smartphone.                                          2011            ...
Android Code Camp, Urbino — 2012.Il mercato degli smartphone.                                  2012                       ...
Android Code Camp, Urbino — 2012.Il mercato di Android.Crescita vertiginosa (+106% previsto).Principalmente device Samsung...
Android Code Camp, Urbino — 2012.
Android Code Camp, Urbino — 2012.Il mercato delle applicazioni.Android < iOS:    Più di 400.000 applicazioni,    contro 50...
Android Code Camp, Urbino — 2012.Il mercato delle applicazioni.Android < iOS:    Solo ¼ del guadagno in media.    Segmento...
Android Code Camp, Urbino — 2012.Frammentazione.
Android Code Camp, Urbino — 2012.Frammentazione.
Android Code Camp, Urbino — 2012.Android.Il progetto dell‘OS mobile Google.Storia.Versioni ed evoluzione.Il progetto open-...
Android Code Camp, Urbino — 2012.La storia di Android.2003: Andy Rubin fonda ―Android Inc‖.       “...smarter mobile devic...
Android Code Camp, Urbino — 2012.La Storia di Android.2007, jan: Apple rilascia il primo iPhone.2007, nov: Google, HTC, Sa...
Android Code Camp, Urbino — 2012.Versioni di Android. Anno Versione Nome in codice 2008        1.0 n/a 2009        1.1 Pet...
Android Code Camp, Urbino — 2012.       Versioni di Android.                                                 1.5          ...
Android Code Camp, Urbino — 2012.Versioni di Android.                           3.0                           Stile digita...
Android Code Camp, Urbino — 2012.Android: progetto open source.Ottobre 2010, Steve Jobs:               „Google likes to ch...
Android Code Camp, Urbino — 2012.Android: progetto open source.
Android Code Camp, Urbino — 2012.Android: progetto open source.Il codice di Android è disponibile sottolicenze „free― e „o...
Android Code Camp, Urbino — 2012.Android: progetto open source.Produzione di un „flagship phone― da partedi Google (Nexus)...
Android Code Camp, Urbino — 2012.L’architettura..Architettura del sistema operativo.Kernel Linux.Librerie native.Runtime A...
Android Code Camp, Urbino — 2012.L’architettura.
Android Code Camp, Urbino — 2012.Kernel Linux.Kernel 2.6+.Utilizzato per la gestione dei processi e deithread, per la gest...
Android Code Camp, Urbino — 2012.    Librerie native.    Librerie C/C++ eseguite sopra al kernel    Linux ed utilizzate in...
Android Code Camp, Urbino — 2012.Runtime Android.Ciò che rende un dispositivo Androiddiverso da unimplementazione mobileLi...
Android Code Camp, Urbino — 2012.Virtual machine.Implementazione software di unamacchina (con un certo Instruction SetArch...
Android Code Camp, Urbino — 2012.Java virtual machine.Macchina virtuale che esegue programmiscritti in byte-code: rapprese...
Android Code Camp, Urbino — 2012.Dalvik virtual machine.Macchina virtuale che esegue file .dex(Dalvik Executable).Sorgente...
Android Code Camp, Urbino — 2012.Dalvik vs. JVM.Dalvik < JVM.Ma il problema è multidimensionale.• Register-based.• Efficie...
Android Code Camp, Urbino — 2012.Core libraries.Dalvik non rispetta la specifica J2SE,né quella J2ME.Le core libraries for...
Android Code Camp, Urbino — 2012.Application framework.Fornisce servizi importanti, incapsulati inoggetti Java, alle appli...
Android Code Camp, Urbino — 2012.Livello applicazioni.Applicazioni a livello utente scritte inlinguaggio Java.            ...
Android Code Camp, Urbino — 2012.L’ecosistema.Ecosistema di sviluppo.Android SDK.Eclipse IDE.Application Programming Inter...
Android Code Camp, Urbino — 2012.SDK: emulatore.Software che emula il funzionamento el‗aspetto di una configurazione hardw...
Android Code Camp, Urbino — 2012.SDK: emulatore.Interfaccia user-friendly per laconfigurazione dei propri AVD.
Android Code Camp, Urbino — 2012.SDK: tools.Logcat: raccoglie log di un device Android.Lint: analisi statica per ottimizza...
Android Code Camp, Urbino — 2012.SDK: Dalvik Debug Monitor ServeStrumento per il debug di dispositiviAndroid, con raccolta...
Android Code Camp, Urbino — 2012.SDK: Android Developer Tools.Plugin per IDE Eclipse.Semplifica creazione, compilazione em...
Android Code Camp, Urbino — 2012.Eclipse.Ambiente di sviluppoopen-source,multi-piattaforma emulti-linguaggio.È la piattafo...
Android Code Camp, Urbino — 2012.Android APIs.
Android Code Camp, Urbino — 2012.Android 1.5, API 3.Riproduzione e cattura audio/video.Riconoscimento vocale.Widget.Notifi...
Android Code Camp, Urbino — 2012.Android 1.6, API 4.Gestures.Sintesi vocale.Supporto CDMA.Supporto per dimensioni e densit...
Android Code Camp, Urbino — 2012.Android 2.1, API 7.Supporto Bluetooth 2.1.Live Wallpapers.
Android Code Camp, Urbino — 2012.Android 2.2, API 8.JIT compiler.Supporto installazione in SD card.Miglioramento del ricon...
Android Code Camp, Urbino — 2012.Android 2.3, API 9/10.Supporto nativo a Voip (SIP).Supporto a NFC.Garbage Collector conco...
Android Code Camp, Urbino — 2012.Android 3.0, API 11.Fragments.ActionBar.Nuove API per il drag and drop.Supporto per lacce...
Android Code Camp, Urbino — 2012.Android 3.1, API 12.Supporto a periferiche USB.Widget ridimensionabili.Supporto multimedi...
Android Code Camp, Urbino — 2012.Android 4.0.1, API 14.Merge tra versione tablet e smartphone.Linux kernel 3.x.UI riproget...
Android Code Camp, Urbino — 2012.Android 4.1.3, API 16.Project Butter.Notifiche espandibili.Social API migliorate.Riconosc...
Android Code Camp, Urbino — 2012.Panoramica applicazioni.Elementi principali di un app.Activity.Service.Content provider.B...
Android Code Camp, Urbino — 2012.Activity.Ogni activity rappresenta una schermata diun‘applicazione.
Android Code Camp, Urbino — 2012.Activity.Ogni activity dovrebbe equivalere adunattività atomica dellutente.
Android Code Camp, Urbino — 2012.Activity.Possono avere un valore di ritorno.
Android Code Camp, Urbino — 2012.Activity.Poi ci ritorniamo…
Android Code Camp, Urbino — 2012.Panoramica applicazioni.Elementi principali di un app.Activity.Service.Content provider.B...
Android Code Camp, Urbino — 2012.Service.Un‘attività dellapp o del sistema invisibileallutente (gira in background).Alcuni...
Android Code Camp, Urbino — 2012.Service.Non comunica direttamente con l‘utentema può comunicare con le activity (anchedi ...
Android Code Camp, Urbino — 2012.Service.Se fondamentali per un‘applicazione possoessere istanziati come foreground service.
Android Code Camp, Urbino — 2012.Panoramica applicazioni.Elementi principali di un app.Activity.Service.Content provider.B...
Android Code Camp, Urbino — 2012.Content provider.• È un‘astrazione di insiemi di dati  strutturati.• Espone metodi CRUD (...
Android Code Camp, Urbino — 2012.Content provider.Alcuni esempi di content provider:•   Lista dei contatti.•   Lista delle...
Android Code Camp, Urbino — 2012.Panoramica applicazioni.Elementi principali di un app.Activity.Service.Content provider.B...
Android Code Camp, Urbino — 2012.Broadcast receiver.Sistema per la comunicazioneintra-applicazione/intra-processo.Un compo...
Android Code Camp, Urbino — 2012.Intent.Costituiscono il sistema di messaggisticafra i vari componenti del sistema.Ogni in...
Android Code Camp, Urbino — 2012.Intent.Dati di esempio:Campo                     ValoreComponent name            it.uniur...
Android Code Camp, Urbino — 2012.Intent.Inviare un‗immagine:Campo          ValoreAction         SENDData           content...
Android Code Camp, Urbino — 2012.Intent.Il mittente è sempre noto mentre ilricevente può non esserlo a priori.
Android Code Camp, Urbino — 2012.Intent espliciti.Il nome (la classe) del componentedestinatario è specificato.     Solo A...
Android Code Camp, Urbino — 2012.Intent impliciti.Android cerca il componente per noi:    Se ne trova uno, lo attiva.     ...
Android Code Camp, Urbino — 2012.Impliciti intent resolution.In base al tipo del componente.     (Activity, Service, Broad...
Android Code Camp, Urbino — 2012.Broadcast receiver (reprise).Un componente a cui è delegata la  ricezione di intent in br...
Android Code Camp, Urbino — 2012.Broadcast receiver (esempi).Ricezione dei cambiamenti nel livello dicarica della batteria...
Android Code Camp, Urbino — 2012.Panoramica applicazioni.Elementi principali di un app.Activity.Service.Content provider.B...
Android Code Camp, Urbino — 2012.Widget.Inglobati in altre applicazioni. (Risiedonoall‘interno di ―App Widget Host‖.)Perio...
Android Code Camp, Urbino — 2012.Esempi di widget.
Android Code Camp, Urbino — 2012.Esempi di widget.
Android Code Camp, Urbino — 2012.Panoramica applicazioni.Elementi principali di un app.Activity.Service.Content provider.B...
Android Code Camp, Urbino — 2012.Fragment.Componenti modulari di un‘activity.Hanno un proprio ciclo di vita.Possono essere...
Android Code Camp, Urbino — 2012.Esempio di fragment.   Portrait                         Landscape
Android Code Camp, Urbino — 2012.Panoramica applicazioni.Elementi principali di un app.Activity.Service.Content provider.B...
Android Code Camp, Urbino — 2012.Notification.Servono per informare l‘utente di unevento scatenato o avvenuto:    Nel sist...
Android Code Camp, Urbino — 2012.Toast notification.Per eventi avvenuti in background.Nessun input dall‘utente.Poco più ch...
Android Code Camp, Urbino — 2012.Dialog notification.Per eventi relativi all‘activity corrente.(Caricamento, conferma, etc...
Android Code Camp, Urbino — 2012.Status notification.Per eventi relativi avvenuti in background.Richiedono l‘input utente....
Android Code Camp, Urbino — 2012.Approfondimenti.Altri dettagli sulle applicazioni.Layout.Il back stack di navigazione.Cic...
Android Code Camp, Urbino — 2012.     Layout.     Composta genericamente da     View e ViewGroup (e Fragment).TableLayout ...
Android Code Camp, Urbino — 2012.Layout.Il layout è definito (normalmente) tramiteun file xml.                            ...
Android Code Camp, Urbino — 2012.Approfondimenti.Altri dettagli sulle applicazioni.Layout.Il back stack di navigazione.Cic...
Android Code Camp, Urbino — 2012.Il back stack di navigazione.Ogni activity appartiene ad un task.Ogni task contiene una c...
Android Code Camp, Urbino — 2012.Il back stack di navigazione.Il sistema gestisce contemporaneamentepiù task ma solo uno p...
Android Code Camp, Urbino — 2012.Il back stack di navigazione.La struttura di un task viene alterata:• Lanciando una nuova...
Android Code Camp, Urbino — 2012.Modalità di lancio.Normalmente:• Quando viene avviata un‘activity per la  prima volta que...
Android Code Camp, Urbino — 2012.       Modalità di lancio.       Le activity posso essere lanciate con       modalità di ...
Android Code Camp, Urbino — 2012.Modalità di lancio.DEMO…
Android Code Camp, Urbino — 2012.Approfondimenti.Altri dettagli sulle applicazioni.Layout.Il back stack di navigazione.Cic...
Android Code Camp, Urbino — 2012.Ciclo di vita delle Activity.
Android Code Camp, Urbino — 2012.Ciclo di vita delle Activity.
Android Code Camp, Urbino — 2012.Ciclo di vita delle Activity.
Android Code Camp, Urbino — 2012.Ciclo di vita delle Activity.
Android Code Camp, Urbino — 2012.Ciclo di vita delle Activity.
Android Code Camp, Urbino — 2012.Ciclo di vita delle Activity.DEMO…
Android Code Camp, Urbino — 2012.Ciclo di vita delle Activity.Salvataggio dello stato dell‘activity.
Android Code Camp, Urbino — 2012.      Ciclo di vita delle Activity.      Un‘activity può essere distrutta dal sistema    ...
Android Code Camp, Urbino — 2012.Ciclo di vita (Esempi).Rotazione dello schermo quando c‘è unaListView caricata con dati r...
Android Code Camp, Urbino — 2012.Ciclo di vita (Esempi).Cosa salvare nel Bundle?    Lo stato transitorio dell‘activity.   ...
Android Code Camp, Urbino — 2012.Approfondimenti.Altri dettagli sulle applicazioni.Layout.Il back stack di navigazione.Cic...
Android Code Camp, Urbino — 2012.Started & bound services.Started:     Avviato da un altro componente     invocando startS...
Android Code Camp, Urbino — 2012.Ciclo di vita dei Service.
Android Code Camp, Urbino — 2012.Approfondimenti.Altri dettagli sulle applicazioni.Layout.Il back stack di navigazione.Cic...
Android Code Camp, Urbino — 2012.Ciclo di vita dei Fragment.
Android Code Camp, Urbino — 2012.Un progetto Android.Struttura del progetto in Eclipse.Cartelle.Gestione delle risorse.Man...
Android Code Camp, Urbino — 2012.Cartelle di un progetto Android./src: sorgenti Java (oppure .aidl o altri)/bin: compilati...
Android Code Camp, Urbino — 2012.Un progetto Android.Struttura del progetto in Eclipse.Cartelle.Gestione delle risorse.Man...
Android Code Camp, Urbino — 2012.Android Asset Packaging Tool.Ad ogni risorsa all‗interno della directory/res viene assegn...
Android Code Camp, Urbino — 2012.Versioni delle risorse.Le versioni sono caratterizzate dal nomedella directory in cui son...
Android Code Camp, Urbino — 2012.Creazione delle risorse.Dichiarazione tramite XML:   <Button android:id=" @+id/nice_butto...
Android Code Camp, Urbino — 2012.Accesso alle risorse.Tramite XML:   @[<package_name>:]<resource_type>/<resource_name>   <...
Android Code Camp, Urbino — 2012.Un progetto Android.Struttura del progetto in Eclipse.Cartelle.Gestione delle risorse.Man...
Android Code Camp, Urbino — 2012.Manifest dell‘applicazione.File AndroidManifest.xml nella root.Descrive l‗applicazione, i...
Android Code Camp, Urbino — 2012.Tutorial.Hello World in tutte le salse.Preparazione dell‗ambiente di lavoro.Creazione di ...
Android Code Camp, Urbino — 2012.Preparazione dell‘ambiente.Eclipse IDE.Aggiungiamo l‗Android ADT:        https://dl-ssl.g...
Android Code Camp, Urbino — 2012.Tutorial.Hello World in tutte le salse.Preparazione dell‗ambiente di lavoro.Creazione di ...
Android Code Camp, Urbino — 2012.Creazione di un progetto.
Android Code Camp, Urbino — 2012.Tutorial.Hello World in tutte le salse.Preparazione dell‗ambiente di lavoro.Creazione di ...
Android Code Camp, Urbino — 2012.Android log.Classe android.util.Log.Livelli di logging:      ASSERT: Log.wtf()      ERROR...
Android Code Camp, Urbino — 2012.Per ogni chiamata al logger si passano:     TAG: discriminatore.     Messaggio: contenuto...
Android Code Camp, Urbino — 2012.Tutorial.Hello World in tutte le salse.Preparazione dell‗ambiente di lavoro.Creazione di ...
Android Code Camp, Urbino — 2012.Layout.Permettono di strutturare l‗interfacciagrafica di un‗applicazione.Flessibili e din...
Android Code Camp, Urbino — 2012.LinearLayout.<LinearLayout     android:layout_width=„match_parent“     android:layout_hei...
Android Code Camp, Urbino — 2012.RelativeLayout.<RelativeLayout>     <Item1 />     <Item2 layout_below=„Item1“            ...
Android Code Camp, Urbino — 2012.Button e callback.<Button android:id=„@+id/buttonToast“ />Button button = (Button)     th...
Android Code Camp, Urbino — 2012.Toast notification.Create tramite metodo statico.Toast.makeText(Context,     “Text”,     ...
Android Code Camp, Urbino — 2012.Tutorial.Hello World in tutte le salse.Preparazione dell‗ambiente di lavoro.Creazione di ...
Android Code Camp, Urbino — 2012.Intent implicito.Intent i = new Intent(     Intent.ACTION_VIEW,     Uri.parse("http://www...
Android Code Camp, Urbino — 2012.Intent esplicito.Intent i = new Intent(     Context,     Class);Context.startActivity(i);...
Android Code Camp, Urbino — 2012.Tutorial.Hello World in tutte le salse.Preparazione dell‗ambiente di lavoro.Creazione di ...
Android Code Camp, Urbino — 2012.Liste.La lista è visualizzata da una ListView.I dati sono gestiti da un ListAdapter:     ...
Android Code Camp, Urbino — 2012.Tutorial.Hello World in tutte le salse.Preparazione dell‗ambiente di lavoro.Creazione di ...
Android Code Camp, Urbino — 2012.Componenti di una notifica.Icona (nella barra e nel pannello).Ticker (messaggio nella bar...
Android Code Camp, Urbino — 2012.Aggiornamento notifiche.Il pannello mostra una sola notifica perogni identificatore univo...
Android Code Camp, Urbino — 2012.Tutorial.Hello World in tutte le salse.Preparazione dell‗ambiente di lavoro.Creazione di ...
Android Code Camp, Urbino — 2012.Background service.Si utilizza un Intent per specificare ilmaniera esplicita il servizio ...
Upcoming SlideShare
Loading in...5
×

Android Code Camp 2012 - ita

779

Published on

Le slide che abbiamo visto durante l'Android Code Camp 2012 che si è tenuto ad Urbino, presso la sede del corso di laurea in "Informatica Applicata", dell'Università degli Studi di Urbino "Carlo Bo".

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
779
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Dati: http://www.idc.com/getdoc.jsp?containerId=prUS23638712
  • Android Code Camp 2012 - ita

    1. 1. Android Code Camp, Urbino — 2012.Benvenuti.AndroidCode Camp
    2. 2. Android Code Camp, Urbino — 2012.Scaletta day 1.Il mercato degli smartphone.Il progetto Android.L‘architettura di Android.L‘ecosistema.Panoramica delle applicazioni.Struttura di un progetto Android.Setup dell‗ambiente di sviluppo (prova pratica).„Hello World.―
    3. 3. Android Code Camp, Urbino — 2012.Mobile market.Il mercato degli smartphone.Numeri e crescita.Il mercato di Android.Attivazioni.Il mercato delle applicazioni.Frammentazione.
    4. 4. Android Code Camp, Urbino — 2012.Il mercato degli smartphone.433 milioni di unità nel 2011.616 milioni di unità previste nel 2012.• Crescita del mercato (contrazione del mercato dei feature phones).• Obsolescenza del prodotto.Tablet: 320 milioni di unità previste, 2015.
    5. 5. Android Code Camp, Urbino — 2012. Il mercato degli smartphone. 2011 2.5 3.9 18.3 50.812.5 20.4 Android iOS BlackBerry Symbian Windows Phone Altri
    6. 6. Android Code Camp, Urbino — 2012.Il mercato degli smartphone. 2012 5.4 3.6 6.8 7.426 104.8 Android iOS BlackBerry Symbian Windows Phone Altri
    7. 7. Android Code Camp, Urbino — 2012.Il mercato di Android.Crescita vertiginosa (+106% previsto).Principalmente device Samsung (33%).2012:500 milioni di dispositivi Android attivati.1.3 milioni di attivazioni al giorno.
    8. 8. Android Code Camp, Urbino — 2012.
    9. 9. Android Code Camp, Urbino — 2012.Il mercato delle applicazioni.Android < iOS: Più di 400.000 applicazioni, contro 500.000 per iOS.• Google Play• Amazon AppStore for Android• Altri: GetJar, AppBrain, etc.
    10. 10. Android Code Camp, Urbino — 2012.Il mercato delle applicazioni.Android < iOS: Solo ¼ del guadagno in media. Segmento di mercato diverso. Quasi il 70% delle applicazioni sono gratuite o seguono il modello freemium (contro 50% iOS). ―Frammentazione‖.
    11. 11. Android Code Camp, Urbino — 2012.Frammentazione.
    12. 12. Android Code Camp, Urbino — 2012.Frammentazione.
    13. 13. Android Code Camp, Urbino — 2012.Android.Il progetto dell‘OS mobile Google.Storia.Versioni ed evoluzione.Il progetto open-source.
    14. 14. Android Code Camp, Urbino — 2012.La storia di Android.2003: Andy Rubin fonda ―Android Inc‖. “...smarter mobile devices that are more aware 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.
    15. 15. Android Code Camp, Urbino — 2012.La Storia di Android.2007, jan: Apple rilascia il primo iPhone.2007, nov: Google, HTC, Samsungrivelano l‘Open Handset Alliance e Android.2008: primo telefono Android: HTC Dream (G1).
    16. 16. Android Code Camp, Urbino — 2012.Versioni di Android. Anno Versione Nome in codice 2008 1.0 n/a 2009 1.1 Petit Four 1.5 Cupcake 1.6 Donut 2.0 Eclair 2010 2.2 Froyo (Frozen Yogurt) 2.3 Gingerbread 2011 3.0 Honeycomb 4.0 Ice Cream Sandwich 2012 4.1 Jelly Bean ? 4.2 K…?
    17. 17. Android Code Camp, Urbino — 2012. Versioni di Android. 1.5 Soft keyboard, clipboard, video…1.6Resolution independence 2.0 Maps, Navigation
    18. 18. Android Code Camp, Urbino — 2012.Versioni di Android. 3.0 Stile digitale, tablet optimization 4.0 Halo theme, Project Butter Google Now, Roboto
    19. 19. Android Code Camp, Urbino — 2012.Android: progetto open source.Ottobre 2010, Steve Jobs: „Google likes to characterize Android as open and iOS as closed. We think this is disingenuous. […] The real difference is integrated versus fragmented.”
    20. 20. Android Code Camp, Urbino — 2012.Android: progetto open source.
    21. 21. Android Code Camp, Urbino — 2012.Android: progetto open source.Il codice di Android è disponibile sottolicenze „free― e „open source―.Linux kernel (Open Handset Alliance): GNU GPL v2, pubblico.Android system (Google): Rete, telefonia, market, apps. Apache License v2.0, privato.
    22. 22. Android Code Camp, Urbino — 2012.Android: progetto open source.Produzione di un „flagship phone― da partedi Google (Nexus), seguito da rilascio delcodice (OEM).Google Play disponibile solo su licenza.„Honeycomb incident― (2011).Licenza incompatibile con GPL (FSF).
    23. 23. Android Code Camp, Urbino — 2012.L’architettura..Architettura del sistema operativo.Kernel Linux.Librerie native.Runtime Android. Virtual Machine Dalvik. Core Libraries.Application framework.Livello applicazioni.
    24. 24. Android Code Camp, Urbino — 2012.L’architettura.
    25. 25. Android Code Camp, Urbino — 2012.Kernel Linux.Kernel 2.6+.Utilizzato per la gestione dei processi e deithread, per la gestione a basso livello dellamemoria, per lo stack di rete, per lasicurezza, per il modello dei driver.
    26. 26. Android Code Camp, Urbino — 2012. Librerie native. Librerie C/C++ eseguite sopra al kernel Linux ed utilizzate in diversi ambiti dal sistema Android.Espongono inoltre funzionalità aglisviluppatori tramite lapplicationframework.
    27. 27. Android Code Camp, Urbino — 2012.Runtime Android.Ciò che rende un dispositivo Androiddiverso da unimplementazione mobileLinux.Tramite lutilizzo combinato della DalvikVirtual Machine e delle Core Librariesrende possibile il funzionamento delleapplicazioni Android.
    28. 28. Android Code Camp, Urbino — 2012.Virtual machine.Implementazione software di unamacchina (con un certo Instruction SetArchitecture) che esegue programmi comeuna macchina reale.Virtualization: simulazione di un ambientein cui Guest ISA e Host ISA sono gli stessi.Emulation: simulazione di un ambiente incui Guest ISA e Host ISA sono diversi.
    29. 29. Android Code Camp, Urbino — 2012.Java virtual machine.Macchina virtuale che esegue programmiscritti in byte-code: rappresentazioneintermedia tra il linguaggio macchina e ilcodice sorgente Java.JVM è una specifica di Oracle (ex Sun).Principali implementazioni:HotSpot – OpenJDK (GPL).HotSpot – OracleJDK.
    30. 30. Android Code Camp, Urbino — 2012.Dalvik virtual machine.Macchina virtuale che esegue file .dex(Dalvik Executable).Sorgente Java compilato in file .class etrasformato in formato .dex.Ogni applicazione Android viene eseguitain un processo separato con la propriaistanza della Dalvik virtual machine.JIT compiler (versione 2.2).
    31. 31. Android Code Camp, Urbino — 2012.Dalvik vs. JVM.Dalvik < JVM.Ma il problema è multidimensionale.• Register-based.• Efficiente con più VMs.• Footprint minimo in memoria.• Startup time ridotto.
    32. 32. Android Code Camp, Urbino — 2012.Core libraries.Dalvik non rispetta la specifica J2SE,né quella J2ME.Le core libraries forniscono la maggiorparte delle funzionalità disponibili nellelibrerie Java standard, così come libreriespecifiche per Android.
    33. 33. Android Code Camp, Urbino — 2012.Application framework.Fornisce servizi importanti, incapsulati inoggetti Java, alle applicazioni di livellosovrastante.Sono disponibili alla stessa maniera siaper applicazioni di sistema che perapplicazioni di terze parti.
    34. 34. Android Code Camp, Urbino — 2012.Livello applicazioni.Applicazioni a livello utente scritte inlinguaggio Java. App di sistema = App terze parti
    35. 35. Android Code Camp, Urbino — 2012.L’ecosistema.Ecosistema di sviluppo.Android SDK.Eclipse IDE.Application Programming Interfaces.
    36. 36. Android Code Camp, Urbino — 2012.SDK: emulatore.Software che emula il funzionamento el‗aspetto di una configurazione hardwarevirtuale (AVD: Android Virtual Device).
    37. 37. Android Code Camp, Urbino — 2012.SDK: emulatore.Interfaccia user-friendly per laconfigurazione dei propri AVD.
    38. 38. Android Code Camp, Urbino — 2012.SDK: tools.Logcat: raccoglie log di un device Android.Lint: analisi statica per ottimizzazione erilevazione errori comuni.Proguard: riduce la dimensione, ottimizzaed offusca il codice prodotto. Lo rende piùrapido e resistente al reverse engineering.
    39. 39. Android Code Camp, Urbino — 2012.SDK: Dalvik Debug Monitor ServeStrumento per il debug di dispositiviAndroid, con raccolta di informazioni suprocessi, thread, heap, logcat edemulazione di eventi.
    40. 40. Android Code Camp, Urbino — 2012.SDK: Android Developer Tools.Plugin per IDE Eclipse.Semplifica creazione, compilazione emantenimento di progetti.Integra tool di sviluppo.Include editor grafici e documentazione.
    41. 41. Android Code Camp, Urbino — 2012.Eclipse.Ambiente di sviluppoopen-source,multi-piattaforma emulti-linguaggio.È la piattaforma diriferimento per Android.Alternative:ANT, NetBeans…
    42. 42. Android Code Camp, Urbino — 2012.Android APIs.
    43. 43. Android Code Camp, Urbino — 2012.Android 1.5, API 3.Riproduzione e cattura audio/video.Riconoscimento vocale.Widget.Notifiche.WebView.
    44. 44. Android Code Camp, Urbino — 2012.Android 1.6, API 4.Gestures.Sintesi vocale.Supporto CDMA.Supporto per dimensioni e densità dischermi variabili.
    45. 45. Android Code Camp, Urbino — 2012.Android 2.1, API 7.Supporto Bluetooth 2.1.Live Wallpapers.
    46. 46. Android Code Camp, Urbino — 2012.Android 2.2, API 8.JIT compiler.Supporto installazione in SD card.Miglioramento del riconoscimento vocaleed apertura a terze parti.Supporto alla tecnologia Flash.
    47. 47. Android Code Camp, Urbino — 2012.Android 2.3, API 9/10.Supporto nativo a Voip (SIP).Supporto a NFC.Garbage Collector concorrente.Supporto ad altri formati multimediali.
    48. 48. Android Code Camp, Urbino — 2012.Android 3.0, API 11.Fragments.ActionBar.Nuove API per il drag and drop.Supporto per laccelerazione hardware 2D.Nuovo framework 3D renderscript.Supporto multimediale migliorato.
    49. 49. Android Code Camp, Urbino — 2012.Android 3.1, API 12.Supporto a periferiche USB.Widget ridimensionabili.Supporto multimediale migliorato.
    50. 50. Android Code Camp, Urbino — 2012.Android 4.0.1, API 14.Merge tra versione tablet e smartphone.Linux kernel 3.x.UI riprogettata per maggior coerenza edunificazione.Notifiche più potenti.Supporto per riconoscimento vocalecontinuo.API sociali.API di basso livello per lo streaming.
    51. 51. Android Code Camp, Urbino — 2012.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.
    52. 52. Android Code Camp, Urbino — 2012.Panoramica applicazioni.Elementi principali di un app.Activity.Service.Content provider.Broadcast receiver.Intent.Widget.Fragment.Notification.
    53. 53. Android Code Camp, Urbino — 2012.Activity.Ogni activity rappresenta una schermata diun‘applicazione.
    54. 54. Android Code Camp, Urbino — 2012.Activity.Ogni activity dovrebbe equivalere adunattività atomica dellutente.
    55. 55. Android Code Camp, Urbino — 2012.Activity.Possono avere un valore di ritorno.
    56. 56. Android Code Camp, Urbino — 2012.Activity.Poi ci ritorniamo…
    57. 57. Android Code Camp, Urbino — 2012.Panoramica applicazioni.Elementi principali di un app.Activity.Service.Content provider.Broadcast receiver.Intent.Widget.Fragment.Notification.
    58. 58. Android Code Camp, Urbino — 2012.Service.Un‘attività dellapp o del sistema invisibileallutente (gira in background).Alcuni esempi: Raccoglie dati del sistema. Aggiorna le informazioni di una particolare app. Scarica nuovi feed RSS da un server.
    59. 59. Android Code Camp, Urbino — 2012.Service.Non comunica direttamente con l‘utentema può comunicare con le activity (anchedi altre app) e con il sistema.
    60. 60. Android Code Camp, Urbino — 2012.Service.Se fondamentali per un‘applicazione possoessere istanziati come foreground service.
    61. 61. Android Code Camp, Urbino — 2012.Panoramica applicazioni.Elementi principali di un app.Activity.Service.Content provider.Broadcast receiver.Intent.Widget.Fragment.Notification.
    62. 62. Android Code Camp, Urbino — 2012.Content provider.• È un‘astrazione di insiemi di dati strutturati.• Espone metodi CRUD (create, retrieve, update, and delete).• Usato per condividere dati ad altre applicazioni o per gestirli privatamente.Android ne mette a disposizione molti giàpronti e se ne possono implementare dipersonalizzati.
    63. 63. Android Code Camp, Urbino — 2012.Content provider.Alcuni esempi di content provider:• Lista dei contatti.• Lista delle immagini sul dispositivo.• Dati che risiedono in un DB SQLite.• Dati che risiedono su un web service.
    64. 64. Android Code Camp, Urbino — 2012.Panoramica applicazioni.Elementi principali di un app.Activity.Service.Content provider.Broadcast receiver.Intent.Widget.Fragment.Notification.
    65. 65. Android Code Camp, Urbino — 2012.Broadcast receiver.Sistema per la comunicazioneintra-applicazione/intra-processo.Un componente a cui è delegata laricezione di intent in broadcast…
    66. 66. Android Code Camp, Urbino — 2012.Intent.Costituiscono il sistema di messaggisticafra i vari componenti del sistema.Ogni intent è una struttura dati cheincapsula dati. Questi dati costituisconouna astrazione di: Un‘operazione da eseguire. Un evento che si è appena verificato.
    67. 67. Android Code Camp, Urbino — 2012.Intent.Dati di esempio:Campo ValoreComponent name it.uniurb.codecamp.testAction ACTION_CALLData URI tel:07224475 Type integerCategory CATEGORY_LAUNCHERExtras "tel_number":intFlags FLAG_ACTIVITY_SINGLE_TOP
    68. 68. Android Code Camp, Urbino — 2012.Intent.Inviare un‗immagine:Campo ValoreAction SENDData content://media/external/pic16Visualizzare un punto su Google Maps:Campo ValoreAction VIEWData geo:latitude,longitude?z=zoom
    69. 69. Android Code Camp, Urbino — 2012.Intent.Il mittente è sempre noto mentre ilricevente può non esserlo a priori.
    70. 70. Android Code Camp, Urbino — 2012.Intent espliciti.Il nome (la classe) del componentedestinatario è specificato. Solo Activity. Solo Activity nel proprio contesto.
    71. 71. Android Code Camp, Urbino — 2012.Intent impliciti.Android cerca il componente per noi: Se ne trova uno, lo attiva. Se ne trova più di uno, viene chiesto all‘utente quale scegliere. Se non ne trova nessuno, lavvio fallisce
    72. 72. Android Code Camp, Urbino — 2012.Impliciti intent resolution.In base al tipo del componente. (Activity, Service, Broadcast receiver).In base al campo ACTION.In base al campo CATEGORY.In base al campo DATA (URI e Type).
    73. 73. Android Code Camp, Urbino — 2012.Broadcast receiver (reprise).Un componente a cui è delegata la ricezione di intent in broadcast.Può essere/non essere associato ad un altro componente.Non possiede una interfaccia grafica.Può istanziare notifiche.Può avviare un altro componente.
    74. 74. Android Code Camp, Urbino — 2012.Broadcast receiver (esempi).Ricezione dei cambiamenti nel livello dicarica della batteria del dispositivo.Ricezione dell‘evento download del filecompletato.Ricezione dell‘evento boot completato econseguente avvio di un servizio inbackground.
    75. 75. Android Code Camp, Urbino — 2012.Panoramica applicazioni.Elementi principali di un app.Activity.Service.Content provider.Broadcast receiver.Intent.Widget.Fragment.Notification.
    76. 76. Android Code Camp, Urbino — 2012.Widget.Inglobati in altre applicazioni. (Risiedonoall‘interno di ―App Widget Host‖.)Periodi di aggiornamento lunghi.(Minimo: 30 minuti.)Ricevono input dall‘utente e aggiornamentitramite un Broadcast Receiver (chedevono implementare).
    77. 77. Android Code Camp, Urbino — 2012.Esempi di widget.
    78. 78. Android Code Camp, Urbino — 2012.Esempi di widget.
    79. 79. Android Code Camp, Urbino — 2012.Panoramica applicazioni.Elementi principali di un app.Activity.Service.Content provider.Broadcast receiver.Intent.Widget.Fragment.Notification.
    80. 80. Android Code Camp, Urbino — 2012.Fragment.Componenti modulari di un‘activity.Hanno un proprio ciclo di vita.Possono essere rimossi o aggiunti mentrel‘activity è attiva.Nascono come risposta all‘esigenza dimettere un‘activity dentro un‘altra.
    81. 81. Android Code Camp, Urbino — 2012.Esempio di fragment. Portrait Landscape
    82. 82. Android Code Camp, Urbino — 2012.Panoramica applicazioni.Elementi principali di un app.Activity.Service.Content provider.Broadcast receiver.Intent.Widget.Fragment.Notification.
    83. 83. Android Code Camp, Urbino — 2012.Notification.Servono per informare l‘utente di unevento scatenato o avvenuto: Nel sistema. Nell‘activity con cui l‘utente sta interagendo. Nei componenti senza interfaccia. (Come i servizi.)
    84. 84. Android Code Camp, Urbino — 2012.Toast notification.Per eventi avvenuti in background.Nessun input dall‘utente.Poco più che un output su console…
    85. 85. Android Code Camp, Urbino — 2012.Dialog notification.Per eventi relativi all‘activity corrente.(Caricamento, conferma, etc…)Supportano l‘input utente.
    86. 86. Android Code Camp, Urbino — 2012.Status notification.Per eventi relativi avvenuti in background.Richiedono l‘input utente.Sono persistenti.Tipicamente risiedono nella barra dellenotifiche finché l‘utente non interagiscecliccandoci o cancellandole. Al click spesso viene lanciata un‘activity.
    87. 87. Android Code Camp, Urbino — 2012.Approfondimenti.Altri dettagli sulle applicazioni.Layout.Il back stack di navigazione.Ciclo di vita delle Activity.Ciclo di vita dei Service.Ciclo di vita dei Fragment.
    88. 88. Android Code Camp, Urbino — 2012. Layout. Composta genericamente da View e ViewGroup (e Fragment).TableLayout EditText TextView Button
    89. 89. Android Code Camp, Urbino — 2012.Layout.Il layout è definito (normalmente) tramiteun file xml. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/rss_title" android:layout_width="wrap_content" android:layout_height="wrap_content" … /> <ListView android:id="@+id/rss_list" android:layout_width="match_parent" android:layout_height="wrap_content" …> </ListView> <Button android:id="@+id/load" android:layout_width="wrap_content" … /> </RelativeLayout>
    90. 90. Android Code Camp, Urbino — 2012.Approfondimenti.Altri dettagli sulle applicazioni.Layout.Il back stack di navigazione.Ciclo di vita delle Activity.Ciclo di vita dei Service.Ciclo di vita dei Fragment.
    91. 91. Android Code Camp, Urbino — 2012.Il back stack di navigazione.Ogni activity appartiene ad un task.Ogni task contiene una collezione diactivity nell‘ordine in cui sono state lanciate(back stack).
    92. 92. Android Code Camp, Urbino — 2012.Il back stack di navigazione.Il sistema gestisce contemporaneamentepiù task ma solo uno per volta è quello inforeground.Un nuovo task inizia ogni volta cheun‘applicazione è avviata dal launcher: <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />oppure con le modalità di lancio.
    93. 93. Android Code Camp, Urbino — 2012.Il back stack di navigazione.La struttura di un task viene alterata:• Lanciando una nuova activity (crescita).• Tasto Back (decrescita).Lo stato di un task (back/fore) cambia:• C‘è un‘interruzione per eventi esterni.• Tasto home.• Avvio di un‘activity dal menu delle activity recenti.
    94. 94. Android Code Camp, Urbino — 2012.Modalità di lancio.Normalmente:• Quando viene avviata un‘activity per la prima volta questa viene aggiunta al task attuale (oppure ad un task vuoto se MAIN/LAUNCHER).• Anche se la stessa activity era già stata lanciata ne viene creata una nuova istanza.
    95. 95. Android Code Camp, Urbino — 2012. Modalità di lancio. Le activity posso essere lanciate con modalità di lancio particolari. Definite nel manifest o nell‘intent di lancio. Modalità Conseguenze Default Viene creata una nuova activity. Istanze diverse della stessa possono appartenere a diversi task. Ogni task può avere più istanze della stessa. SingleTop Viene creata una nuova istanza solo se l‘activity non è al top dello stack (onNewIntent()). Il resto come Default. SingleTask Se c‘è già un‘istanza in un task viene riavviata quella altrimenti viene avviata una nuova activity in un nuovo task. Può esserci sempre solo un‘istanza dell‘activity nel sistema.SingleInstance Come sopra ma l‘activity è sempre l‘unica presente nel suo task.
    96. 96. Android Code Camp, Urbino — 2012.Modalità di lancio.DEMO…
    97. 97. Android Code Camp, Urbino — 2012.Approfondimenti.Altri dettagli sulle applicazioni.Layout.Il back stack di navigazione.Ciclo di vita delle Activity.Ciclo di vita dei Service.Ciclo di vita dei Fragment.
    98. 98. Android Code Camp, Urbino — 2012.Ciclo di vita delle Activity.
    99. 99. Android Code Camp, Urbino — 2012.Ciclo di vita delle Activity.
    100. 100. Android Code Camp, Urbino — 2012.Ciclo di vita delle Activity.
    101. 101. Android Code Camp, Urbino — 2012.Ciclo di vita delle Activity.
    102. 102. Android Code Camp, Urbino — 2012.Ciclo di vita delle Activity.
    103. 103. Android Code Camp, Urbino — 2012.Ciclo di vita delle Activity.DEMO…
    104. 104. Android Code Camp, Urbino — 2012.Ciclo di vita delle Activity.Salvataggio dello stato dell‘activity.
    105. 105. Android Code Camp, Urbino — 2012. Ciclo di vita delle Activity. Un‘activity può essere distrutta dal sistema per recuperare memoria MA l‘utente si aspetta di ritrovare l‘activity nello stesso stato.onSaveInstanceState(Bundle)onRestoreInstanceState(Bundle)onCreate(Bundle)
    106. 106. Android Code Camp, Urbino — 2012.Ciclo di vita (Esempi).Rotazione dello schermo quando c‘è unaListView caricata con dati remoti.Quando sono chiamati? onRestoreInstanceState() subito dopo onStart(), onSaveInstanceState() prima di onStop() e forse prima di onPause().Non ci sono garanzie che vengaeffettivamente chiamato (es: back button)!
    107. 107. Android Code Camp, Urbino — 2012.Ciclo di vita (Esempi).Cosa salvare nel Bundle? Lo stato transitorio dell‘activity. Lo stato dell‘interfaccia (lo stato grafico di ogni View viene salvato in ogni caso).Cosa non salvare nel Bundle? Le informazioni non strettamente relative a quell‘istanza dell‘activity. Le info persistenti dovrebbero essere registrate nel metodo onPause().
    108. 108. Android Code Camp, Urbino — 2012.Approfondimenti.Altri dettagli sulle applicazioni.Layout.Il back stack di navigazione.Ciclo di vita delle Activity.Ciclo di vita dei Service.Ciclo di vita dei Fragment.
    109. 109. Android Code Camp, Urbino — 2012.Started & bound services.Started: Avviato da un altro componente invocando startService(). Viene terminato o termina da solo.Bound: Avviato da 1+ componenti invocando bindService(). Sopravvive fino all‗ultimo unbindService().
    110. 110. Android Code Camp, Urbino — 2012.Ciclo di vita dei Service.
    111. 111. Android Code Camp, Urbino — 2012.Approfondimenti.Altri dettagli sulle applicazioni.Layout.Il back stack di navigazione.Ciclo di vita delle Activity.Ciclo di vita dei Service.Ciclo di vita dei Fragment.
    112. 112. Android Code Camp, Urbino — 2012.Ciclo di vita dei Fragment.
    113. 113. Android Code Camp, Urbino — 2012.Un progetto Android.Struttura del progetto in Eclipse.Cartelle.Gestione delle risorse.Manifest dell‗applicazione.
    114. 114. Android Code Camp, Urbino — 2012.Cartelle di un progetto Android./src: sorgenti Java (oppure .aidl o altri)/bin: compilati (.apk, ecc…)/libs: librerie esterne/gen: sorgenti generati (R.java)/assets: risorse unmanaged (nel .apk)/res: risorse managed (processati)/AndroidManifest.xml: metadati.properties, .cfg, .xml: altri files
    115. 115. Android Code Camp, Urbino — 2012.Un progetto Android.Struttura del progetto in Eclipse.Cartelle.Gestione delle risorse.Manifest dell‗applicazione.
    116. 116. Android Code Camp, Urbino — 2012.Android Asset Packaging Tool.Ad ogni risorsa all‗interno della directory/res viene assegnato un ID intero.Si genera una classe R.java con: Una classe public static final per ogni tipo di risorsa. Un campo intero con il nome risorsa.La classe viene compilata nel namespace.Mappa <nome, ID intero>.
    117. 117. Android Code Camp, Urbino — 2012.Versioni delle risorse.Le versioni sono caratterizzate dal nomedella directory in cui sono locate.• layout-long• anim-v14• drawable-en-rUS-land-night-notouch Lingua in inglese, in America, orientato orizzontalmente, è notte e non si dispone di interfaccia touch.Risorsa scelta a runtime dal framework.
    118. 118. Android Code Camp, Urbino — 2012.Creazione delle risorse.Dichiarazione tramite XML: <Button android:id=" @+id/nice_button " /> <string name=―hello_world‖> ciao mondo</string>I file vengono creati nelle specifichesotto-directory di /res.
    119. 119. Android Code Camp, Urbino — 2012.Accesso alle risorse.Tramite XML: @[<package_name>:]<resource_type>/<resource_name> <Button android:text=" @string/hello_world " />Tramite codice: [<package_name>.]R.<resource_type>.<resource_name> ImageView imageView = (ImageView) findViewById(R.id.myimageview); imageView.setImageResource(R.drawable.myimage);
    120. 120. Android Code Camp, Urbino — 2012.Un progetto Android.Struttura del progetto in Eclipse.Cartelle.Gestione delle risorse.Manifest dell‗applicazione.
    121. 121. Android Code Camp, Urbino — 2012.Manifest dell‘applicazione.File AndroidManifest.xml nella root.Descrive l‗applicazione, il nome delpackage, il namespace, i permessi.Dichiara che livello di API è richiesto.Include la specifica di ogni componente: Activity, Service, Receiver, etc.
    122. 122. Android Code Camp, Urbino — 2012.Tutorial.Hello World in tutte le salse.Preparazione dell‗ambiente di lavoro.Creazione di un progetto.„Hello World― sul log.Layouts, callbacks e toast notifications.Intent e navigazione.Liste.Status notifications.Background service.
    123. 123. Android Code Camp, Urbino — 2012.Preparazione dell‘ambiente.Eclipse IDE.Aggiungiamo l‗Android ADT: https://dl-ssl.google.com/android/eclipse/Dopodiché scarichiamo l‗SDK.…possiamo iniziare!
    124. 124. Android Code Camp, Urbino — 2012.Tutorial.Hello World in tutte le salse.Preparazione dell‗ambiente di lavoro.Creazione di un progetto.„Hello World― sul log.Layouts, callbacks e toast notifications.Intent e navigazione.Liste.Status notifications.Background service.
    125. 125. Android Code Camp, Urbino — 2012.Creazione di un progetto.
    126. 126. Android Code Camp, Urbino — 2012.Tutorial.Hello World in tutte le salse.Preparazione dell‗ambiente di lavoro.Creazione di un progetto.„Hello World― sul log.Layouts, callbacks e toast notifications.Intent e navigazione.Liste.Status notifications.Background service.
    127. 127. Android Code Camp, Urbino — 2012.Android log.Classe android.util.Log.Livelli di logging: ASSERT: Log.wtf() ERROR: Log.e() WARN: Log.w() INFO: Log.i() DEBUG: Log.d() VERBOSE: Log.v()
    128. 128. Android Code Camp, Urbino — 2012.Per ogni chiamata al logger si passano: TAG: discriminatore. Messaggio: contenuto. Eccezione: opzionale.
    129. 129. Android Code Camp, Urbino — 2012.Tutorial.Hello World in tutte le salse.Preparazione dell‗ambiente di lavoro.Creazione di un progetto.„Hello World― sul log.Layouts, callbacks e toast notifications.Intent e navigazione.Liste.Status notifications.Background service.
    130. 130. Android Code Camp, Urbino — 2012.Layout.Permettono di strutturare l‗interfacciagrafica di un‗applicazione.Flessibili e dinamici.LinearLayout.RelativeLayout.FrameLayout.
    131. 131. Android Code Camp, Urbino — 2012.LinearLayout.<LinearLayout android:layout_width=„match_parent“ android:layout_height=„match_parent“ android:orientation=„horizontal“ > <Item1 /> <Item2 /> <Item3 /></LinearLayout>
    132. 132. Android Code Camp, Urbino — 2012.RelativeLayout.<RelativeLayout> <Item1 /> <Item2 layout_below=„Item1“ layout_alignParentLeft=„true“ /> <Item3 layout_below=„Item1“ layout_alignParentRight=„true“ /></RelativeLayout>
    133. 133. Android Code Camp, Urbino — 2012.Button e callback.<Button android:id=„@+id/buttonToast“ />Button button = (Button) this.findViewById(R.id.buttonToast);button.setOnClickListener( new OnClickListener(){ @Override public void onClick(View arg0) { }});
    134. 134. Android Code Camp, Urbino — 2012.Toast notification.Create tramite metodo statico.Toast.makeText(Context, “Text”, Toast.LENGTH_SHORT).show();Testo visualizzato in sovraimpressione perla durata specificata.
    135. 135. Android Code Camp, Urbino — 2012.Tutorial.Hello World in tutte le salse.Preparazione dell‗ambiente di lavoro.Creazione di un progetto.„Hello World― sul log.Layouts, callbacks e toast notifications.Intent e navigazione.Liste.Status notifications.Background service.
    136. 136. Android Code Camp, Urbino — 2012.Intent implicito.Intent i = new Intent( Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));Context.startActivity(i);Si sfrutta l‗intent ACTION_VIEW, definito dalsistema.Viene gestito dal browser (in questo caso).
    137. 137. Android Code Camp, Urbino — 2012.Intent esplicito.Intent i = new Intent( Context, Class);Context.startActivity(i);Intent diretto in maniera specifica ad unaclasse in particolare (una Activity).Non viene intercettata, né risolta dalsistema.
    138. 138. Android Code Camp, Urbino — 2012.Tutorial.Hello World in tutte le salse.Preparazione dell‗ambiente di lavoro.Creazione di un progetto.„Hello World― sul log.Layouts, callbacks e toast notifications.Intent e navigazione.Liste.Status notifications.Background service.
    139. 139. Android Code Camp, Urbino — 2012.Liste.La lista è visualizzata da una ListView.I dati sono gestiti da un ListAdapter: Gestisce l‗accesso ai dati. Ne determina la rappresentazione.
    140. 140. Android Code Camp, Urbino — 2012.Tutorial.Hello World in tutte le salse.Preparazione dell‗ambiente di lavoro.Creazione di un progetto.„Hello World― sul log.Layouts, callbacks e toast notifications.Intent e navigazione.Liste.Status notifications.Background service.
    141. 141. Android Code Camp, Urbino — 2012.Componenti di una notifica.Icona (nella barra e nel pannello).Ticker (messaggio nella barra).Numero in sovraimpressione.Flags (AUTO_CANCEL, INSISTENT, etc).Content view (nel pannello), può essere generato (LatestEvent).PendingIntent che determina azione.Identificatore univoco.
    142. 142. Android Code Camp, Urbino — 2012.Aggiornamento notifiche.Il pannello mostra una sola notifica perogni identificatore univoco.Permette di avere una singola notifica perogni tipologia di avviso dell‗applicazione.I PendingIntent possono essereaggiornati dall‗applicazione (modificaazione, ma non la notifica).
    143. 143. Android Code Camp, Urbino — 2012.Tutorial.Hello World in tutte le salse.Preparazione dell‗ambiente di lavoro.Creazione di un progetto.„Hello World― sul log.Layouts, callbacks e toast notifications.Intent e navigazione.Liste.Status notifications.Background service.
    144. 144. Android Code Camp, Urbino — 2012.Background service.Si utilizza un Intent per specificare ilmaniera esplicita il servizio da avviare.Intent serviceIntent = new Intent( Context, Service.class);Context.startService(serviceIntent);

    ×