Un progetto in Android Studio contiene tutto ciò che definisce il tuo spazio di lavoro per un'app, dal codice sorgente e dagli asset al codice di test e alle configurazioni di build.
Quando avvii un nuovo progetto, Android Studio crea la struttura necessaria per tutti i tuoi file e li rende visibili nella finestra Progetto di Android Studio. Per aprire la finestra, seleziona Visualizza > Finestre degli strumenti > Progetto.
Questa pagina fornisce una panoramica dei componenti chiave all'interno del progetto.
Moduli
Un modulo è una raccolta di file di origine e impostazioni di build che ti consentono di dividere il progetto in unità funzionali discrete. Il tuo progetto può avere uno o più moduli e un modulo può utilizzare un altro modulo come dipendenza. Puoi creare, testare ed eseguire il debug di ogni modulo in modo indipendente. Tieni presente che nei documenti di Gradle i moduli potrebbero essere chiamati "progetti" o "sottoprogetti".
I moduli aggiuntivi sono utili quando crei librerie di codice all'interno del tuo progetto o quando vuoi creare diversi set di codice e risorse per diversi tipi di dispositivi, come smartphone e indossabili, ma vuoi mantenere tutti i file inclusi nello stesso progetto e condividere parte del codice.
Per aggiungere un nuovo modulo al tuo progetto, fai clic su File > Nuovo > Nuovo modulo.
Android Studio offre alcuni tipi distinti di moduli:
- Modulo app per Android
Fornisce un contenitore per il codice sorgente, i file di risorse e le impostazioni a livello di app, ad esempio il file di build a livello di modulo e il file manifest Android. Quando crei un nuovo progetto, il modulo dell'app predefinito viene chiamato "app".
Android Studio offre i seguenti tipi di moduli app:
- Smartphone e tablet
- Automotive
- Wear OS
- Televisione
Ogni modulo fornisce file essenziali e alcuni modelli di codice adatti al tipo di app o dispositivo corrispondente.
Per ulteriori informazioni sull'aggiunta di un modulo, leggi Aggiungere un modulo per un nuovo dispositivo.
- Modulo delle funzionalità
-
Rappresenta una funzionalità modulare della tua app che può sfruttare Play
Feature Delivery. Ad esempio, con i moduli delle funzionalità, puoi fornire agli utenti
determinate funzionalità della tua app on demand o come app istantanee tramite
Google Play Instant.
Android Studio offre i seguenti tipi di moduli delle funzionalità:
- Modulo delle funzionalità dinamiche
- Modulo della libreria delle funzionalità dinamiche istantanee
Per scoprire di più, leggi l'articolo su Play Feature Delivery.
- Modulo Raccolta
Fornisce un contenitore per il codice riutilizzabile, che puoi utilizzare come dipendenza in altri moduli dell'app o importare in altri progetti. A livello strutturale, un modulo della libreria è uguale a un modulo dell'app, ma quando viene creato, genera un file di archivio del codice anziché un APK, quindi non può essere installato su un dispositivo.
Nella finestra Crea nuovo modulo, Android Studio offre i seguenti tipi di moduli della libreria:
- Libreria Android:contiene tutti i tipi di file supportati in un progetto Android, ad eccezione del codice C++ nativo, inclusi codice sorgente Java e Kotlin, risorse e file manifest. Il risultato della build è un file Android Archive (AAR) che puoi aggiungere come dipendenza per i moduli dell'app per Android.
- Libreria nativa Android: contiene tutti i tipi di file supportati in un progetto Android, in modo simile a una libreria Android. Tuttavia, le librerie native di Android possono contenere anche codice sorgente C++ nativo. Il risultato della build è un file Android Archive (AAR) che puoi aggiungere come dipendenza per i moduli dell'app per Android.
- Libreria Java o Kotlin:contiene solo file sorgente Kotlin o Java. Il risultato della build è un file Java Archive (JAR) che puoi aggiungere come dipendenza per i moduli dell'app per Android o altri progetti Kotlin o Java.
- Benchmark > Microbenchmark: Contiene i file necessari per misurare regolarmente le prestazioni del codice e generare i risultati del benchmark. I moduli di microbenchmark sono particolarmente utili per misurare le prestazioni di piccole porzioni di codice utilizzate ripetutamente. Per ulteriori informazioni, consulta la sezione Informazioni su Microbenchmark.
Quando crei un modulo della libreria e vuoi aggiungerlo come dipendenza al modulo dell'app Android, devi dichiararlo nel seguente modo:
Groovy
dependencies { implementation project(':my-library-module') }
Kotlin
dependencies { implementation(project(":my-library-module")) }
- Modulo di test
Mantiene i test separati dal resto del codice. Puoi configurare il modulo di test in modo che venga eseguito il targeting di varianti di build specifiche.
Android Studio offre i seguenti tipi di moduli di test:
- Generatore di profili di base:i profili di base rendono le interazioni dell'utente, come la navigazione e lo scorrimento, più fluide al primo utilizzo. Crea profili di base per i percorsi utente critici per migliorare le prestazioni dell'app e l'esperienza utente.
- Benchmark > Macrobenchmark: Contiene i file necessari per misurare regolarmente le prestazioni del codice e generare i risultati del benchmarking. I moduli macrobenchmark sono particolarmente utili per misurare il rendimento dei casi d'uso più grandi della tua app, ad esempio lo scorrimento di un elenco o altre manipolazioni dell'interfaccia utente. Per saperne di più, consulta la sezione Scrivere un Macrobenchmark.
File di progetto

Per impostazione predefinita, Android Studio mostra i file di progetto nella vista Android. Questa visualizzazione non riflette la gerarchia effettiva dei file sul disco. È invece organizzato per moduli e tipi di file per semplificare la navigazione tra i file sorgente chiave del progetto, nascondendo determinati file o directory che non vengono utilizzati di frequente.
Alcune delle differenze strutturali tra la visualizzazione Android e la struttura su disco sono che la visualizzazione Android:
- Mostra tutti i file di configurazione correlati alla build del progetto in un gruppo Script Gradle di primo livello.
- Mostra tutti i file manifest per ogni modulo in un gruppo a livello di modulo quando hai file manifest diversi per diversi tipi di build e varianti di prodotto.
- Mostra tutti i file di risorse alternativi in un unico gruppo anziché in cartelle separate per qualificatore di risorse. Ad esempio, tutte le versioni della densità dell'icona dell'app di avvio sono visibili una accanto all'altra.
All'interno di ogni modulo dell'app per Android, i file vengono visualizzati nei seguenti gruppi:
- manifests
- Contiene il file
AndroidManifest.xml
. - java
- Contiene i file di codice sorgente Kotlin e Java, separati dai nomi dei pacchetti, incluso il codice di test JUnit.
- res
- Contiene tutte le risorse non di codice, come stringhe della UI e immagini bitmap, suddivise in sottodirectory corrispondenti. Per ulteriori informazioni sui possibili tipi di risorse, vedi Panoramica delle risorse dell'app.
Visualizzazione progetto

Per visualizzare la struttura effettiva dei file del progetto, inclusi tutti i file nascosti nella visualizzazione Android, seleziona Progetto dal menu nella parte superiore della finestra Progetto.
Quando selezioni la visualizzazione Progetto, puoi vedere molti più file e directory, tra cui:
module-name/
-
build/
- Contiene gli output della build.
libs/
- Contiene librerie private.
src/
- Contiene tutti i file di codice e di risorse per il modulo nelle seguenti
sottodirectory:
androidTest/
- Contiene il codice per i test di strumentazione eseguiti su un dispositivo Android. Per saperne di più, consulta Test in Android Studio.
cpp/
- Contiene codice C o C++ nativo che utilizza Java Native Interface (JNI). Per saperne di più, consulta la documentazione dell'NDK Android.
main/
- Contiene i file del set di origini "principale": il codice e le risorse Android
condivisi da tutte le varianti di build (i file per le altre varianti di build
si trovano in directory di pari livello, ad esempio
src/debug/
per il tipo di build di debug):AndroidManifest.xml
- Descrive la natura dell'applicazione e di ciascuno dei suoi componenti. Per ulteriori informazioni, consulta la panoramica del manifest dell'app.
java/
- Contiene sorgenti di codice Kotlin o Java o entrambi, se la tua app ha sorgenti di codice Kotlin e Java.
kotlin/
- Contiene solo origini di codice Kotlin.
res/
- Contiene risorse dell'applicazione, come file disegnabili e file di stringhe dell'interfaccia utente. Per ulteriori informazioni, consulta la panoramica delle risorse dell'app.
assets/
- Contiene i file da compilare in un file APK così come sono. Ad esempio,
questa è una buona posizione per le texture e i dati di gioco. Puoi
navigare in questa directory nello stesso modo di un tipico file system, utilizzando
URI e leggere i file come flusso di byte utilizzando
AssetManager
.
test/
- Contiene il codice per i test locali eseguiti sulla JVM host.
build.gradle
obuild.gradle.kts
(modulo)- Definisce le configurazioni di build specifiche del modulo.
build.gradle
è il nome file corretto se utilizzi Groovy come linguaggio dello script di build, mentre èbuild.gradle.kts
se utilizzi Kotlin Script.
build.gradle
obuild.gradle.kts
(progetto)- Definisce la configurazione di build che si applica a tutti i moduli.
build.gradle
è il nome file corretto se utilizzi Groovy come linguaggio di scripting di build, mentre èbuild.gradle.kts
se utilizzi Kotlin Script. Questo file è parte integrante del progetto, quindi mantienilo nel controllo delle revisioni insieme a tutto il resto del codice sorgente.Per informazioni su altri file di build, vedi Configurare la build.
Impostazioni della struttura del progetto
Per modificare varie impostazioni del progetto Android Studio, apri la finestra di dialogo Struttura progetto facendo clic su File > Struttura progetto. Contiene le seguenti sezioni:
- Progetto:imposta la versione di Gradle e del plug-in Android per Gradle e il nome della posizione del repository.
- SDK Location (Percorso SDK):imposta la posizione di JDK, Android SDK e Android NDK utilizzati dal progetto.
- Variabili:consente di modificare le variabili utilizzate negli script di build.
-
Moduli:consente di modificare le configurazioni di build specifiche del modulo, inclusi l'SDK di destinazione e minimo, la firma dell'app e le dipendenze delle librerie. La pagina delle impostazioni di ogni modulo è suddivisa nelle seguenti schede:
- Proprietà:specifica le versioni dell'SDK e gli strumenti di build da utilizzare per compilare il modulo.
- Firma:specifica il certificato da utilizzare per firmare l'app.
-
Dipendenze:elenca le dipendenze di librerie, file e moduli per questo modulo. Puoi aggiungere, modificare ed eliminare le dipendenze da questo riquadro. Per ulteriori informazioni sulle dipendenze dei moduli, consulta Configurare le varianti di build.
-
Varianti di build:consente di configurare diversi tipi di build e varianti per il tuo progetto.
-
Varianti:ti consente di creare più varianti di build, in cui ogni variante specifica un insieme di impostazioni di configurazione, ad esempio la versione minima e di destinazione dell'SDK del modulo e il codice versione e nome versione.
Ad esempio, potresti definire una variante con un SDK minimo di 21 e un SDK di destinazione di 29 e un'altra variante con un SDK minimo di 24 e un SDK di destinazione di 33.
- Tipi di build:consente di creare e modificare le configurazioni di build, come descritto in Configurare le varianti di build. Per impostazione predefinita, ogni modulo ha i tipi di build debug e release e puoi definirne altri in base alle esigenze.
-