45559 Letture

Creare applicazioni Android: anatomia di una app, le attività, creazione di finestre di dialogo

Nella precedente puntata abbiamo presentato tutti gli strumenti per iniziare a creare applicazioni Android ed abbiamo cominciato con l'allestire l'interfaccia della prima "app", la classica "CiaoMondo".
Questa volta analizzeremo l'anatomia delle applicazioni Android presentando anche attività, frammenti ed intents.

Creare applicazioni Android: i requisiti e la prima app

Chi si fosse perso la prima puntata può consultarla facendo riferimento all'articolo Programmare Android: creare applicazioni partendo da zero con Android SDK ed Eclipse.
Per sviluppare applicazioni Android due sono i requisiti software indispensabili:
- Il pacchetto Java Development Kit (JDK), prelevabile da questa pagina (sito web di Oracle).
- L'Android SDK, il prodotto che consente di realizzare applicazioni per il sistema operativo mobile targato Google contenente il debugger, le librerie, un emulatore, il codice d'esempio e la documentazione. Il pacchetto SDK è scaricabile gratuitamente da questa pagina.


Una volta che si sarà creata la prima applicazione Android od, almeno, il suo scheletro, seguendo le indicazioni riportate nell'articolo Programmare Android: creare applicazioni partendo da zero con Android SDK ed Eclipse, è giunto il momento di esaminarne l'anatomia.

La struttura di un'applicazione Android


Facendo riferimento alla finestra Package Explorer dell'ambiente di sviluppo Eclipse, si troveranno diversi elementi:

Ci si concentri sul nome delle varie cartelle in elenco:

- src contiene il codice sorgente (linguaggio Java) del progetto in corso di sviluppo
- gen ospita file generati dal compilatore che fanno riferimento alle varie risorse che compongono il progetto
- Android 4.2 contiene un'unica classe che include tutte le librerie necessarie per lo sviluppo dell'applicazione Android
- Android Dependencies mostra l'elenco delle dipendenze ossia dalla presenza di quali file JAR il progetto in corso di sviluppo a sua volta dipende
- assets visualizza l'elenco dei componenti che sono impiegati dall'applicazione Android (file di testo, HTML, database,...)
- bin contiene i file generati dal plugin ADT (Android Development Tools) durante il processo di creazione del file binario in formato .APK (Android Package). Il pacchetto APK contiene tutto il necessario per garantire il corretto funzionamento dell'applicazione Android.
- libs contiene le librerie utilizzate dall'applicazione
- res ospita tutte le risorse usate da parte dell'applicazione. Sono presenti anche diverse sottocartelle: drawable- (seguita dalla denominazione di varie risoluzioni), layout e - values. Utilizzando queste cartelle si potranno supportare dispositivi con diverse risoluzioni dello schermo: si vedrà più avanti come fare.

Molto importanti sono i file .xml contenuto nella cartella res\layout e strings.xml (si trova in res\values).
Il primo, come abbiamo già avuto modo di vedere nella scorsa puntata, definisce l'interfaccia utente dell'applicazione mentre il secondo, anch'esso già citato in precedenza, consente di impostare tutti i riferimenti alle strighe di caratteri richiamate dal codice.
È bene inserire tutte le stringhe utilizzate nell'applicazione all'interno del file strings.xml: le si richiamerà poi dal codice utilizzando l'identificativo @string.

Nel file strings.xml è possibile aggiungere, nel nostro caso, le seguenti due righe:

<string name="presentazione">La mia prima applicazione Android!</string>
<string name="pulsante_01">Pulsante cliccabile</string>

Nel file activity_ciao_mondo.xml si dovranno sostituire le corrispondenti stringhe di carattere con @string/presentazione e @string/pulsante_01.

Il file AndroidManifest.xml consente di specificare i permessi di cui ha bisogno l'applicazione per poter funzionare e di regolare alcune funzionalità accessorie.

Dopo aver aperto il file AndroidManifest.xml dalla finestra Package Explorer quindi cliccando sull'omonima scheda AndroidManifest.xml, si potrà esaminarne la struttura.
Accanto all'attributo package= si trova il nome assegnato all'applicazione. L'attributo android:versionCode consente di impostare il numero di versione dell'applicazione cosicché il sistema operativo possa in seguito stabilire quando è necessario applicare un aggiornamento.
L'attributo android:versionName dà modo di specificare il numero di versione che dovrà esssere visualizzato agli utenti. In questo caso, dev'essere utilizzato il formato majorversion.minorversion.subminor per definire l'aggiornamento.
Per mezzo dell'attributo android:minSdkVersion è invece possibile stabilire la versione minima del sistema operativo Android che deve essere necessariamente installata sul dispositivo per poter usare l'applicazione.
L'attributo icon consente di definire l'icona associata all'applicazione (@drawable sta a significare che l'icona è situata nella cartella drawable) mentre le varie label consentono di indicare il nome dell'applicazione recuperato, come si vede, dal file strings.xml (uso dell'identificativo @string).


Il codice che dà il via al caricamento dell'interfaccia dell'applicazione è contenuto nel file .java (cartella src). Nello specifico, si tratta del metodo setContentView:

Le attività, i frammenti e gli "intents" in Android

Si chiama attività (activities), in Android, ciascuna finestra che contiene l'interfaccia utente dell'applicazione. Ogni singola applicazione Android può avere zero attività oppure utilizzarne più di una.
A partire dalla versione 3.0 di Android, il sistema operativo di Google supporta anche l'impiego dei cosiddetti frammenti (fragments): si tratta di una sorta di "miniatura" delle attività che possono essere raggruppati per formare, a loro volta, un'attività.
Gli intents, invece, possono essere considerati come una sorta di collante che permette alle varie attività di operare in modo coordinato.


  1. Avatar
    mario44
    29/10/2014 14:09:48
    salve ma interessa modificare il percorso di installazione di un'applicazione android , o meglio i nomi delle cartelle in modo che non vengano sovrascritte , che ha fatto un ragazzo per poter utilizzare due istanze quasi contemporaneamente (in modo che androind li veda come due programmi diversi) , ma con account diversi. quale protrebbe essere il file da modificare? grazie anticipatamente
  2. Avatar
    Francys-t83
    03/10/2013 22:39:52
    Ciao volevo sapere se c'è un continuo di questo bellissimo e utilissimo tutorial..Sarei interessato a capire altre cose fondamentali al riguardo.. Grazie mille Francesco
  3. Avatar
    Jake
    09/03/2013 10:05:38
    Citazione: calcossa de + semplice, no!!! comunque grazie 1000 :D
    :lol: :lol: :lol: nic, chiunque tu sia, sei un genio! :approvato:
  4. Avatar
    nic
    09/03/2013 07:27:25
    calcossa de + semplice, no!!! comunque grazie 1000 :D
  5. Avatar
    martinhel
    14/12/2012 20:16:32
    Grandissimo. Mi sto da poco avvicinando a questo mondo e sto facendo tesoro da questi articoli. Grazie.
Creare applicazioni Android: anatomia di una app, le attività, creazione di finestre di dialogo - IlSoftware.it