Un progetto in Android Studio contiene tutto ciò che definisce il tuo spazio di lavoro per un'app, dal codice sorgente e gli asset al codice di test e alle configurazioni della build.
Quando avvii un nuovo progetto, Android Studio crea la struttura necessaria per tutti i file e li rende visibili nella finestra Project (Progetto) in Android Studio. Per aprire la finestra, seleziona View > Tool Windows > Project (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 della build che ti consente di dividere il progetto in unità di funzionalità discrete. Il 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 nella documentazione 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 wearable, ma vuoi mantenere tutti i file nell'ambito dello stesso progetto e condividere parte del codice.
Per aggiungere un nuovo modulo al progetto, fai clic su File > New > New Module (File > Nuovo > Nuovo modulo).
Android Studio offre alcuni tipi distinti di moduli:
- Modulo dell'app per Android
Fornisce un container per il codice sorgente, i file di risorse e le impostazioni a livello di app, come il file di build a livello di modulo e il file manifest di Android. Quando crei un nuovo progetto, il modulo dell'app predefinito viene chiamato "app".
Android Studio offre i seguenti tipi di moduli dell'app:
- Smartphone e tablet
- Auto e motori
- Wear OS
- Televisione
Ogni modulo fornisce file essenziali e alcuni modelli di codice che sono appropriati per il tipo di app o dispositivo corrispondente.
Per saperne di più sull'aggiunta di un modulo, leggi Aggiungere un modulo per un nuovo dispositivo.
- Modulo delle funzionalità
-
Rappresenta una funzionalità modularizzata dell'app che può sfruttare Play
Feature Delivery. Ad esempio, con i moduli delle funzionalità, puoi fornire agli utenti
determinate funzionalità dell'app on demand o come esperienze 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 saperne di più, leggi Play Feature Delivery.
- Modulo della libreria
Fornisce un container 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 Create New Module (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 a dipendenza per i moduli dell'app per Android.
- Android Native Library (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 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 della tua app per Android.
- Java or Kotlin Library (Libreria Java o Kotlin): contiene solo file di origine Kotlin o Java. Il risultato della build è un file Java Archive (JAR) che puoi aggiungere come a dipendenza per i moduli dell'app per Android o altri progetti Kotlin o Java.
- Benchmark > Microbenchmark (Benchmark > Microbenchmark): contiene i file necessari per misurare regolarmente il rendimento del codice e generare risultati di benchmarking. I moduli di microbenchmark sono particolarmente utili per misurare il rendimento di piccoli blocchi di codice utilizzati ripetutamente. Per saperne di più, vedi Informazioni su Microbenchmark.
Quando crei un modulo della libreria e vuoi aggiungerlo come dipendenza al tuo modulo dell'app per Android, devi dichiararlo nel seguente modo:
Alla moda
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 abbia come target varianti di build specifiche.
Android Studio offre i seguenti tipi di moduli di test:
- Baseline Profile Generator (Generatore di profili di baseline): i profili di baseline rendono le interazioni degli utenti, come la navigazione e lo scorrimento, più fluide alla prima esecuzione. Crea profili di baseline per i percorsi utente critici per migliorare le prestazioni dell'app e l'esperienza utente.
- Benchmark > Macrobenchmark (Benchmark > Macrobenchmark): contiene i file necessari per misurare regolarmente il rendimento del codice e generare risultati di benchmarking. I moduli di macrobenchmark sono particolarmente utili per misurare il rendimento di casi d'uso più grandi dell'app, come lo scorrimento di un elenco o altre manipolazioni dell'interfaccia utente. Per saperne di più, vedi Scrivere un macrobenchmark.
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, è organizzata per moduli e tipi di file per semplificare la navigazione tra i file di origine chiave del progetto, nascondendo determinati file o directory che non sono di uso comune.
Alcune delle differenze strutturali tra la visualizzazione Android e la struttura sul disco sono le seguenti:
- Mostra tutti i file di configurazione relativi alla build del progetto in un gruppo Gradle Script (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 product flavor e tipi di build.
- Mostra tutti i file di risorse alternative in un unico gruppo anziché in cartelle separate per qualificatore delle risorse. Ad esempio, tutte le versioni di densità dell'icona in Avvio applicazioni 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 per nomi di 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 saperne di più sui possibili tipi di risorse, vedi Panoramica delle risorse dell'app.
La visualizzazione Project (Progetto)
Per visualizzare la struttura effettiva dei file del progetto, inclusi tutti i file nascosti nella visualizzazione Android, seleziona Project (Progetto) dal menu nella parte superiore della finestra Project (Progetto).
Quando selezioni la visualizzazione Project (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 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ù, vedi Testare in Android Studio.
cpp/- Contiene codice C o C++ nativo che utilizza Java Native Interface (JNI). Per saperne di più, consulta la documentazione di Android NDK.
main/- Contiene i file del set di risorse "main": il codice e le risorse Android
condivisi da tutte le varianti di compilazione (i file per altre varianti di compilazione
si trovano in directory di pari livello, ad esempio
src/debug/per il tipo di compilazione di debug):AndroidManifest.xml- Descrive la natura dell'applicazione e di ciascuno dei suoi componenti. Per saperne di più, vedi la panoramica del manifest dell'app.
java/- Contiene le origini del codice Kotlin o Java, o entrambe, se l'app ha codice sorgente Kotlin e Java codice sorgente.
kotlin/- Contiene solo le origini del codice Kotlin.
res/- Contiene le risorse dell'applicazione, come i file drawable e i file di stringhe dell'interfaccia utente. Per saperne di più, vedi 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 texture e dati di gioco. Puoi
navigare in questa directory nello stesso modo di un file system tipico, utilizzando
gli URI e leggendo i file come flusso di byte utilizzando il
AssetManager.
test/- Contiene il codice per i test locali eseguiti sulla JVM host.
build.gradleobuild.gradle.kts(modulo)- Definisce le configurazioni della build specifiche del modulo.
build.gradleè il nome file corretto se utilizzi Groovy come linguaggio di script della build, mentrebuild.gradle.ktsse utilizzi lo script Kotlin.
build.gradleobuild.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 script della build, mentre èbuild.gradle.ktsse utilizzi lo script Kotlin. Questo file è parte integrante del progetto, quindi mantienilo nel controllo delle revisioni con 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 Project Structure (Struttura del progetto) facendo clic su File > Project Structure (File > Struttura del progetto). Include le seguenti sezioni:
- Project (Progetto): imposta la versione di Gradle e il plug-in Android per Gradle, nonché il nome della località del repository.
- SDK Location (Località SDK): imposta la località 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 della build specifiche del modulo, inclusi 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 build da utilizzare per compilare il modulo.
- Firma: specifica il certificato da utilizzare per firmare l'app.
-
Dependencies (Dipendenze): elenca le dipendenze di librerie, file e moduli per questo modulo. Puoi aggiungere, modificare ed eliminare le dipendenze da questo riquadro. Per saperne di più sulle dipendenze dei moduli, vedi Configurare le varianti di build.
-
Varianti di build: consente di configurare diversi flavor e tipi di build per il progetto.
-
Flavors: (Flavor): consente di creare più flavor di build, in cui ogni flavor specifica un insieme di impostazioni di configurazione, come la versione minima e di destinazione dell'SDK del modulo, il codice versione e il nome della versione.
Ad esempio, puoi definire un flavor con un SDK minimo di 21 e un SDK di destinazione di 29 e un altro flavor con un SDK minimo di 24 e un SDK di destinazione di 33.
- Build Types (Tipi di build): consente di creare e modificare le configurazioni della 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.
-