<manifest>

sintassi:
<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>

contenuto in:
nessuno

deve contenere:
<application>
può contenere:
<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 contengono un elemento <application> e specificare gli attributi xmlns:android e package.
attributi:
xmlns:android
Definisce lo spazio dei nomi Android. Questo attributo è sempre impostato a "http://schemas.android.com/apk/res/android".
package
Il valore dell'attributo package nel file manifest dell'APK rappresenta le tue ID applicazione universalmente univoco dell'app. È formattato come un linguaggio di programmazione Java del pacchetto 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, poiché essenzialmente crea una nuova app. Gli utenti della versione precedente dell'app non ricevono un aggiornamento e non possono e trasferire i propri dati tra la vecchia e la nuova versione.

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

android:sharedUserId

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

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

android:targetSandboxVersion
La sandbox target che l'app può utilizzare. Più alto è il numero di versione della sandbox, più alto è il livello di sicurezza. Il suo valore predefinito è 1. puoi anche impostarlo su 2. Se questo attributo è impostato su 2, la funzione in un'altra sandbox SELinux.

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

  • Il valore predefinito usesCleartextTraffic in Network Security Config è false.
  • La condivisione dell'UID non è consentita.

Per le app istantanee 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 a quella meno restrittiva livello 1. Tuttavia, se lo fai, l'app non memorizza i dati dell'app dall'app istantanea al installata la versione dell'app. Devi impostare il valore della sandbox dell'app installata su 2 per mantenere i dati dall'app istantanea alla versione installata.

Una volta installata un'app, puoi solo aggiornare il valore della sandbox target impostandolo su un valore superiore. Per eseguire il downgrade del valore sandbox target, disinstalla l'app e sostituirlo con una versione il cui manifest contiene un valore più basso per questo attributo.

android:sharedUserLabel

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

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

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

android:sharedUserMaxSdkVersion

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

La versione massima dell'SDK in cui il sistema utilizza ancora android:sharedUserId. Se le tue l'app è appena installata su un dispositivo che esegue 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. È importante solo se È stato impostato anche l'attributo sharedUserId.

android:versionCode
Un numero di versione interna. Questo numero viene utilizzato solo per determinare se una versione è più recente di un'altra, con numeri più alti che indicano le versioni recenti. Questo non è il numero di versione mostrato agli utenti, che è impostato dall'attributo versionName.

Il valore viene impostato come un numero intero positivo maggiore di 0. Puoi definire come preferisci, purché ogni versione successiva abbia un numero più alto. Ad esempio, può essere un numero di build oppure puoi tradurre una versione numero in "x.y" a un numero intero codificando la "x" e "y" separatamente in i 16 bit inferiore e superiore. 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 è impostato come non elaborato o come riferimento a una risorsa stringa. La stringa non ha altri scopi anziché mostrarlo agli utenti. L'attributo versionCode contiene il numero significativo di versione usato internamente.
android:installLocation
Il percorso di installazione predefinito per l'app. Sono accettate le seguenti stringhe di parole chiave:

Valore Descrizione
"internalOnly" L'app viene installata solo nello spazio di archiviazione interno del dispositivo. Se impostato, l'app non viene mai installata su dispositivi di archiviazione esterni, ad esempio su schede SD. Se l'ID interno lo spazio di archiviazione è esaurito, significa che il sistema non installa l'app. Questo è il comportamento predefinito se non definisci android:installLocation.
"auto" L'app può essere installata su un dispositivo di archiviazione esterno, ma il sistema installa sulla memoria interna per impostazione predefinita. Se la memoria interna è piena, il sistema lo installa sullo spazio di archiviazione esterno. Dopo averla installata, l'utente può spostare l'app alla memoria interna o esterna tramite le impostazioni di sistema.
"preferExternal" L'app preferisce essere installata su una memoria esterna. Non esiste per garantire che il sistema risponda a questa richiesta. L'app potrebbe essere installata se il supporto esterno non è disponibile o è pieno. Una volta installata l'app, l'utente può spostarla in memoria interna o esterna tramite le impostazioni di sistema.

Nota: per impostazione predefinita, le installazioni di app su memoria interna e non è installabile su una memoria esterna se non definisci questo attributo su "auto" o "preferExternal".

Quando un'app viene installata su uno spazio di archiviazione esterno:

  • Il file APK è stato salvato allo spazio di archiviazione esterno, ma eventuali dati delle app, come i database, vengono comunque salvati memoria interna del dispositivo.
  • Il contenitore in cui viene salvato il file APK è criptato con una chiave che consente l'app funziona 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 nella memoria interna.

L'utente potrebbe anche richiedere di spostare un'app dalla memoria interna a quella esterna archiviazione. Tuttavia, il sistema non consente all'utente di spostare l'app sulla memoria esterna se questo attributo è impostato su "internalOnly", che è l'impostazione predefinita.

Per maggiori informazioni sull'utilizzo di questo attributo, incluso come mantenere la compatibilità con le versioni precedenti, consulta la sezione Percorso di installazione delle app.

Introdotto in: livello API 8.

introdotto in:
Livello 1 dell'API per tutti gli attributi, se non diversamente specificato nella descrizione degli attributi.

vedi anche:
<application>