In questa pagina vengono descritte le impostazioni dell'app utili nella sezione build.gradle.kts
a livello di modulo
. Oltre a fornire una panoramica delle proprietà importanti impostate nel
build.gradle.kts
, scopri come:
- Modificare l'ID applicazione per le diverse configurazioni della build.
- Regola in modo sicuro lo spazio dei nomi indipendentemente dall'ID applicazione.
Imposta l'ID applicazione
Ogni app per Android ha un ID applicazione univoco che sembra un codice Java o pacchetto Kotlin ad esempio com.example.myapp. Questo ID identifica in modo univoco la tua app nella dispositivo e nel Google Play Store.
L'ID applicazione è definito dalla proprietà applicationId
nell'elenco
build.gradle.kts
, come mostrato qui. Aggiorna il valore dell'attributo applicationId
sostituendo com.example.myapp
con
ID dell'app:
Kotlin
android { defaultConfig { applicationId = "com.example.myapp" minSdk = 15 targetSdk = 24 versionCode = 1 versionName = "1.0" } ... }
Alla moda
android { defaultConfig { applicationId "com.example.myapp" minSdkVersion 15 targetSdkVersion 24 versionCode 1 versionName "1.0" } ... }
Sebbene l'ID applicazione sembri un pacchetto Kotlin o Java tradizionale le regole di denominazione per l'ID applicazione sono un po' più restrittive:
- Deve avere almeno due segmenti (uno o più punti).
- Ogni segmento deve iniziare con una lettera.
- Tutti i caratteri devono essere alfanumerici o un trattino basso [a-zA-Z0-9_].
Quando crei un nuovo progetto in Android
Studio, applicationId
è
assegnato automaticamente il nome del pacchetto scelto durante la configurazione. Tu
tecnicamente può attivare/disattivare le due proprietà in modo indipendente, ma
non è consigliato.
Quando imposti l'ID applicazione, ti consigliamo di procedere come segue:
- Mantieni l'ID applicazione uguale allo spazio dei nomi. La distinzione tra due proprietà possono creare confusione, ma se le mantieni invariate, niente di cui preoccuparsi.
- Non modificare l'ID applicazione dopo aver pubblicato l'app. Se lo modifichi, Il Google Play Store considera il caricamento successivo come una nuova app.
- Definisci in modo esplicito l'ID applicazione. Se l'ID applicazione non è esplicitamente
definiti utilizzando la proprietà
applicationId
, assume automaticamente lo stesso come spazio dei nomi. Ciò significa che la modifica dello spazio dei nomi , che in genere non è quello desiderato.
Cambia l'ID applicazione per i test
Per impostazione predefinita, gli strumenti di creazione applicano un ID applicazione
test di strumentazione
APK che utilizza l'ID applicazione per la variante di build specificata e si aggiunge
.test
. Ad esempio, un APK di test per
com.example.myapp.free
variante build
ha l'ID applicazione
com.example.myapp.free.test
.
Sebbene non sia necessario, puoi modificare l'ID applicazione
definire la proprietà testApplicationId
in defaultConfig
Blocco productFlavor
.
Imposta lo spazio dei nomi
Ogni modulo Android ha uno spazio dei nomi, utilizzato come file Kotlin o Java
nome pacchetto per
per i suoi corsi R
e BuildConfig
generati.
Lo spazio dei nomi è definito dalla proprietà namespace
nel
build.gradle.kts
, come mostrato nel seguente snippet di codice. namespace
sia inizialmente impostato sul nome del pacchetto che scegli quando
creare il tuo progetto.
Kotlin
android { namespace = "com.example.myapp" ... }
Alla moda
android { namespace "com.example.myapp" ... }
Durante la creazione dell'app nel pacchetto dell'applicazione finale (APK), la versione
gli strumenti di creazione utilizzano lo spazio dei nomi come spazio dei nomi per i valori R
generati dall'app
che viene utilizzato per accedere ai tuoi
risorse per l'app.
Ad esempio, nel file di build precedente, la classe R
viene creata in
com.example.myapp.R
.
Il nome impostato per la proprietà namespace
del file build.gradle.kts
dovrebbe sempre corrispondere al nome del pacchetto di base del progetto, dove mantieni
attività e altro codice dell'app. Puoi avere altri sottopacchetti
il tuo progetto, ma questi file devono importare la classe R
utilizzando
della proprietà namespace
.
Per un flusso di lavoro più semplice, mantieni lo stesso spazio dei nomi ID applicazione, che sono per impostazione predefinita.
Modifica lo spazio dei nomi
Nella maggior parte dei casi, devi mantenere lo spazio dei nomi e l'ID applicazione sono gli stessi, che sono predefiniti. Tuttavia, potresti dover modificare lo spazio dei nomi all'indirizzo se stai riorganizzando il codice o per evitare collisioni degli spazi dei nomi.
In questi casi, modifica lo spazio dei nomi aggiornando il campo
proprietà namespace
nel file build.gradle.kts
del modulo indipendente da
l'ID applicazione. Prima di farlo, assicurati che l'ID applicazione sia
esplicitamente definito, in modo che la modifica dello spazio dei nomi non cambi allo stesso modo
l'ID applicazione. Per ulteriori informazioni su come lo spazio dei nomi può influire
ID applicazione, consulta la sezione Impostare l'ID applicazione.
Se hai nomi diversi per namespace
e Gradle applicationId
, il testo degli strumenti di creazione
l'ID applicazione nel file manifest finale dell'app al termine della build.
Pertanto, se ispezioni il file AndroidManifest.xml
dopo una build,
l'attributo package
è impostato sul
l'ID applicazione. L'attributo package
del file manifest unito è il punto in cui
Google Play Store e la piattaforma Android cercano effettivamente di identificare la tua app.
Modifica lo spazio dei nomi per i test
Lo spazio dei nomi predefinito per i set di origini androidTest
e test
è lo spazio dei nomi principale
dello spazio dei nomi, con l'aggiunta di .test
alla fine. Ad esempio, se
La proprietà namespace
nel file build.gradle
è
com.example.myapp
,
lo spazio dei nomi di test è impostato per impostazione predefinita
com.example.myapp.test
.
Per modificare lo spazio dei nomi per i test, utilizza
testNamespace
come mostrato nello snippet di codice riportato di seguito:
Kotlin
android { namespace = "com.example.myapp" testNamespace = "com.example.mytestapp" ... }
Alla moda
android { namespace "com.example.myapp" testNamespace "com.example.mytestapp" ... }
Attenzione: non impostare testNamespace
e
namespace
sullo stesso valore, altrimenti spazio dei nomi
in cui possono insorgere delle collisioni.
Per scoprire di più sui test, vedi Testare le app su Android.