- 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 attributixmlns:android
epackage
. - 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, aggiungiandroid: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 su2
. Se imposti questo attributo su2
, 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 restrittivo1
. 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 su2
.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.
- Il valore predefinito di
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 definitoandroid: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>
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-05-12 UTC.
[null,null,["Ultimo aggiornamento 2025-05-12 UTC."],[],[]]