SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Sviluppare applicazioni Android
Copyright© 2013 Paolo Montalto http://www.xabaras.it
Argomenti trattati
•  Cos’è Android
•  SDK (eclipse + tools)
•  Struttura di un progetto android
•  Componenti base (Activity, View, Intent …)
•  Fragment (cenni)
•  Frammentazione e Support library (cenni)
Copyright© 2013 Paolo Montalto http://www.xabaras.it
Che cos’è android?
Copyright© 2013 Paolo Montalto http://www.xabaras.it
•  Sistema operativo per dispositivi mobili
•  Sviluppato dalla Open Handset Alliance
(84 aziende tra cui Google, Samsung, LG,
Nvidia…)
•  Open Source e gratuito
•  Basato su Kernel Linux
•  Linguaggio di programmazione Java
Android != Linux
Copyright© 2013 Paolo Montalto http://www.xabaras.it
•  Basato inizialmente su Kernel 2.6
•  Supporto ARM (e successivamente x86)
•  Sviluppato separatamente
•  Aggiunte patch non presenti in main branch linux
(ashmem, alarms, power management, low memory kliller,
logger…)
•  Parziale integrazione in versione 3.3
La	
  release	
  3.3	
  del	
  kernel	
  vi	
  perme1erà	
  di	
  avviare	
  un	
  userspace	
  Android	
  senza	
  
alcuna	
  modifica,	
  sebbene	
  la	
  ges<one	
  dell’alimentazione	
  non	
  sia	
  molto	
  buona.	
  
Nella	
  versione	
  3.4	
  del	
  kernel	
  si	
  spera	
  di	
  poter	
  correggere	
  questo	
  problema	
  e	
  
arrivare	
  ad	
  una	
  piena	
  integrazione	
  con	
  Android.	
  
	
  
Greg	
  Kroah-­‐Hartman	
  (Linux	
  kernel	
  –stable	
  branch	
  maintainer)	
  
Java ma non JVM
Copyright© 2013 Paolo Montalto http://www.xabaras.it
•  Dalvik Virtual Machine
•  No Java SE v Java ME
•  Subset Apache Harmony
•  No executable jars: apk
.java	
   .class	
   .dex	
  
Architettura
Copyright© 2013 Paolo Montalto http://www.xabaras.it
Dalvik Virtual Machine
E’ qui che agiamo!
SDK
Copyright© 2013 Paolo Montalto http://www.xabaras.it
•  Android developer tools
•  tools a linea di comando (adb, zipalign)
•  SDK Manager
•  AVD Manager (android virtual device manager)
•  Emulatore
•  Eclipse ADT plugin
L’android SDK è costituito da:	
  
Android SDK Manager
Copyright© 2013 Paolo Montalto http://www.xabaras.it
AVD Manager
Copyright© 2013 Paolo Montalto http://www.xabaras.it
Emulatore
Copyright© 2013 Paolo Montalto http://www.xabaras.it
•  Rom nativa android
•  Google API
•  Mock Locations
•  Simulazione Rete GSM
•  Pulsanti hardware
•  Hardware keyboard
•  D-Pad
•  Pulsanti volume
•  Pulsante “Power”
Graphical layout editor
Copyright© 2013 Paolo Montalto http://www.xabaras.it
Dalvik Debug Monitor Server
Copyright© 2013 Paolo Montalto http://www.xabaras.it
•  system information
•  screen capture
•  thread/heap info
•  logcat
•  processi
•  controllo emulatore
•  traffico di rete
•  stato della rete
•  posizioni GPS (mock)
Struttura di un Progetto
Copyright© 2013 Paolo Montalto http://www.xabaras.it
Codice Java
Codice generato
dal compilatore
Librerie e dipendenze di
sistema
Definizione dell’applicazione
Risorse:
•  layout (xml)
•  Immagini
•  Stili
•  File lingua
Librerie .jar, .so
Altri file dell’applicaizone
(es. .pdf, .html, .db …)
La directory “res”
Copyright© 2013 Paolo Montalto http://www.xabaras.it
Risorse grafiche
Risorse che rappresentano valori (colori,
dimensioni, stringhe di testo, stili della GUI)
I valori dopo il “-” nei nomi delle directory
sono i selettori delle risorse, servono ad
identificare l’utilizzo che l’applicazione farà
di quelle risorse:
•  hdpi: dispositivi con densità di schermo alta
•  sw600dp: device la cui risoluzione orizzontale
sia almeno di 600dp
•  v11: utilizzare solo se la versione di android
sul dispositivo è 11
•  it: se la lingua del device è Italiano
Activity
Copyright© 2013 Paolo Montalto http://www.xabaras.it
Activity è il “contesto” base di esecuzione in
un’applicazione android.
•  Entry point dell’applicazione android
•  Solo una in foreground
•  Solo una attiva
•  Stack: nuove activity sempre on top
Activity: ciclo di vita
Copyright© 2013 Paolo Montalto http://www.xabaras.it
View
Copyright© 2013 Paolo Montalto http://www.xabaras.it
•  Componenti base della UI di android
•  Definite e utilizzate nei file xml di Layout
•  Una view sa come disegnare se stessa
•  Risponde agli eventi (es: onClick, onLongClick)
•  Organizzate in gerarchie (ViewGroup)
Il framework android si occupa di misurare, disegnare
e disporre le View e i ViewGroup
Layout
Copyright© 2013 Paolo Montalto http://www.xabaras.it
•  RelativeLayout: Layout eredita da ViewGroup
•  TextView è una View (come EditText, WebView, ListView, ScrollView…)
•  Riferimenti a risorse esterne al Layout (@string, @drawable, @dimen)
File xml
Layout e Activity
Copyright© 2013 Paolo Montalto http://www.xabaras.it
Caricamento layout nell’activity Accesso alle View
Accesso a risorse
Intent
Copyright© 2013 Paolo Montalto http://www.xabaras.it
E’ una descrizione astratta di un’operazione da eseguire.
Generalmente usato per lanciare un’Activity
Parametri principali:
•  action: l’azione che è necessario compiere, ad esempio ACTION_VIEW,
ACTION_EDIT, ACTION_MAIN, etc.
•  data: i dati sui quali effettuare l’operazione, ad esempio una persona nel
database di contatti, un url di un sito web, etc.
Esempi (action – data):
•  ACTION_VIEW - content://contacts/people/1
mostra informazioni sulla persona il cui ID è 1
•  ACTION_DIAL - content://contacts/people/1
mostra la scheramata di chiamata per la persona il cui ID è 1
1/3
Intent
Copyright© 2013 Paolo Montalto http://www.xabaras.it
2/3
Attributi secondari:
•  category: informazioni aggiuntive sull’azione da eseguire (es.
CATEGORY_LAUNCHER)
•  type: specifica il MIME type dei dati passati all’Intent
•  component: specifica esplicitamente il nome della classe da usare
•  extras: può essere usato per passare informazioni aggiuntive all’activity
lanciata
Esempi:
•  ACTION_MAIN con category CATEGORY_HOME
lancia la schermata Home
•  ACTION_GET_CONTENT con MIME type vnd.android.cursor.item/phone
Mostra una lista di numeri di telefono, consentendo all’utente di
selezionarne uno e ritornare il valore selezionato all’activity di partenza
Intent
Copyright© 2013 Paolo Montalto http://www.xabaras.it
3/3
Lanciare un’activity:
Recuperare il risultato di un’activity:
AndroidManifest.xml
Copyright© 2013 Paolo Montalto http://www.xabaras.it
Ogni applicazione android deve avere un file AndroidManifest.xml nella sua
directory principale.
Il manifest fornisce al sistema android informazioni essenziali
sull’applicazione.
•  Principali caratteristiche di AndroidManifest.xml
•  definisce il package name dell’applicazione
•  descrive i componenti dell’applicazione (activity, servizi, provider di
contenuti)
•  definisce quali permessi l’applicazione avrà per l’accesso a specifiche
funzionalità / caratteristiche hardware
•  dichiara il livello minimo di API supportato
•  dichiara eventuali librerie utlizzate esterne all’applicazione (presenti in un
package differente)
1/2
AndroidManifest.xml
Copyright© 2013 Paolo Montalto http://www.xabaras.it
Package name
Icona
applicazione
Nome visualizzato
Permessi
Versione App
Versione Android SDK
Intent
Activity
principale
2/2
Fragment (cenni)
Copyright© 2013 Paolo Montalto http://www.xabaras.it
•  Introdotti in android 3.0 Honeycomb
•  Fondamentali per il supporto alle applicazioni
Tablet
•  Porzioni indipendenti dell’interfaccia utente
•  Hanno un loro ciclo di vita (legato a quello
dell’activity)
•  Possono essere combinati in layout muti-pane
•  Possono essere riutilizzati
1/3
Fragment (cenni)
Copyright© 2013 Paolo Montalto http://www.xabaras.it
Tipico utilizzo dei Fragment
2/3
Fragment (cenni)
Copyright© 2013 Paolo Montalto http://www.xabaras.it
3/3
•  Possono essere
inseriti nella
definizione xml del
layout
•  Possono essere
dichiarati via codice
Altri componenti del framework
Copyright© 2013 Paolo Montalto http://www.xabaras.it
•  Dialog
visualizzano finestre di dialogo (es: i classici alert)
•  Service
eseguono codice in background, possono essere in esecuzione anche quando
l’app non lo è
•  Broadcast Receiver
ricevono e gestiscono eventi in modo asincrono
•  Content Provider
consentono di accedere ai dati attraverso un’interfaccia standard (possibile
definire custom)
•  Notification
mostrano informazioni nella barra delle notifiche
Frammentazione
Copyright© 2013 Paolo Montalto http://www.xabaras.it
•  Ecosistema frammentato
•  Frammentazione delle versioni di
android
•  Frammentazione delle dimensioni
di schermo
•  Frammentazione delle densità di
schermo
•  Personalizzazioni dei produttori
Support Library
Copyright© 2013 Paolo Montalto http://www.xabaras.it
•  Introdotta per porre un rimedio alla frammentazione relativa
a differenti versioni del sistema operativo
•  Consente l’accesso a tutta una serie di funzionalità
introdotte da android HoneyComb(android 3.0 api v11) in
poi su dispositivi con api precedente
•  Supporta dispositivi android da api v4 in poi
•  E’ anche detta support-v4
•  E’ distribuita sotto forma di .jar da includere nel progetto
	
  
Grazie per l’attenzione!

Weitere ähnliche Inhalte

Andere mochten auch

AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013
AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013
AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013Carlo Bonamico
 
Playing with parse.com
Playing with parse.comPlaying with parse.com
Playing with parse.comJUG Genova
 
Java 9 by Alessio Stalla
Java 9 by Alessio StallaJava 9 by Alessio Stalla
Java 9 by Alessio StallaJUG Genova
 

Andere mochten auch (6)

AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013
AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013
AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013
 
JMeter
JMeterJMeter
JMeter
 
Playing with parse.com
Playing with parse.comPlaying with parse.com
Playing with parse.com
 
Java 9 by Alessio Stalla
Java 9 by Alessio StallaJava 9 by Alessio Stalla
Java 9 by Alessio Stalla
 
EIP with Apache Camel
EIP with Apache CamelEIP with Apache Camel
EIP with Apache Camel
 
Java 8
Java 8Java 8
Java 8
 

Ähnlich wie Sviluppare applicazioni android

Writing apps for android with .net
Writing apps for android with .net Writing apps for android with .net
Writing apps for android with .net Leonardo Alario
 
Silverlight in Action
Silverlight in ActionSilverlight in Action
Silverlight in ActionDotNetMarche
 
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezzaAndroid: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezzajekil
 
Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioAntonio Musarra
 
Soluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftSoluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftMassimo Bonanni
 
Soluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftSoluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftMassimo Bonanni
 
Programmazione mobile: ANDROID
Programmazione mobile: ANDROIDProgrammazione mobile: ANDROID
Programmazione mobile: ANDROIDPaolo Tosato
 
Google Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobiliGoogle Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobiliGoWireless
 
Non solo cartoon: l’animazione nei new media, videogames, apps
Non solo cartoon: l’animazione nei new media, videogames, appsNon solo cartoon: l’animazione nei new media, videogames, apps
Non solo cartoon: l’animazione nei new media, videogames, appsGoran Djukic
 
How I did it (in .NET): idiomatic Domain Driven Design
How I did it (in .NET): idiomatic Domain Driven DesignHow I did it (in .NET): idiomatic Domain Driven Design
How I did it (in .NET): idiomatic Domain Driven DesignAndrea Saltarello
 
Androidsdk appinventor
Androidsdk appinventorAndroidsdk appinventor
Androidsdk appinventorfdizazzo
 
Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Marco Loregian
 
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Mattia De Bernardi
 
Visual Studio Performance Tools
Visual Studio Performance ToolsVisual Studio Performance Tools
Visual Studio Performance ToolsAndrea Tosato
 
Android & Bluetooth: hacking e applicazioni
Android & Bluetooth: hacking e applicazioniAndroid & Bluetooth: hacking e applicazioni
Android & Bluetooth: hacking e applicazioniStefano Sanna
 
ios 8 - parte 1 - intro - ita
ios 8 - parte 1 - intro - itaios 8 - parte 1 - intro - ita
ios 8 - parte 1 - intro - itaDario Rusignuolo
 

Ähnlich wie Sviluppare applicazioni android (20)

Writing apps for android with .net
Writing apps for android with .net Writing apps for android with .net
Writing apps for android with .net
 
Grasso Frameworks Ajax
Grasso Frameworks AjaxGrasso Frameworks Ajax
Grasso Frameworks Ajax
 
Introduzione ad Android
Introduzione ad AndroidIntroduzione ad Android
Introduzione ad Android
 
Silverlight in Action
Silverlight in ActionSilverlight in Action
Silverlight in Action
 
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezzaAndroid: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
 
Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° Episodio
 
Soluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftSoluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie Microsoft
 
Soluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie MicrosoftSoluzioni IoT con le tecnologie Microsoft
Soluzioni IoT con le tecnologie Microsoft
 
Programmazione mobile: ANDROID
Programmazione mobile: ANDROIDProgrammazione mobile: ANDROID
Programmazione mobile: ANDROID
 
Google Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobiliGoogle Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobili
 
Non solo cartoon: l’animazione nei new media, videogames, apps
Non solo cartoon: l’animazione nei new media, videogames, appsNon solo cartoon: l’animazione nei new media, videogames, apps
Non solo cartoon: l’animazione nei new media, videogames, apps
 
How I did it (in .NET): idiomatic Domain Driven Design
How I did it (in .NET): idiomatic Domain Driven DesignHow I did it (in .NET): idiomatic Domain Driven Design
How I did it (in .NET): idiomatic Domain Driven Design
 
Androidsdk appinventor
Androidsdk appinventorAndroidsdk appinventor
Androidsdk appinventor
 
Whymca Dive into Android [ITA]
Whymca Dive into Android [ITA]Whymca Dive into Android [ITA]
Whymca Dive into Android [ITA]
 
Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3
 
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
 
Visual Studio Performance Tools
Visual Studio Performance ToolsVisual Studio Performance Tools
Visual Studio Performance Tools
 
Android & Bluetooth: hacking e applicazioni
Android & Bluetooth: hacking e applicazioniAndroid & Bluetooth: hacking e applicazioni
Android & Bluetooth: hacking e applicazioni
 
ios 8 - parte 1 - intro - ita
ios 8 - parte 1 - intro - itaios 8 - parte 1 - intro - ita
ios 8 - parte 1 - intro - ita
 
Introduzione a .Net Core
Introduzione a .Net CoreIntroduzione a .Net Core
Introduzione a .Net Core
 

Sviluppare applicazioni android

  • 1. Sviluppare applicazioni Android Copyright© 2013 Paolo Montalto http://www.xabaras.it
  • 2. Argomenti trattati •  Cos’è Android •  SDK (eclipse + tools) •  Struttura di un progetto android •  Componenti base (Activity, View, Intent …) •  Fragment (cenni) •  Frammentazione e Support library (cenni) Copyright© 2013 Paolo Montalto http://www.xabaras.it
  • 3. Che cos’è android? Copyright© 2013 Paolo Montalto http://www.xabaras.it •  Sistema operativo per dispositivi mobili •  Sviluppato dalla Open Handset Alliance (84 aziende tra cui Google, Samsung, LG, Nvidia…) •  Open Source e gratuito •  Basato su Kernel Linux •  Linguaggio di programmazione Java
  • 4. Android != Linux Copyright© 2013 Paolo Montalto http://www.xabaras.it •  Basato inizialmente su Kernel 2.6 •  Supporto ARM (e successivamente x86) •  Sviluppato separatamente •  Aggiunte patch non presenti in main branch linux (ashmem, alarms, power management, low memory kliller, logger…) •  Parziale integrazione in versione 3.3 La  release  3.3  del  kernel  vi  perme1erà  di  avviare  un  userspace  Android  senza   alcuna  modifica,  sebbene  la  ges<one  dell’alimentazione  non  sia  molto  buona.   Nella  versione  3.4  del  kernel  si  spera  di  poter  correggere  questo  problema  e   arrivare  ad  una  piena  integrazione  con  Android.     Greg  Kroah-­‐Hartman  (Linux  kernel  –stable  branch  maintainer)  
  • 5. Java ma non JVM Copyright© 2013 Paolo Montalto http://www.xabaras.it •  Dalvik Virtual Machine •  No Java SE v Java ME •  Subset Apache Harmony •  No executable jars: apk .java   .class   .dex  
  • 6. Architettura Copyright© 2013 Paolo Montalto http://www.xabaras.it Dalvik Virtual Machine E’ qui che agiamo!
  • 7. SDK Copyright© 2013 Paolo Montalto http://www.xabaras.it •  Android developer tools •  tools a linea di comando (adb, zipalign) •  SDK Manager •  AVD Manager (android virtual device manager) •  Emulatore •  Eclipse ADT plugin L’android SDK è costituito da:  
  • 8. Android SDK Manager Copyright© 2013 Paolo Montalto http://www.xabaras.it
  • 9. AVD Manager Copyright© 2013 Paolo Montalto http://www.xabaras.it
  • 10. Emulatore Copyright© 2013 Paolo Montalto http://www.xabaras.it •  Rom nativa android •  Google API •  Mock Locations •  Simulazione Rete GSM •  Pulsanti hardware •  Hardware keyboard •  D-Pad •  Pulsanti volume •  Pulsante “Power”
  • 11. Graphical layout editor Copyright© 2013 Paolo Montalto http://www.xabaras.it
  • 12. Dalvik Debug Monitor Server Copyright© 2013 Paolo Montalto http://www.xabaras.it •  system information •  screen capture •  thread/heap info •  logcat •  processi •  controllo emulatore •  traffico di rete •  stato della rete •  posizioni GPS (mock)
  • 13. Struttura di un Progetto Copyright© 2013 Paolo Montalto http://www.xabaras.it Codice Java Codice generato dal compilatore Librerie e dipendenze di sistema Definizione dell’applicazione Risorse: •  layout (xml) •  Immagini •  Stili •  File lingua Librerie .jar, .so Altri file dell’applicaizone (es. .pdf, .html, .db …)
  • 14. La directory “res” Copyright© 2013 Paolo Montalto http://www.xabaras.it Risorse grafiche Risorse che rappresentano valori (colori, dimensioni, stringhe di testo, stili della GUI) I valori dopo il “-” nei nomi delle directory sono i selettori delle risorse, servono ad identificare l’utilizzo che l’applicazione farà di quelle risorse: •  hdpi: dispositivi con densità di schermo alta •  sw600dp: device la cui risoluzione orizzontale sia almeno di 600dp •  v11: utilizzare solo se la versione di android sul dispositivo è 11 •  it: se la lingua del device è Italiano
  • 15. Activity Copyright© 2013 Paolo Montalto http://www.xabaras.it Activity è il “contesto” base di esecuzione in un’applicazione android. •  Entry point dell’applicazione android •  Solo una in foreground •  Solo una attiva •  Stack: nuove activity sempre on top
  • 16. Activity: ciclo di vita Copyright© 2013 Paolo Montalto http://www.xabaras.it
  • 17. View Copyright© 2013 Paolo Montalto http://www.xabaras.it •  Componenti base della UI di android •  Definite e utilizzate nei file xml di Layout •  Una view sa come disegnare se stessa •  Risponde agli eventi (es: onClick, onLongClick) •  Organizzate in gerarchie (ViewGroup) Il framework android si occupa di misurare, disegnare e disporre le View e i ViewGroup
  • 18. Layout Copyright© 2013 Paolo Montalto http://www.xabaras.it •  RelativeLayout: Layout eredita da ViewGroup •  TextView è una View (come EditText, WebView, ListView, ScrollView…) •  Riferimenti a risorse esterne al Layout (@string, @drawable, @dimen) File xml
  • 19. Layout e Activity Copyright© 2013 Paolo Montalto http://www.xabaras.it Caricamento layout nell’activity Accesso alle View Accesso a risorse
  • 20. Intent Copyright© 2013 Paolo Montalto http://www.xabaras.it E’ una descrizione astratta di un’operazione da eseguire. Generalmente usato per lanciare un’Activity Parametri principali: •  action: l’azione che è necessario compiere, ad esempio ACTION_VIEW, ACTION_EDIT, ACTION_MAIN, etc. •  data: i dati sui quali effettuare l’operazione, ad esempio una persona nel database di contatti, un url di un sito web, etc. Esempi (action – data): •  ACTION_VIEW - content://contacts/people/1 mostra informazioni sulla persona il cui ID è 1 •  ACTION_DIAL - content://contacts/people/1 mostra la scheramata di chiamata per la persona il cui ID è 1 1/3
  • 21. Intent Copyright© 2013 Paolo Montalto http://www.xabaras.it 2/3 Attributi secondari: •  category: informazioni aggiuntive sull’azione da eseguire (es. CATEGORY_LAUNCHER) •  type: specifica il MIME type dei dati passati all’Intent •  component: specifica esplicitamente il nome della classe da usare •  extras: può essere usato per passare informazioni aggiuntive all’activity lanciata Esempi: •  ACTION_MAIN con category CATEGORY_HOME lancia la schermata Home •  ACTION_GET_CONTENT con MIME type vnd.android.cursor.item/phone Mostra una lista di numeri di telefono, consentendo all’utente di selezionarne uno e ritornare il valore selezionato all’activity di partenza
  • 22. Intent Copyright© 2013 Paolo Montalto http://www.xabaras.it 3/3 Lanciare un’activity: Recuperare il risultato di un’activity:
  • 23. AndroidManifest.xml Copyright© 2013 Paolo Montalto http://www.xabaras.it Ogni applicazione android deve avere un file AndroidManifest.xml nella sua directory principale. Il manifest fornisce al sistema android informazioni essenziali sull’applicazione. •  Principali caratteristiche di AndroidManifest.xml •  definisce il package name dell’applicazione •  descrive i componenti dell’applicazione (activity, servizi, provider di contenuti) •  definisce quali permessi l’applicazione avrà per l’accesso a specifiche funzionalità / caratteristiche hardware •  dichiara il livello minimo di API supportato •  dichiara eventuali librerie utlizzate esterne all’applicazione (presenti in un package differente) 1/2
  • 24. AndroidManifest.xml Copyright© 2013 Paolo Montalto http://www.xabaras.it Package name Icona applicazione Nome visualizzato Permessi Versione App Versione Android SDK Intent Activity principale 2/2
  • 25. Fragment (cenni) Copyright© 2013 Paolo Montalto http://www.xabaras.it •  Introdotti in android 3.0 Honeycomb •  Fondamentali per il supporto alle applicazioni Tablet •  Porzioni indipendenti dell’interfaccia utente •  Hanno un loro ciclo di vita (legato a quello dell’activity) •  Possono essere combinati in layout muti-pane •  Possono essere riutilizzati 1/3
  • 26. Fragment (cenni) Copyright© 2013 Paolo Montalto http://www.xabaras.it Tipico utilizzo dei Fragment 2/3
  • 27. Fragment (cenni) Copyright© 2013 Paolo Montalto http://www.xabaras.it 3/3 •  Possono essere inseriti nella definizione xml del layout •  Possono essere dichiarati via codice
  • 28. Altri componenti del framework Copyright© 2013 Paolo Montalto http://www.xabaras.it •  Dialog visualizzano finestre di dialogo (es: i classici alert) •  Service eseguono codice in background, possono essere in esecuzione anche quando l’app non lo è •  Broadcast Receiver ricevono e gestiscono eventi in modo asincrono •  Content Provider consentono di accedere ai dati attraverso un’interfaccia standard (possibile definire custom) •  Notification mostrano informazioni nella barra delle notifiche
  • 29. Frammentazione Copyright© 2013 Paolo Montalto http://www.xabaras.it •  Ecosistema frammentato •  Frammentazione delle versioni di android •  Frammentazione delle dimensioni di schermo •  Frammentazione delle densità di schermo •  Personalizzazioni dei produttori
  • 30. Support Library Copyright© 2013 Paolo Montalto http://www.xabaras.it •  Introdotta per porre un rimedio alla frammentazione relativa a differenti versioni del sistema operativo •  Consente l’accesso a tutta una serie di funzionalità introdotte da android HoneyComb(android 3.0 api v11) in poi su dispositivi con api precedente •  Supporta dispositivi android da api v4 in poi •  E’ anche detta support-v4 •  E’ distribuita sotto forma di .jar da includere nel progetto