Panoramica dei progetti

Un progetto in Android Studio contiene tutto ciò che definisce l'area di lavoro per un'app, dal codice sorgente e gli asset alle configurazioni di test del codice e delle build.

Quando inizi un nuovo progetto, Android Studio crea la struttura necessaria per tutti i tuoi file e li rende visibili nella finestra Progetto in Android Studio. Per aprire la finestra, seleziona Visualizza > Finestre degli strumenti > Progetto.

Questa pagina fornisce una panoramica dei componenti chiave all'interno del tuo progetto.

Moduli

Un modulo è una raccolta di file di origine e impostazioni di build che ti consentono di suddividere il tuo progetto in unità di funzionalità discrete. Il progetto può avere uno o più moduli e un modulo può utilizzarne un altro come dipendenza. Puoi creare, testare ed eseguire il debug di ogni modulo in modo indipendente.

Moduli aggiuntivi sono utili quando crei librerie di codice all'interno di un tuo progetto o quando vuoi creare set diversi di codice e risorse per diversi tipi di dispositivi, ad esempio telefoni e indossabili, ma mantieni l'ambito di tutti i file all'interno 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 diversi di moduli:

Modulo per app per Android
Fornisce un container per il codice sorgente, i file di risorse e le impostazioni a livello di app dell'app, ad esempio il file di build a livello di modulo e il file manifest Android. Quando crei un nuovo progetto, il modulo predefinito dell'app è denominato "app".

Android Studio offre i seguenti tipi di moduli dell'app:

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

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

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

Modulo funzionalità
Rappresenta una funzionalità modularizzata 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 sotto forma di esperienze istantanee tramite Google Play Instant.

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

  • Modulo delle funzionalità dinamiche
  • Modulo della libreria di funzionalità dinamiche istantanee

Per scoprire di più, consulta la sezione Play Feature Delivery.

Modulo Raccolta
Fornisce un container per il codice riutilizzabile, che puoi utilizzare come dipendenza in altri moduli dell'app o importare in altri progetti. Strutturalmente, un modulo libreria è uguale a un modulo dell'app, ma, una volta creato, crea 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, tra cui il codice sorgente, le risorse e i file manifest Java e Kotlin. Il risultato della build è un file di archivio Android (AAR) che puoi aggiungere come dipendenza per i moduli dell'app Android.
  • Android Native Library: contiene tutti i tipi di file supportati in un progetto Android, simili a quelli di una libreria Android. Tuttavia, le librerie native di Android possono contenere anche codice sorgente C++ nativo. Il risultato della build è un file di archivio Android (AAR) che puoi aggiungere come dipendenza per i moduli dell'app Android.
  • Libreria Java o Kotlin:contiene solo file sorgente Kotlin o Java. Il risultato della build è un file JAR (Java Archive) che puoi aggiungere come dipendenza per i moduli dell'app Android o altri progetti Kotlin o Java.

I moduli sono a volte denominati sottoprogetti, in quanto Gradle fa riferimento anche ai moduli come progetti.

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

trendy

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 nella visualizzazione Android. Questa visualizzazione non riflette la gerarchia effettiva dei file sul disco. Al contrario, è organizzato per moduli e tipi di file per semplificare la navigazione tra i file di origine chiave 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 le seguenti: Android:

  • Mostra tutti i file di configurazione relativi alla build del progetto in un gruppo di script Gradle di primo livello.
  • Mostra tutti i file manifest per ogni modulo in un gruppo a livello di modulo quando sono presenti file manifest diversi per versioni di prodotti e tipi di build diversi.
  • Mostra tutti i file delle risorse alternative in un singolo gruppo anziché in cartelle separate per qualificatore delle risorse. Ad esempio, tutte le versioni con densità dell'icona in Avvio applicazioni sono visibili una accanto all'altra.

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

manifest
Contiene il file AndroidManifest.xml.
java
Contiene i file di codice sorgente Kotlin e Java, separati da nomi di pacchetto, incluso il codice di test JUnit.
res
Contiene tutte le risorse non di codice, ad esempio stringhe UI e immagini bitmap, suddivise nelle sottodirectory corrispondenti. Per ulteriori informazioni sui possibili tipi di risorse, consulta la panoramica delle risorse per le 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 di Progetto.

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

module-name/
build/
Contiene output di build.
libs/
Contiene librerie private.
src/
Contiene tutti i file di codice e di risorse per il modulo nelle seguenti sottodirectory:
androidTest/
Contiene codice per i test di strumentazione eseguiti su un dispositivo Android. Per maggiori informazioni, consulta Eseguire test in Android Studio.
cpp/
Contiene codice C o C++ nativo che utilizza la Java Native Interface (JNI). Per ulteriori informazioni, consulta la documentazione di Android NDK.
main/
Contiene i file del set di origine "principale": il codice Android e le risorse condivisi da tutte le varianti di build (i file per altre varianti di build risiedono in directory di pari livello, come src/debug/ per il tipo di build di debug):
AndroidManifest.xml
Descrive la natura dell'applicazione e ciascuno dei suoi componenti. Per ulteriori informazioni, consulta la panoramica relativa al manifest dell'app.
java/
Contiene origini di codice Kotlin o Java oppure entrambe, se la tua app ha sia codice sorgente Kotlin che Java.
kotlin/
Contiene solo origini 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 esplorare questa directory come in un tipico file system, utilizzando gli URI e leggere i file come un flusso di byte utilizzando AssetManager.
test/
Contiene il codice per i test locali eseguiti sulla JVM host.
build.gradle o build.gradle.kts (modulo)
Definisce le configurazioni di build specifiche per i moduli. build.gradle è il nome file corretto se utilizzi Groovy come linguaggio di scripting di build, mentre è build.gradle.kts se utilizzi lo script Kotlin.
build.gradle o build.gradle.kts (progetto)
Definisce la configurazione di compilazione che si applica a tutti i moduli. build.gradle è il nome file corretto se utilizzi Groovy come linguaggio di scripting di build ed è build.gradle.kts se utilizzi lo script Kotlin. Questo file è parte integrante del progetto, quindi mantienilo sotto il controllo di revisione insieme a tutto il resto del codice sorgente.

Per informazioni sugli altri file di build, consulta Configurare la build.

Impostazioni della struttura del progetto

Per modificare le varie impostazioni del progetto Android Studio, apri la finestra di dialogo Struttura del progetto facendo clic su File > Struttura del progetto. La pagina contiene le seguenti sezioni:

  • Progetto: imposta la versione per Gradle e il plug-in Android Gradle e il nome della posizione del repository.
  • Posizione SDK:imposta la posizione di JDK, SDK Android e NDK Android utilizzati nel tuo progetto.
  • Variabili:consente di modificare le variabili utilizzate negli script di build.
  • Moduli: consente di modificare configurazioni di build specifiche per modulo, tra cui l'SDK di destinazione e minimo, la firma dell'app e le dipendenze della libreria. La pagina delle impostazioni di ogni modulo è suddivisa nelle seguenti schede:
    • Proprietà: specifica le versioni dell'SDK e degli strumenti di creazione da utilizzare per compilare il modulo.
    • Firma: specifica il certificato da utilizzare per firmare la tua app.
  • Dipendenze: elenca le dipendenze di libreria, file e moduli per questo modulo. Puoi aggiungere, modificare ed eliminare le dipendenze da questo riquadro. Per saperne di più sulle dipendenze dei moduli, consulta Configurare le varianti di build.

  • Crea varianti: consente di configurare versioni e tipi di build diversi per il tuo progetto.

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

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