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 inizi un nuovo progetto, Android Studio crea i necessari struttura di tutti i tuoi file e li rende visibili Finestra Progetto in 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 i contenuti dell'app codice sorgente, file di risorse e impostazioni a livello di app, come file di build a livello di modulo e file manifest Android. 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, leggi Aggiungi 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 saperne di più, consulta Play Feature Delivery.

Modulo Libreria
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:

  • Android Library: contiene tutti i tipi di file supportati in un progetto Android, ad eccezione del codice C++ nativo, tra cui il codice sorgente Java e Kotlin, risorse e 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 di Android: contiene tutti i tipi di file supportati in un progetto Android, come in una Raccolta 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 tuoi moduli dell'app per Android.
  • Java o Kotlin Library: contiene solo file sorgente 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 di progetto nel Android. Questa visualizzazione non riflette l'effettiva gerarchia dei file su 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 ciascun modulo in un gruppo a livello di modulo quando avere file manifest differenti per versioni e tipi di build del prodotto diversi.
  • Mostra tutti i file di risorse alternativi in un singolo gruppo anziché in cartelle separate per qualificatore di risorsa. Ad esempio, tutte le densità dell'icona in Avvio applicazioni sono visibili affiancate.

All'interno di ogni modulo dell'app per Android, i file vengono 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, vedi Panoramica delle risorse per app.

La vista 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, vedi 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 file manifest dell'app panoramica.
java/
Contiene sorgenti di codice Kotlin o Java oppure entrambi, se la tua app ha sia Kotlin sia Java codice sorgente.
kotlin/
Contiene solo sorgenti di codice Kotlin.
res/
Contiene risorse dell'applicazione, ad esempio file disegnabili 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 campo definisce le configurazioni di build specifiche del 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 campo definisce la configurazione della build che si applica a tutti i moduli. build.gradle è il nome file corretto se utilizzi Groovy come linguaggio di script di compilazione build.gradle.kts se utilizzi lo script Kotlin. Questo file è parte integrante del progetto, quindi mantienilo nel controllo della revisione con tutti gli altri codici sorgente.

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

Impostazioni della struttura del progetto

Per modificare le varie impostazioni del tuo progetto Android Studio, apri l'app Nella finestra di dialogo Struttura del progetto, fai clic su File > Struttura del progetto. Contiene 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 all'interno della build. script.
  • 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 compilazione: ti consente di configurare diversi tipi di build e sfumature per il tuo progetto.

    • Flavor: ti consente di creare più versioni di build, in cui ciascuna versione specifica un insieme di impostazioni di configurazione, come la versione minima e di destinazione dell'SDK del modulo, e il nome della versione più recente.

      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 include debug tipi di build release e puoi definirne altri in base alle esigenze.