<manifest>

syntax:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="string"
          android:sharedUserId="string"
          android:sharedUserLabel="string resource" 
          android:sharedUserMaxSdkVersion="integer"
          android:versionCode="integer"
          android:versionName="string"
          android:installLocation=["auto" | "internalOnly" | "preferExternal"] >
    ...
</manifest>
contenuti in:
nessuno
deve contenere:
<application>
possono contenere:
<attribution>
<compatible-screens>
<instrumentation>
<permission>
<permission-group>
<permission-tree>
<queries>
<supports-gl-texture>
<supports-screens>
<uses-configuration>
<uses-feature>
<uses-permission>
<uses-permission-sdk-23>
<uses-sdk>
description:
L'elemento principale del file AndroidManifest.xml. Deve contenere un elemento <application> e specificare gli attributi xmlns:android e package.
attributes:
xmlns:android
Definisce lo spazio dei nomi Android. Questo attributo è sempre impostato su "http://schemas.android.com/apk/res/android".
package
Il valore dell'attributo package nel file manifest dell'APK rappresenta l'ID applicazione univoco della tua app. È formattato come nome del pacchetto completo in stile Java per l'app per Android. Il nome può contenere lettere maiuscole o minuscole, numeri e trattini bassi ("_"). Tuttavia, le singole parti del nome del pacchetto possono iniziare solo con lettere.

Fai attenzione a non modificare il valore package, in quanto in sostanza viene creata una nuova app. Gli utenti della versione precedente della tua app non ricevono un aggiornamento e non possono trasferire i propri dati tra la versione precedente e quella nuova.

Nel sistema di build basato su Gradle, a partire da AGP 7.3, non impostare direttamente il valore package nel file manifest di origine. Per ulteriori informazioni, consulta Impostare l'ID applicazione.

android:sharedUserId

Questa costante è deprecata a partire dal livello API 29.
Gli ID utente condivisi causano un comportamento non deterministico all'interno del gestore dei pacchetti. Di conseguenza, il loro utilizzo è fortemente sconsigliato e potrebbero essere rimossi in una versione futura di Android. Utilizza invece meccanismi di comunicazione appropriati, come servizi e fornitori di contenuti, per facilitare l'interoperabilità tra i componenti condivisi. Le app esistenti non possono rimuovere questo valore, poiché la migrazione da un ID utente condiviso non è supportata. In queste app, aggiungi android:sharedUserMaxSdkVersion="32" per evitare di utilizzare l'ID utente condiviso nelle installazioni di nuovi utenti.

Il nome di un ID utente Linux condiviso con altre app. Per impostazione predefinita, Android assegna a ogni app il proprio ID utente univoco. Tuttavia, se questo attributo è impostato sullo stesso valore per due o più applicazioni, tutte condividono lo stesso ID, a condizione che i set di certificati siano identici. Le app con lo stesso ID utente possono accedere ai dati reciproci e, se vuoi, essere eseguite nello stesso processo.

android:targetSandboxVersion
La sandbox di destinazione da utilizzare per questa app. Maggiore è il numero della versione della sandbox, maggiore è il livello di sicurezza. Il valore predefinito è 1; puoi anche impostarlo su 2. Se imposti questo attributo su 2, l'app passa a un'altra sandbox SELinux.

A una sandbox di livello 2 si applicano le seguenti limitazioni:

  • Il valore predefinito di usesCleartextTraffic nella configurazione della sicurezza di rete è false.
  • La condivisione dell'UID non è consentita.

Per le app istantanee per Android che hanno come target Android 8.0 (livello API 26) o versioni successive, questo attributo è impostato su 2. Puoi impostare il livello della sandbox nella versione installata della tua app sul livello meno restrittivo 1. Tuttavia, in questo caso i dati dell'app non vengono mantenuti dall'app istantanea alla versione installata. Per fare in modo che i dati vengano mantenuti dall'app istantanea alla versione installata, devi impostare il valore della sandbox dell'app installata su 2.

Una volta installata un'app, puoi aggiornarne il valore della sandbox di destinazione solo su un valore superiore. Per eseguire il downgrade del valore della sandbox di destinazione, disinstalla l'app e sostituiscila con una versione il cui manifest contiene un valore inferiore per questo attributo.

android:sharedUserLabel

Questa costante è deprecata a partire dal livello API 29.
Gli ID utente condivisi causano un comportamento non deterministico all'interno del gestore dei pacchetti. Di conseguenza, il loro utilizzo è fortemente sconsigliato e potrebbero essere rimossi in una versione futura di Android. Utilizza invece meccanismi di comunicazione appropriati, come servizi e fornitori di contenuti, per facilitare l'interoperabilità tra i componenti condivisi. Le app esistenti non possono rimuovere questo valore, poiché la migrazione da un ID utente condiviso non è supportata.

Un'etichetta leggibile dall'utente per l'ID utente condiviso. L'etichetta è impostata come riferimento a una risorsa stringa. Non può essere una stringa non elaborata.

Questo attributo è stato introdotto nel livello 3 dell'API. È significativo solo se è impostato anche l'attributo sharedUserId.

android:sharedUserMaxSdkVersion

Gli ID utente condivisi causano un comportamento non deterministico all'interno del gestore dei pacchetti. Di conseguenza, il loro utilizzo è fortemente sconsigliato e potrebbero essere rimossi in una versione futura di Android. Utilizza invece meccanismi di comunicazione appropriati, come servizi e fornitori di contenuti, per facilitare l'interoperabilità tra i componenti condivisi.

La versione massima dell'SDK in cui il sistema utilizza ancora android:sharedUserId. Se la tua app è stata appena installata su un dispositivo con una versione dell'SDK superiore al valore specificato, si comporta come se non avessi mai definito android:sharedUserId.

Questo attributo è stato introdotto nel livello API 33. È significativo solo se è impostato anche l'attributo sharedUserId.

android:versionCode
Un numero di versione interno. Questo numero viene utilizzato solo per determinare se una versione è più recente di un'altra, con numeri più elevati che indicano le versioni più recenti. Non si tratta del numero di versione mostrato agli utenti, che viene impostato dall'attributo versionName.

Il valore è impostato come numero intero positivo maggiore di 0. Puoi definirlo come preferisci, a condizione che ogni versione successiva abbia un numero più alto. Ad esempio, può essere un numero di build oppure puoi tradurre un numero di versione in formato "x.y" in un numero intero codificando "x" e "y" separatamente nei 16 bit inferiori e superiori. In alternativa, puoi aumentare il numero di uno ogni volta che viene rilasciata una nuova versione.

android:versionName
Il numero di versione mostrato agli utenti. Questo attributo viene impostato come stringa non elaborata o come riferimento a una risorsa stringa. La stringa non ha altro scopo che essere visualizzata agli utenti. L'attributo versionCode contiene il numero di versione significativo utilizzato internamente.
android:installLocation
La posizione di installazione predefinita dell'app. Sono accettate le seguenti stringhe di parole chiave:
Valore Descrizione
"internalOnly" L'app si installa solo nella memoria interna del dispositivo. Se questo valore è impostato, l'app non viene mai installata su uno spazio di archiviazione esterno, ad esempio una scheda SD. Se lo spazio di archiviazione interno è esaurito, il sistema non installa l'app. Questo è il comportamento predefinito se non definisci android:installLocation.
"auto" L'app può essere installata su archiviazione esterna, ma per impostazione predefinita il sistema la installa nella memoria interna. Se lo spazio di archiviazione interno è esaurito, il sistema lo installa sullo spazio di archiviazione esterno. Una volta installata, l'utente può spostare l'app sull'archiviazione interna o esterna tramite le impostazioni di sistema.
"preferExternal" L'app preferisce essere installata su una memoria esterna. Non è garantito che il sistema accetti questa richiesta. L'app potrebbe essere installata nello spazio di archiviazione interno se il supporto esterno non è disponibile o è pieno. Una volta installata, l'utente può spostare l'app nello spazio di archiviazione interno o esterno tramite le impostazioni di sistema.

Nota: per impostazione predefinita, l'app si installa nella memoria interna e non può essere installata nella memoria esterna, a meno che non definisci questo attributo come "auto" o "preferExternal".

Quando un'app viene installata sullo spazio di archiviazione esterno:

  • Il file APK viene salvato nella memoria esterna, ma i dati dell'app, come i database, vengono comunque salvati nella memoria interna del dispositivo.
  • Il contenitore in cui viene salvato il file APK è criptato con una chiave che consente all'app di funzionare solo sul dispositivo su cui è stata installata. L'utente non può trasferire la scheda SD su un altro dispositivo e utilizzare le app installate sulla scheda. È possibile utilizzare più schede SD con lo stesso dispositivo.
  • Su richiesta dell'utente, l'app può essere spostata nello spazio di archiviazione interno.

L'utente potrebbe anche richiedere di spostare un'app dallo spazio di archiviazione interno a quello esterno. Tuttavia, il sistema non consente all'utente di spostare l'app nello spazio di archiviazione esterno se questo attributo è impostato su "internalOnly", che è l'impostazione predefinita.

Per maggiori informazioni sull'utilizzo di questo attributo, inclusa la modalità di mantenimento della compatibilità con le versioni precedenti, consulta Posizione di installazione dell'app.

Introdotto in: livello API 8.

introdotto in:
Livello API 1 per tutti gli attributi, se non diversamente indicato nella descrizione dell'attributo.
Vedi anche:
<application>