Sviluppare applicazioni AndroidCopyright© 2013 Paolo Montalto http://www.xabaras.it
Argomenti trattati•  Cos’è Android•  SDK (eclipse + tools)•  Struttura di un progetto android•  Componenti base (Activity,...
Che cos’è android?Copyright© 2013 Paolo Montalto http://www.xabaras.it•  Sistema operativo per dispositivi mobili•  Svilup...
Android != LinuxCopyright© 2013 Paolo Montalto http://www.xabaras.it•  Basato inizialmente su Kernel 2.6•  Supporto ARM (e...
Java ma non JVMCopyright© 2013 Paolo Montalto http://www.xabaras.it•  Dalvik Virtual Machine•  No Java SE v Java ME•  Subs...
ArchitetturaCopyright© 2013 Paolo Montalto http://www.xabaras.itDalvik Virtual MachineE’ qui che agiamo!
SDKCopyright© 2013 Paolo Montalto http://www.xabaras.it•  Android developer tools•  tools a linea di comando (adb, zipalig...
Android SDK ManagerCopyright© 2013 Paolo Montalto http://www.xabaras.it
AVD ManagerCopyright© 2013 Paolo Montalto http://www.xabaras.it
EmulatoreCopyright© 2013 Paolo Montalto http://www.xabaras.it•  Rom nativa android•  Google API•  Mock Locations•  Simulaz...
Graphical layout editorCopyright© 2013 Paolo Montalto http://www.xabaras.it
Dalvik Debug Monitor ServerCopyright© 2013 Paolo Montalto http://www.xabaras.it•  system information•  screen capture•  th...
Struttura di un ProgettoCopyright© 2013 Paolo Montalto http://www.xabaras.itCodice JavaCodice generatodal compilatoreLibre...
La directory “res”Copyright© 2013 Paolo Montalto http://www.xabaras.itRisorse graficheRisorse che rappresentano valori (col...
ActivityCopyright© 2013 Paolo Montalto http://www.xabaras.itActivity è il “contesto” base di esecuzione inun’applicazione ...
Activity: ciclo di vitaCopyright© 2013 Paolo Montalto http://www.xabaras.it
ViewCopyright© 2013 Paolo Montalto http://www.xabaras.it•  Componenti base della UI di android•  Definite e utilizzate nei ...
LayoutCopyright© 2013 Paolo Montalto http://www.xabaras.it•  RelativeLayout: Layout eredita da ViewGroup•  TextView è una ...
Layout e ActivityCopyright© 2013 Paolo Montalto http://www.xabaras.itCaricamento layout nell’activity Accesso alle ViewAcc...
IntentCopyright© 2013 Paolo Montalto http://www.xabaras.itE’ una descrizione astratta di un’operazione da eseguire.General...
IntentCopyright© 2013 Paolo Montalto http://www.xabaras.it2/3Attributi secondari:•  category: informazioni aggiuntive sull...
IntentCopyright© 2013 Paolo Montalto http://www.xabaras.it3/3Lanciare un’activity:Recuperare il risultato di un’activity:
AndroidManifest.xmlCopyright© 2013 Paolo Montalto http://www.xabaras.itOgni applicazione android deve avere un file Android...
AndroidManifest.xmlCopyright© 2013 Paolo Montalto http://www.xabaras.itPackage nameIconaapplicazioneNome visualizzatoPerme...
Fragment (cenni)Copyright© 2013 Paolo Montalto http://www.xabaras.it•  Introdotti in android 3.0 Honeycomb•  Fondamentali ...
Fragment (cenni)Copyright© 2013 Paolo Montalto http://www.xabaras.itTipico utilizzo dei Fragment2/3
Fragment (cenni)Copyright© 2013 Paolo Montalto http://www.xabaras.it3/3•  Possono essereinseriti nelladefinizione xml della...
Altri componenti del frameworkCopyright© 2013 Paolo Montalto http://www.xabaras.it•  Dialogvisualizzano finestre di dialogo...
FrammentazioneCopyright© 2013 Paolo Montalto http://www.xabaras.it•  Ecosistema frammentato•  Frammentazione delle version...
Support LibraryCopyright© 2013 Paolo Montalto http://www.xabaras.it•  Introdotta per porre un rimedio alla frammentazione ...
Grazie per l’attenzione!
Upcoming SlideShare
Loading in...5
×

Sviluppare applicazioni android

684

Published on

Breve panoramica sullo sviluppo di applicazioni Android.

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

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

No notes for slide

Sviluppare applicazioni android

  1. 1. Sviluppare applicazioni AndroidCopyright© 2013 Paolo Montalto http://www.xabaras.it
  2. 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. 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. 4. Android != LinuxCopyright© 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.3La  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. 5. Java ma non JVMCopyright© 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. 6. ArchitetturaCopyright© 2013 Paolo Montalto http://www.xabaras.itDalvik Virtual MachineE’ qui che agiamo!
  7. 7. SDKCopyright© 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 pluginL’android SDK è costituito da:  
  8. 8. Android SDK ManagerCopyright© 2013 Paolo Montalto http://www.xabaras.it
  9. 9. AVD ManagerCopyright© 2013 Paolo Montalto http://www.xabaras.it
  10. 10. EmulatoreCopyright© 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. 11. Graphical layout editorCopyright© 2013 Paolo Montalto http://www.xabaras.it
  12. 12. Dalvik Debug Monitor ServerCopyright© 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. 13. Struttura di un ProgettoCopyright© 2013 Paolo Montalto http://www.xabaras.itCodice JavaCodice generatodal compilatoreLibrerie e dipendenze disistemaDefinizione dell’applicazioneRisorse:•  layout (xml)•  Immagini•  Stili•  File linguaLibrerie .jar, .soAltri file dell’applicaizone(es. .pdf, .html, .db …)
  14. 14. La directory “res”Copyright© 2013 Paolo Montalto http://www.xabaras.itRisorse graficheRisorse che rappresentano valori (colori,dimensioni, stringhe di testo, stili della GUI)I valori dopo il “-” nei nomi delle directorysono i selettori delle risorse, servono adidentificare l’utilizzo che l’applicazione faràdi quelle risorse:•  hdpi: dispositivi con densità di schermo alta•  sw600dp: device la cui risoluzione orizzontalesia almeno di 600dp•  v11: utilizzare solo se la versione di androidsul dispositivo è 11•  it: se la lingua del device è Italiano
  15. 15. ActivityCopyright© 2013 Paolo Montalto http://www.xabaras.itActivity è il “contesto” base di esecuzione inun’applicazione android.•  Entry point dell’applicazione android•  Solo una in foreground•  Solo una attiva•  Stack: nuove activity sempre on top
  16. 16. Activity: ciclo di vitaCopyright© 2013 Paolo Montalto http://www.xabaras.it
  17. 17. ViewCopyright© 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, disegnaree disporre le View e i ViewGroup
  18. 18. LayoutCopyright© 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. 19. Layout e ActivityCopyright© 2013 Paolo Montalto http://www.xabaras.itCaricamento layout nell’activity Accesso alle ViewAccesso a risorse
  20. 20. IntentCopyright© 2013 Paolo Montalto http://www.xabaras.itE’ una descrizione astratta di un’operazione da eseguire.Generalmente usato per lanciare un’ActivityParametri 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 neldatabase di contatti, un url di un sito web, etc.Esempi (action – data):•  ACTION_VIEW - content://contacts/people/1mostra informazioni sulla persona il cui ID è 1•  ACTION_DIAL - content://contacts/people/1mostra la scheramata di chiamata per la persona il cui ID è 11/3
  21. 21. IntentCopyright© 2013 Paolo Montalto http://www.xabaras.it2/3Attributi 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’activitylanciataEsempi:•  ACTION_MAIN con category CATEGORY_HOMElancia la schermata Home•  ACTION_GET_CONTENT con MIME type vnd.android.cursor.item/phoneMostra una lista di numeri di telefono, consentendo all’utente diselezionarne uno e ritornare il valore selezionato all’activity di partenza
  22. 22. IntentCopyright© 2013 Paolo Montalto http://www.xabaras.it3/3Lanciare un’activity:Recuperare il risultato di un’activity:
  23. 23. AndroidManifest.xmlCopyright© 2013 Paolo Montalto http://www.xabaras.itOgni applicazione android deve avere un file AndroidManifest.xml nella suadirectory principale.Il manifest fornisce al sistema android informazioni essenzialisull’applicazione.•  Principali caratteristiche di AndroidManifest.xml•  definisce il package name dell’applicazione•  descrive i componenti dell’applicazione (activity, servizi, provider dicontenuti)•  definisce quali permessi l’applicazione avrà per l’accesso a specifichefunzionalità / caratteristiche hardware•  dichiara il livello minimo di API supportato•  dichiara eventuali librerie utlizzate esterne all’applicazione (presenti in unpackage differente)1/2
  24. 24. AndroidManifest.xmlCopyright© 2013 Paolo Montalto http://www.xabaras.itPackage nameIconaapplicazioneNome visualizzatoPermessiVersione AppVersione Android SDKIntentActivityprincipale2/2
  25. 25. Fragment (cenni)Copyright© 2013 Paolo Montalto http://www.xabaras.it•  Introdotti in android 3.0 Honeycomb•  Fondamentali per il supporto alle applicazioniTablet•  Porzioni indipendenti dell’interfaccia utente•  Hanno un loro ciclo di vita (legato a quellodell’activity)•  Possono essere combinati in layout muti-pane•  Possono essere riutilizzati1/3
  26. 26. Fragment (cenni)Copyright© 2013 Paolo Montalto http://www.xabaras.itTipico utilizzo dei Fragment2/3
  27. 27. Fragment (cenni)Copyright© 2013 Paolo Montalto http://www.xabaras.it3/3•  Possono essereinseriti nelladefinizione xml dellayout•  Possono esseredichiarati via codice
  28. 28. Altri componenti del frameworkCopyright© 2013 Paolo Montalto http://www.xabaras.it•  Dialogvisualizzano finestre di dialogo (es: i classici alert)•  Serviceeseguono codice in background, possono essere in esecuzione anche quandol’app non lo è•  Broadcast Receiverricevono e gestiscono eventi in modo asincrono•  Content Providerconsentono di accedere ai dati attraverso un’interfaccia standard (possibiledefinire custom)•  Notificationmostrano informazioni nella barra delle notifiche
  29. 29. FrammentazioneCopyright© 2013 Paolo Montalto http://www.xabaras.it•  Ecosistema frammentato•  Frammentazione delle versioni diandroid•  Frammentazione delle dimensionidi schermo•  Frammentazione delle densità dischermo•  Personalizzazioni dei produttori
  30. 30. Support LibraryCopyright© 2013 Paolo Montalto http://www.xabaras.it•  Introdotta per porre un rimedio alla frammentazione relativaa differenti versioni del sistema operativo•  Consente l’accesso a tutta una serie di funzionalitàintrodotte da android HoneyComb(android 3.0 api v11) inpoi 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  
  31. 31. Grazie per l’attenzione!

×