Dopo aver creato la nostra prima applicazione Android รจ il momento di analizzare i vari componenti di un progetto Android. Osservando la finestra Package Explorer possiamo notare la presenza di numerosi file e cartelle per il nostro progetto MyHelloWorld
La struttura di un semplice progetto
Andiamo brevemente ad illustrare il contenuto di alcune importanti cartelle e la funzione di alcuni file:
src
Contiene i file con estensione .java che caratterizzano la nostra applicazione. Nel nostro esempio รจ presente un solo file denominato MainActivity.java
Si tratta del file sorgente che permette di gestire lโactivity che abbiamo creato nella lezione precedente e allโinterno del quale possiamo scrivere il codice della nostra applicazione.
gen
Contiene il file R.java, un file generato dal compilatore che referenzia tutte le risorse del progetto. Normalmente tale file non dovrebbe essere modificato manualmente perchรฉ tutte le risorse del progetto vengono automaticamente compilate in questa classe in modo che sia possibile gestire queste risorse tramite la classe stessa.
Android 4.0
In questa cartella รจ presente un file denominato android.jar che contiene tutte le librerie necessarie al funzionamento dellโapplicazione.
assets
Contiene elementi utilizzati dallโapplicazione come file di testo, database, file HTML, ecc.
bin
Questa cartella contiene tutti i file generati dallโambiente di sviluppo durante il processo di compilazione
Molto importante รจ il file con estensione .apk (Android Package), un file binario che contiene tutto il necessario per lโesecuzione di unโapplicazione Android.
res
Contiene tutte le risorse utilizzate dallโapplicazione. Inoltre in essa sono presenti altre sottocartelle importanti, come layout e values, che analizzeremo prossimamente.
AndroidManifest.xml
Si tratta del file manifest dellโapplicazione. In esso รจ possibile specificare i permessi relativi alla stessa e altri importanti aspetti che vedremo prossimamente.
Lโinterfaccia utente
Torniamo ora alla cartella res e apriamo la sottocartella layout. In essa, come abbiamo visto in precedenza, รจ presente il file activity_main.xml che definisce lโinterfaccia utente della nostra activity. Allโinterno di tale file รจ presente il seguente codice
Nelle prime due linee viene impostata la larghezza e lโaltezza dellโinterfaccia utente specificando che dovrร occupare tutto lo spazio disponibile. La terza riga, invece, definisce un testo: il codice @string si riferisce al file strings.xml posizionato nella cartella res/values, mentre il codice @strings/hello_world si riferisce al valore della stringa "hello_world" definita nel file strings.xml
Se per il file strings.xml clicchiamo in basso sul tab "Resources" avemo accesso ad unโinterfaccia semplificata attraverso cui รจ possibile inserire o modificare le stringhe contenute in esso.
Eโ consigliabile memorizzare tutte le costanti di tipo stringa nel file strings.xml e referenziare tali valori tramite lโidentificatore @string. In questo modo se, ad esempio, si presentasse la necessitร di tradurre unโapplicazione in unโaltra lingua basterebbe solo fare una copia della cartella value e modificare le stringhe contenute nel file strings.xml di questa nuova cartella.
Il file AndroidManifest.xml
Andiamo adesso ad analizzare il contenuto del file AndroidManifest.xml
Anche in questo caso nella parte inferiore dellโeditor sono presenti alcuni tab che permettono di accedere e gestire in maniera piรน semplice i vari elementi del file ma noi adesso analizzeremo in dettaglio il codice xml relativo a tali elementi.
Come appare evidente, il file manifest contiene informazioni dettagliate riguardo allโapplicazione: definisce il nome del package, il codice della versione, il nome della versione, la versione del SDK minima per lโutilizzo dellโapplicazione (minSdkVersion), lโimmagine che rappresenta lโapplicazione sul dispositivo (icon), il nome dellโapplicazione (label), il nome delle activity presenti nellโapplicazione (nel nostro caso solo una). Allโinterno della definizione dellโactivity MainActivity possiamo vedere un elemento denominato intent-filter che serve ad impostare questa activity come il punto di partenza dellโapplicazione (action) specificando che essa puรฒ essere avviata attraverso il launcher del dispositivo su cui รจ in uso (category).
Il file R.java
Come abbiamo detto prima, Eclipse genera automaticamente il contenuto del file R.java e nel nostro caso questo file contiene il seguente codice
Come possiamo vedere, sono presenti i riferimenti ai vari elementi del progetto, compresa la stringa hello_world che abbiamo citato in precedenza. Ricordiamoci di non modificare manualmente il contenuto di questo file perchรฉ Eclipse rigenera tutto ogni volta che modifichiamo il nostro progetto.
Il file MainActivity.java
Infine osserviamo il codice che connette la nostra activity allโinterfaccia utente. Questo avviene tramite il metodo setContentView del file MainActivity.java
In esso lโistruzione R.layout.activity_main si riferisce al file activity_main posizionato nella cartella res/layout. Il metodo onCreate รจ uno dei metodi che vengono chiamati quando viene avviata unโactivity (come vedremo nella lezione successiva).