Panoramica dei progetti

Un progetto in Android Studio contiene tutto ciò che definisce lo 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 file e li rende visibili nella finestra Project (Progetto) di Android Studio. Per aprire la finestra, seleziona Visualizza > Finestre degli strumenti > Progetto.

Questa pagina fornisce una panoramica dei componenti chiave del progetto.

Moduli

Un modulo è una raccolta di file di origine e impostazioni di compilazione che consente di suddividere il progetto in unità di funzionalità distinte. Il progetto può avere uno o più moduli e un modulo può utilizzare un altro modulo come dipendenza. Puoi creare, testare e eseguire il debug di ogni modulo in modo indipendente.

I moduli aggiuntivi sono utili quando crei librerie di codice all'interno del tuo progetto o quando vuoi creare diversi insiemi di codice e risorse per diversi tipi di dispositivi, come smartphone e dispositivi indossabili, ma mantieni tutti i file nell'ambito dello stesso progetto e condividi del codice.

Per aggiungere un nuovo modulo al progetto, fai clic su File > Nuovo > Nuovo modulo.

Android Studio offre alcuni tipi distinti di moduli:

Modulo dell'app per Android
Fornisce un contenitore per il codice sorgente, i file di risorse e le impostazioni a livello di app della tua app, come il file di build a livello di modulo e il file Android Manifest. Quando crei un nuovo progetto, il modulo dell'app predefinito si chiama "app".

Android Studio offre i seguenti tipi di moduli per app:

  • Smartphone e tablet
  • Automotive
  • Wear OS
  • Televisione
  • Generatore di profili di riferimento
  • Benchmark

Ogni modulo fornisce file essenziali e alcuni modelli di codice appropriati per l'app o il tipo di dispositivo corrispondente.

Per ulteriori informazioni sull'aggiunta di un modulo, consulta Aggiungere un modulo per un nuovo dispositivo.

Modulo delle funzionalità
Rappresenta una funzionalità modularizzata della tua app che può sfruttare Play Feature Delivery. Ad esempio, con i moduli delle funzionalità puoi offrire ai tuoi utenti determinate funzionalità della tua app on demand o come esperienze istantanee tramite Google Play Instant.

Android Studio offre i seguenti tipi di moduli di funzionalità:

  • Modulo di funzionalità dinamiche
  • Modulo Libreria di funzionalità dinamiche istantanee

Per scoprire di più, consulta la pagina 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. Dal punto di vista strutturale, un modulo della libreria è uguale a un modulo dell'app, ma al momento della compilazione viene creato un file di archivio del codice anziché un APK, pertanto 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 il codice sorgente Java e Kotlin, le risorse e i file manifest. Il risultato della compilazione è un file Android Archive (AAR) che puoi aggiungere come dipendenza per i tuoi 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, anche le librerie native di Android possono contenere codice sorgente C++ nativo. Il risultato della compilazione è un file Android Archive (AAR) che puoi aggiungere come dipendenza per i moduli dell'app per Android.
  • Libreria Java o Kotlin: contiene solo file di origine Kotlin o Java. Il risultato della compilazione è un file Java Archive (JAR) che puoi aggiungere come dipendenza per i moduli dell'app per Android o altri progetti Kotlin o Java.

A volte i moduli sono indicati come sottoprogetti, perché anche Gradle si riferisce ai moduli come progetti.

Quando crei un modulo della libreria e vuoi aggiungerlo come dipendenza al modulo dell'app per Android, devi dichiararlo come segue:

Groovy

dependencies {
    implementation project(':my-library-module')
}

Kotlin

dependencies {
    implementation(project(":my-library-module"))
}

File di progetto

Per impostazione predefinita, Android Studio mostra i file del progetto nella vista Android. Questa visualizzazione non rispecchia la gerarchia effettiva dei file sul disco. È invece organizzata per moduli e tipi di file per semplificare la navigazione tra i file di origine principali del progetto, nascondendo determinati file o directory non di uso comune.

Alcune delle differenze strutturali tra la visualizzazione Android e la struttura su disco sono che la visualizzazione Android:

  • Mostra tutti i file di configurazione relativi alla compilazione del progetto in un gruppo Gradle Script di primo livello.
  • Mostra tutti i file manifest per ogni modulo in un gruppo a livello di modulo quando hai file manifest diversi per sapori e tipi di build del prodotto diversi.
  • Mostra tutti i file di risorse alternative in un unico gruppo invece che in cartelle separate per qualificatore della risorsa. Ad esempio, tutte le versioni con diversa densità dell'icona del programma di avvio sono visibili una accanto all'altra.

All'interno di ogni modulo dell'app per Android, i file sono visualizzati nei seguenti gruppi:

manifest
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 dell'interfaccia utente e immagini bitmap, suddivise in sottodirectory corrispondenti. Per ulteriori informazioni sui possibili tipi di risorse, consulta la 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 in alto nella finestra Progetto.

Quando selezioni la visualizzazione Progetto, puoi vedere molti più file e directory, tra cui:

module-name/
build/
Contiene gli output della compilazione.
libs/
Contiene librerie private.
src/
Contiene tutti i file di codice e risorse per il modulo nelle seguenti sottodirectory:
androidTest/
Contiene codice per i test di misurazione eseguiti su un dispositivo Android. Per ulteriori informazioni, consulta Eseguire test in Android Studio.
cpp/
Contiene codice C o C++ nativo che utilizza l'interfaccia nativa Java (JNI). Per ulteriori informazioni, consulta la documentazione di Android NDK.
main/
Contiene i file del set di origine "principale": il codice e le risorse Android condivisi da tutte le varianti di build (i file per altre varianti di build si trovano in directory sorelle, ad esempio src/debug/ per il tipo di build di debug):
AndroidManifest.xml
Descrivi 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 sia il codice sorgente Kotlin sia quello Java.
kotlin/
Contiene solo sorgenti di codice Kotlin.
res/
Contiene risorse dell'applicazione, come file drawable e file di stringhe dell'interfaccia utente. Per ulteriori informazioni, consulta la panoramica delle risorse per le 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 come in un normale file system, utilizzando gli URI e leggere i file come stream di byte utilizzando AssetManager.
test/
Contiene il codice per i test locali eseguiti sulla JVM host.
build.gradle o build.gradle.kts (modulo)
Questo definisce le configurazioni di build specifiche per il modulo. build.gradle è il nome del file corretto se utilizzi Groovy come linguaggio dello script di compilazione ed è build.gradle.kts se utilizzi lo script Kotlin.
build.gradle o build.gradle.kts (progetto)
Questo definisce la configurazione di compilazione che si applica a tutti i moduli. build.gradle è il nome file corretto se utilizzi Groovy come linguaggio dello script di compilazione ed è build.gradle.kts se utilizzi lo script Kotlin. Questo file è parte integrante del progetto, quindi gestiscilo nel controllo delle revisioni con tutto l'altro codice sorgente.

Per informazioni su altri file di compilazione, consulta Configurare la compilazione.

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. Include le seguenti sezioni:

  • Project: imposta la versione di Gradle e del plug-in Android per Gradle e il nome della posizione del repository.
  • Posizione SDK: imposta la posizione del JDK, dell'SDK Android e dell'NDK Android utilizzati dal progetto.
  • Variabili:consente di modificare le variabili utilizzate negli script di compilazione.
  • Moduli:ti consente di modificare le configurazioni di compilazione specifiche per i moduli, tra cui l'SDK target 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 degli strumenti di compilazione da utilizzare per compilare il modulo.
    • Firma:specifica il certificato da utilizzare per firmare la tua 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:ti consente di configurare diversi tipi di build e sfumature per il tuo progetto.

    • Flavor: consente di creare più flavor di build, dove ogni flavor specifica un insieme di impostazioni di configurazione, ad esempio la versione minima e di destinazione dell'SDK del modulo, nonché il codice e il nome della versione.

      Ad esempio, puoi definire un flavor con un SDK minimo pari a 21 e un SDK target pari a 29 e un altro con un SDK minimo pari a 24 e un SDK target pari a 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 tipi di build debug e release e puoi definirne altri in base alle esigenze.