ºÝºÝߣ
Submit Search
Sviluppare applicazioni android
•
2 likes
•
1,541 views
Paolo Montalto
Follow
Breve panoramica sullo sviluppo di applicazioni Android.
Read less
Read more
1 of 31
More Related Content
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  modiï¬ca,  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 •  trafï¬co 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 Deï¬nizione dell’applicazione Risorse: •  layout (xml) •  Immagini •  Stili •  File lingua Librerie .jar, .so Altri ï¬le dell’applicaizone (es. .pdf, .html, .db …)
14.
La directory “res†Copyright©
2013 Paolo Montalto http://www.xabaras.it Risorse graï¬che 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 identiï¬care 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 •  Deï¬nite e utilizzate nei ï¬le 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: speciï¬ca il MIME type dei dati passati all’Intent •  component: speciï¬ca 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 ï¬le AndroidManifest.xml nella sua directory principale. Il manifest fornisce al sistema android informazioni essenziali sull’applicazione. •  Principali caratteristiche di AndroidManifest.xml •  deï¬nisce il package name dell’applicazione •  descrive i componenti dell’applicazione (activity, servizi, provider di contenuti) •  deï¬nisce quali permessi l’applicazione avrà per l’accesso a speciï¬che 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 deï¬nizione xml del layout •  Possono essere dichiarati via codice
28.
Altri componenti del
framework Copyright© 2013 Paolo Montalto http://www.xabaras.it •  Dialog visualizzano ï¬nestre 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 deï¬nire custom) •  Notiï¬cation mostrano informazioni nella barra delle notiï¬che
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 Â
31.
Grazie per l’attenzione!