• Save
Sviluppare applicazioni android
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Sviluppare applicazioni android

  • 631 views
Uploaded on

Breve panoramica sullo sviluppo di applicazioni Android.

Breve panoramica sullo sviluppo di applicazioni Android.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
631
On Slideshare
349
From Embeds
282
Number of Embeds
6

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 282

http://www.xabaras.it 137
http://juggenova.wordpress.com 136
http://xabaras.it 6
http://plus.url.google.com 1
http://www.google.it 1
http://translate.googleusercontent.com 1

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. Sviluppare applicazioni AndroidCopyright© 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 != 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. 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. ArchitetturaCopyright© 2013 Paolo Montalto http://www.xabaras.itDalvik Virtual MachineE’ qui che agiamo!
  • 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. Android SDK ManagerCopyright© 2013 Paolo Montalto http://www.xabaras.it
  • 9. AVD ManagerCopyright© 2013 Paolo Montalto http://www.xabaras.it
  • 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. Graphical layout editorCopyright© 2013 Paolo Montalto http://www.xabaras.it
  • 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. 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. 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. 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. Activity: ciclo di vitaCopyright© 2013 Paolo Montalto http://www.xabaras.it
  • 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. 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. Layout e ActivityCopyright© 2013 Paolo Montalto http://www.xabaras.itCaricamento layout nell’activity Accesso alle ViewAccesso a risorse
  • 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. 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. IntentCopyright© 2013 Paolo Montalto http://www.xabaras.it3/3Lanciare un’activity:Recuperare il risultato di un’activity:
  • 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. AndroidManifest.xmlCopyright© 2013 Paolo Montalto http://www.xabaras.itPackage nameIconaapplicazioneNome visualizzatoPermessiVersione AppVersione Android SDKIntentActivityprincipale2/2
  • 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. Fragment (cenni)Copyright© 2013 Paolo Montalto http://www.xabaras.itTipico utilizzo dei Fragment2/3
  • 27. Fragment (cenni)Copyright© 2013 Paolo Montalto http://www.xabaras.it3/3•  Possono essereinseriti nelladefinizione xml dellayout•  Possono esseredichiarati via codice
  • 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. 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. 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. Grazie per l’attenzione!