




























































































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Programmazione android, sprik.IT R.P.A.
Tipologia: Appunti
1 / 104
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!





























































































Sorgenti scaricabili dal sito www.sprik.it
Tanto tempo è passato dalla prima guida, troppo. L'intento era quello di costruire una guida solida e completa nel corso del tempo, senza fretta, con la consapevolezza di dover fare qualcosa di grande per un pubblico vasto come i programmatori Android. La prima guida ha avuto un successo abnorme, fuori le aspettative iniziali, si parla di circa trentamila download. Era molto basilare e mancavano varie cose ma soprattuto gratuita! La prima guida gratuita! Per chi non mi conosce o non ha letto la guida precedente mi ripresento: mi chiamo Alberto ed attualmente sono uno sviluppatore .NET per una azienda che si occupa di pubblica amministrazione. In passato sono stato anche programmatore su sistemi POS con il buon linguaggio C, mai abbandonato e sempre in voga. Sono stato relatore a vari LinuxDay, LinuxMeeting, JavaDay a Palermo, in attesa di qualche conferenza fuori. La mia passione per Android nasce molti anni fa, quando, leggendo molti libri, mi sono chiesto se valeva la pena fare un ebook gratuito, da donare alla community. Presto fatto l'ebook è uscito fuori, Dicembre 2010, ed adesso dopo 2 anni è pronta la seconda versione, completa ed aggiornata. A metà 2012, sono stato anche docente per un corso Android all'Università di Palermo, dove non finirò mai di ringraziare Vincenzo Virgilio dell'associazione Sputnix di avermi dato fiducia ed aver partorito un corso eccezionale. Ribadisco, che non metterò mai in vendita questa guida, ma purtroppo sarà l'ultima riguardo Android. Spero in qualche casa editrice per scrivere qualcosa di più serio e più concreto. Anche questa guida si basa sulla brevità e concisione. Non ci sarà molta teoria, quella la lasciamo ai libri veri, ma solo lo stretto e necessario per capire le fondamenta della programmazione su sistemi Android. Stavolta la guida sarà pubblicata sul mio sito www.sprik.it, non per atto di egoismo, ma perchè ibasblog.it ha cessato di esistere. Non finirò mai di ringraziare i miei ex collaboratori, che hanno creduto fin dall'inizio in questo progetto, pinosiciliano e cd. Anche se le nostre strade si sono ormai separate, per motivi lavorativi, non si dimenticano certe cose: incoraggiamenti, le nostre lunghe riunioni e tutto il resto.
Introduzione di base
Quando iniziamo a realizzare un programma, sia di 10 righe sia di 100 mila righe, a primo impatto andiamo a cercare una soluzione al nostro problema, pensando principalmente a non avere troppe complicazioni man mano che si scrive il codice. Fra le considerazioni iniziali c’è sempre la famosa domanda “Che linguaggio utilizziamo?”. Quello che noi andremo a cercare è un paradigma che ci permette di risolvere il problema, nella maniera più semplice possibile. Da qui discende che un paradigma è un modello comportamentale di programmazione o, più semplicemente, uno stile di programmazione. La scelta del linguaggio di programmazione è molto importante, soprattutto se un progetto è abbastanza grande. Essa può derivare anche dal tipo di problema da risolvere: molti linguaggi dispongono di librerie, già predisposte, che semplificano alcune procedure ritenute fondamentali o soltanto per il semplice scopo di semplificare la vita del programmatore. Il modo di pensare come programmare un applicazione è fondamentale. In programmazione imperativa ci mettiamo davanti il progetto e ci chiediamo cosa fare, fissando l’attenzione sull’obiettivo da raggiungere e di come raggiungerlo. In programmazione ad oggetti, invece, dobbiamo cercare di non personalizzare l’oggetto ma continueremo a pensare l’oggetto così come è. Penseremo ad un oggetto astratto, cercando di individuare quali sono le caratteristiche dell’oggetto e le sue potenzialità. Gli elementi caratteristici sono chiamati Attributi dell’oggetto, le potenzialità sono invece chiamate Metodi. Da notare che, molti programmatori, le potenzialità dell’oggetto li chiama erroneamente funzioni: dato che possono somigliare parecchio alle funzioni utilizzate in qualunque linguaggio imperativo. Durante l’analisi del problema non importa cosa faccia il metodo, l’importante è rispecchiare le potenzialità e successivamente svilupparne il problema. Altro errore che spesso si sente è l’utilizzo di Classe e Oggetto come se fossero la stessa cosa: un Oggetto è la rappresentazione reale della problematica presa in considerazione, la Classe invece è la rappresentazione astratta dell’Oggetto. Per esempio, se consideriamo una penna, essa nella realtà rappresenta il nostro Oggetto vero e proprio, così come è fatto: sappiamo che è una penna, il colore, il tipo, ecc… La Classe che rappresenterà la penna sarà, per definizione, l’astrazione dell’Oggetto. Qui ci possiamo chiedere “E cosa cambia? Non è la stessa cosa?”, la risposta è parzialmente negativa perché, attraverso questo processo di astrazione, noi andremo a determinare anche altri dettagli supplementari dell’Oggetto: se scrive o meno, livello di inchiostro, ecc.
Quando si verifica un qualsiasi evento, il sistema lo intercetta ed invia le informazioni (tipo di evento ed oggetto origine) ad uno speciale manipolatore degli eventi. Gli eventi controllabili dal nostro sistema generalmente tre:
Gli eventi del sistema sono quei eventi generati con le iterazioni fra degli oggetti, come finestre, ed il sistema. Gli eventi del sistema si suddividono in quattro sotto-categorie:
Il principale IDE (Integrated Development Environment) per lo sviluppo su piattaforma Android è Eclipse. Esso è un ambiente di sviluppo che integra al suo interno vari strumenti per facilitare e centralizzare la costruzione di una applicazione. Molto famoso per essere cross-platform (può essere installato su Windows, Linux e Mac) e per la sua capacità di integrare vari plugin per renderlo compatibile con diversi linguaggi di programmazione. Per installarlo basta andare nella sezione download del sito : http://www.eclipse.org/downloads/ In automatico verrà riconosciuta la versione del sistema operativo e noi possiamo scegliere se scaricare la versione a 32bit o 64bit. Per comodità ho installato la versione “ Java EE Developers ” in quanto contiene tutte le librerie Java di base ed avanzati per lavorare anche con HTML/JSP/JSF, che possono rivelarsi utili per particolari scopi di sviluppo.
Dopo aver effettuato il download possiamo scompattare l'archivio in una cartella a nostra scelta ed avviare l'ambiente. Alla prima apertura, ci chiederà la cartella per il workspace , il nostro contenitore di progetti. Mettendo la spunta su “Use this as the default and do not ask again”, al successivo avvio non ci chiederà più il workspace e renderà quello scelto precedentemente il predefinito.
Successivamente dobbiamo installare il plugin di Android per Eclipse andando su Help → Install New Software e cliccando sul pulsante Add della finestra che vi viene proposta Come nuovo repository metteremo un nome a nostra scelta e come indirizzo quello specifico di google https://dl-ssl.google.com/android/eclipse Cliccando su OK ci verrà restituita la lista dei tools da poter scaricare.
Nel passo successivo ci verranno mostrati i componenti che verranno scaricati.
Il software si installa in maniera autonoma ed in poco tempo, secondo sempre la connessione disponibile, dato che deve scaricare una buona quantità dati da internet. Quanto tutto è completato passiamo alla configurazione del SDK scaricato precedentemente su Preferences → Android Da notare che, in questa ultima versione per MAC, è già presente SDK relativo alla versione 4.2 di Android. Lo stesso si può notare dall' Android SDK Manager , che si trova sotto il menu Window, dove sarà possibile scaricare altre versioni del SDK, varie librerie ed aggiornare le presenti.
Scorrendo la lista, troviamo negli extra la Android Support Library , che ci servirà per gestire le vecchie versioni di Android in modalità compatibile. Se non la selezioniamo ci verrà richiesta alla configurazione del primo progetto. Per creare una nuova AVD (Android Virtual Device), partiamo dal Android Virtual Device Manager , presente sempre sotto il menu Window, dove ci verrà presentata una lista delle AVD create. Clicchiamo sul tasto New per crearne una nuova.
Per aprire un nuovo progetto andiamo su File → New e dalla lista che compare selezioniamo Android Application Project. Come primo passo dobbiamo indicare il nome dell'applicazione, del progetto e del pacchetto. Quest'ultimo solitamente è composto dal nome del sito seguito dal nome del progetto. In questa prima parte, sarà possibile selezionare la versione di android su cui è destinata l'applicazione e il tema principale.
Il passo successivo prevede impostazioni di base, come la directory del progetto e la possibilità di pre-creare o meno activity (i vecchi form, detto in maniera basilare). Poi si provvede alla configurazione dell'icona dell'applicazione.