Configurare il modulo delle app

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.
di Gemini Advanced.

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.