Your SlideShare is downloading. ×
0
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
MobileDevCamp2012 - Android
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

MobileDevCamp2012 - Android

280

Published on

Queste sono le slide su android usate da Gaetano Raimondo durante il MobileDevCamp 2012 a Lecce.

Queste sono le slide su android usate da Gaetano Raimondo durante il MobileDevCamp 2012 a Lecce.

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

  • Be the first to like this

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Links Management and Technology Competency Technology InfrastructureArgomento: Introduzione ad AndroidAutore: Gaetano RaimondoDistribuzione: EsternaData: 19 Maggio 2012
  • 2. Introduzione ad Android Agenda 2
  • 3. Agenda (1) Cenni storici L’architettura L’ambiente di sviluppo Introduzione allo sviluppo di applicazioni La struttura dei progetti I componenti grafici Debug delle applicazioni 3
  • 4. L’architettura di Android 1Android: The story, so far 4
  • 5. Un SO per chi preferisce i dolci alla mela  I primi rumours sul sistema operativo mobile di Google risalgono al 2005.  Nel 2007 viene rilasciata la prima versione per gli sviluppatori con alcune delle feature che lo differenziano dai concorrenti: Desktop multipli,integrazione con i servizi di google più famosi quali Gmail and Calendar  Nel 2008 esce il primo modello di telefonino dotato di S.O. Android, il T-Mobile G1, senza alcun successo.  Nel 2009 esce la versione 1.5 di Android, Cupcake, insieme con il primo telefonino davvero competitivo sul mercato: l’HTC Magic, dotato di tastiera touch, videocamera,bluetooth e una UI comparabile con l’iPhone.  Sempre nel 2009 viene rilasciata la versione 1.6 Donut, che a dispetto del piccolo cambio di release number offre significativi miglioramenti quali l’aumento della risoluzione e delle performance generali 5
  • 6. Un dolce robottino da passeggio  Il supporto ad HTML5 viene introdotto nella nuova major release, la 2.0 Eclair. Altri miglioramenti includono il supporto a Exchange, ai flash LED e a Bluetooth 2.1  Nel 2010 arriva anche il primo sistema operativo usato su un dispositivo tablet: la 2.2 Froyo. Viene introdotto un compilatore JIT (Just in time) per aumentare le performance, ed il supporto ad Adobe Flash e al tethering  La versione 2.3 Gingerbread introduce una risoluzione più alta (WXGA) e alcune feature utili al supporto dei videogiochi  Con la release 3.0 Honeycomb si ha la prima versione dedicata esplicitamente ai tablet. In seguito sono state rilasciate anche le minor release 3.1 e 3.2 6
  • 7. Gelato di fine estate Nell’ultimo quarto del 2011 è stata rilasciata la versione 4.0 Ice Cream Sandwich, seguita a breve distanza dalla minor release 4.0.3 In questa release, le due branch per smartphone e tablet vengono unificate, introducendo un framework di sviluppo della UI unificato Vengono introdotte nuove API quali:  Social API  Calendar API  Visual voicemail API  Android Beam Vi è il supporto per la connessione diretta tramite WI- FI ad altri dispositivi senza bisogno di passare per un hot-spot 7
  • 8. 2Introduzione all’architettura Di Android 8
  • 9. L’architettura di Android 9
  • 10. L’architettura multilivello di android I livelli in cui è divisa l’architettura di android sono:  Applicazioni: Scritte in java ed eseguite nella virtual machine Dalvik  Servizi e librerie del framework applicativo: scritte principalmente in java  Librerie native, demoni e servizi scritti in C/C++ eseguiti direttamente nel core Linux  Il kernel linux che include i driver per l’accesso alle periferiche hardware Al centro di tutta l’architettura runtime c’è una versione modificata di una java virtual machine, chiamata Dalvik. Per ognuna delle applicazioni che gireranno nel SO verrà istanziata una JVM apposita. 10
  • 11. La vertenza con Oracle Dalvik è un software Open Source di proprietà di Google, implementare una virtual machine java senza utilizzare software proprietario di SUN, creatrice del linguaggio di programmazione. A seguito dell’acquisizione di SUN, nel 2010 Oracle ha intentato una causa a Google per la violazione di tre brevetti Questa vertenza, oltre a quelli legali, ha causato anche problemi relativi all’effettiva “redditività” di Android. Queste problematiche, sebbene non hanno per il momento modificato le politiche commerciali e gli sviluppi della piattaforma android, rischiano in futuro di costringere Google a cambiare le policy In ogni caso, bisogna riconoscere che la versione 4.0 è stata la prima versione di Android in cui il codice sorgente è stato rilasciato contemporaneamente ai binari. 11
  • 12. 3L’ambiente di sviluppo 12
  • 13. Installazione dell’ambiente di sviluppoInstallare il development kit di android sui propri pc è estremamente semplice. Altermine della procedura si disporrà di:  Un’IDE basato su Eclipse  Un runtime enviroment da cui sarà possibile testare e debuggare il software scritto  Una serie di tool da riga di comando per gestire le applicazioni.Per installare l’SDK effettuare le seguenti operazioni:  Scompattare lo starter package installer_r18-linux.tgz  Installare Eclipse, preferibilmente in versione “Java” così da ridurre il numero di plugin e aumentare le performance  Installare il plugin ADT per eclipse  Aggiungere i runtime delle piattaforme che verranno supportate dalla applicazione da sviluppare 13
  • 14. Practice IInstallazione dell’ambiente di sviluppo 14
  • 15. Practice IIDo Android Says Electric “Hello World”? 15
  • 16. 4Sviluppare applicazioni su Android 16
  • 17. La virtual machine Dalvik Lo sviluppo su Android avviene in linguaggio Java. L’ambiente di runtime si chiama Dalvik, ed è una versione open-source della JVM, in cui invece del bytecode viene eseguito un bytecode modificato chiamato DEX (Dalvik Executable) Le principali mancanze rispetto alla JVM standard sono nei package Swing e AWT Il package android.* contiene tutte le classi e le interfacce specifiche di android. Un’altra mancanza della JVM Dalvik è l’impossibilità di generare bytecode a runtime. Questo di fatto impedisce l’applicazione dei moderni framework aspect oriented. 17
  • 18. I componenti di una applicazione Android: Le attivitàLe applicazioni android hanno una architettura a componenti, ognunodelegato ad un ben specifico compito. Di seguito verranno elencati leprincipali: Attività (Activity): Lattività è una componente applicativa che fornisce una schermata con cui gli utenti possono interagire per compiere delle azione, come comporre un numero di telefono, scattare una foto, inviare una e-mail o visualizzare una mappa. Ad ogni attività è associata una finestra in cui disegnare linterfaccia utente. La finestra di solito riempie lo schermo, ma può essere più piccola dello schermo e “galleggiare” sopra le altre finestre come nei Dialog e nelle Progress Bar. 18
  • 19. I componenti di una applicazione Android: I Servizi Servizio (Service): Un servizio è un componente dellapplicazione che consente di eseguire operazioni di lunga durata in background e non fornisce uninterfaccia utente. Un altro componente dell’applicazione può avviare un servizio che continuerà a funzionare in background anche se lutente passa a unaltra applicazione. Inoltre, un componente può legarsi ad un servizio per interagire con esso ed effettuare una comunicazione interprocesso (IPC). Ad esempio, un servizio può gestire le transazioni di rete, riprodurre musica, effettuare file di I / O, o interagire con un fornitore di contenuti, il tutto in background senza bloccare l’interfaccia utente. 19
  • 20. I componenti di una applicazione Android: I Receiver I Receiver possono essere di diversi tipi. I principali sono:  ResultReceiver: Un ResultReceiver è un componente dell’applicazione in grado di ricevere un risultato da un altro componente applicativo. Viene usato per permettere alle Attività di ricevere i risultati dell’elaborazione di un Servizio  BroadcastReceiver: Un Broadcast Receiver viene utilizzato quando si intende intercettare un particolare evento di sistema. Ad esempio lo si può utilizzare se si desidera compiere un’azione quando si scatta una foto o quando parte la segnalazione di batteria scarica. 20
  • 21. I componenti di una applicazione Android: I Content Provider  Content Provider: I Content Provider sono utilizzati per esporre dati e informazioni. Costituiscono un canale di comunicazione tra le differenti applicazioni installate nel sistema. 21
  • 22. Distribuire una applicazione Android: i pacchetti APK  Le applicazioni Android sono distribute sotto forma di pacchetti APK, che contengono gli eseguibili in formato DEX, le risorse dell’applicazione e i descrittori.  Il descrittore principale è il file manifesto, chiamato AndroidManifest.xml, che elenca tutte le componenti dell’applicazione.  In Eclipse è presente un editor visuale che permette di gestire il file manifesto senza commettere errori. 22
  • 23. Distribuire una applicazione Android: il file manifesto 23
  • 24. Descrivere una applicazione Android: l’editor visuale 24
  • 25. Practice IIIDistribuire una applicazione Android 25
  • 26. 5La struttura dei progetti Android 26
  • 27. La struttura dei progetti android Al momento della creazione di un nuovo progetto, viene creata una struttura che distingue nettamente:  Il codice sorgente nella directory src  Le risorse esterne nella directory res, suddivise in:  drawable-hdpi,drawable-mdpi, drawable-ldpi per le risorse grafiche  layout: per i file che definiscono i layout delle schermate  values: per i file che definiscono i valori da utilizzare nell’applicazione  Le classi “autogenerate” nella directory gen. In particolare questa cartella contiene la classe R, che conterrà tutti i riferimenti alle risorse contenute nella cartella res 27
  • 28. 6Le Attività 28
  • 29. Definizione di Attività (Activity) Attività (Activity): Lattività è una componente applicativa che fornisce una schermata con cui gli utenti possono interagire per compiere delle azione, come comporre un numero di telefono, scattare una foto, inviare una e-mail o visualizzare una mappa. Ad ogni attività è associata una finestra in cui disegnare linterfaccia utente. La finestra di solito riempie lo schermo, ma può essere più piccola dello schermo e “galleggiare” sopra le altre finestre come nei Dialog e nelle Progress Bar. Per implementare una attività si estende la classe base android.app.Activity Le applicazioni sono tipicamente composte da più attività, che sono legate tra loro in maniera lasca. Il ciclo di vita delle attività è gestito dal sistema operativo, che si occupa di avviarle, metterle in background, stopparle, riavviarle o eliminarle 29
  • 30. Descrivere una attività nel file manifesto  Affinchè una attività possa essere gestita da android è necessario che essa venga descritta nel file AndroidManifest.xml All’interno del tag activity possiamo vedere il tag intent- filter. Gli intent sono dei messaggi che è possibile mandare al sistema operativo affinchè svolga un’azione  Il primo intent comunica al SO che l’attività deve essere lanciata allo start della applicazione  Il secondo che è possibile per un utente avviare l’attività dall’application launcher Gli intent verranno descritti con maggiore dettaglio più avanti nel corso 30
  • 31. Ciclo di vita di una Attività 31
  • 32. Gli stati di una attivitàUna attività può assumere uno dei seguenti tre stati: Attivo (Resumed): L’attività è in primo piano (foreground) e l’utente può interagire con essa In Pausa: L’attività è in vita, ma ce n’è un’altra che la copre in maniera parziale, ad esempio con una trasparenza. In questo stato l’attività conserva i suoi dati e quelli dei suoi membri, ma può essere killata dal SO se ci fosse estrema necessità di liberare memoria. Interrotta (Stopped): L’attività è in background, mentre ce n’è un’altra in foreground. Anche in questo caso l’attività può essere considerata ancora in vita, ma può essere uccisa se il sistema ha bisogno di liberare risorse per altre applicazioni 32
  • 33. Implementare i metodi di callbackLa superclasse Activity mette a disposizione una serie di metodi di callback che ilprogrammatore può implementare per gestire il ciclo di vitaNB: richiamare sempre il metodo della superclasse prima di implementare la logica 33
  • 34. Avviare una attività In android non è possibile avviare direttamente una attività, ma si deve utilizzare il meccanismo degli Intent. E’ possibile avviare una attività con due metodi:  startActivity(Intent)  startActivityOnResult(Intent,int requestCode) 34
  • 35. Interfacce modulari con i Fragment I Fragment rappresentano porzioni di user interface all’interno di una attività. I fragment permettono la modularizzazione dell’interfaccia, che può adattarsi in questa maniera ai diversi orientamenti di un tablet (portrait/landscape) 35
  • 36. 7Debuggare e monitorare un’applicazione 36
  • 37. Lanciare un’applicazione Android in Debug In Eclipse è possible lanciare un’applicazione Android in debug mode. Lanciare l’applicazione in questa modalità porta all’apertura delle seguenti view:  Debug  Variables  Breakpoints  LogCat: Visualizza il log di sistema di Android 37
  • 38. Utilizzare il Log di sistema La classe da utilizzare per effettuare log e android.util.Log, fornita dei seguenti metodi:  v(String, String) (verbose)  d(String, String) (debug)  i(String, String) (information)  w(String, String) (warning)  e(String, String) (error) Log.i("MyActivity", "MyClass.getView() — get item number " + position); 38
  • 39. La prospettiva DDMS (Dalvik Debug Monitor Server) Aprendo la prospettiva DDMS sarà possibile visualizzare una serie di controlli ulteriori sul dispositivo o sull’emulatore:  Devices – Mostra la lista di dispositivi ed emulatori connessi al debugger  Emulator Control – Permette di simulare delle funzionalità del dispositivo (come ad esempio ricevere una telefonata)  LogCat - Visualizza il log di sistema di Android  Threads – Mostra I thread attualmente presenti sulla VM  Heap – Mostra la quantità di memoria usata nell’heap  Allocation Tracker – Traccia l’allocazione di memoria  File Explorer – Permette di esplorare il filesystem del dispositivo 39
  • 40. La prospettiva DDMS (Dalvik Debug Monitor Server) 40
  • 41. Riferimenti Android Dev Center: http://developer.android.com/index.html Gaetano Raimondo Technical Leader | Software Engineering Links Management and Technology S.p.A. Via R. Scotellaro, 55 - 73100 Lecce Tel: +39 0832.443911 - Fax: +39 0832.443926 e-Mail: gaetano.raimondo@linksmt.it 41
  • 42. LECCE MILANO ROMAVia R. Scotellaro, 55 Via Gonzaga, 5 Via XX Settembre, 4Tel. +39 0832 443911 | Fax +39 0832 443926 | info@linksmt.it | www.linksmt.it

×