<applicazione>

:
<application android:allowTaskReparenting=["true" | "false"]
             android:allowBackup=["true" | "false"]
             android:allowClearUserData=["true" | "false"]
             android:allowNativeHeapPointerTagging=["true" | "false"]
             android:appCategory=["accessibility" | "audio" | "game" |
             "image" | "maps" | "news" | "productivity" | "social" | "video"]
             android:backupAgent="string"
             android:backupInForeground=["true" | "false"]
             android:banner="drawable resource"
             android:dataExtractionRules="string resource"
             android:debuggable=["true" | "false"]
             android:description="string resource"
             android:enabled=["true" | "false"]
             android:extractNativeLibs=["true" | "false"]
             android:fullBackupContent="string"
             android:fullBackupOnly=["true" | "false"]
             android:gwpAsanMode=["always" | "never"]
             android:hasCode=["true" | "false"]
             android:hasFragileUserData=["true" | "false"]
             android:hardwareAccelerated=["true" | "false"]
             android:icon="drawable resource"
             android:isGame=["true" | "false"]
             android:isMonitoringTool=["parental_control" | "enterprise_management" |
             "other"]
             android:killAfterRestore=["true" | "false"]
             android:largeHeap=["true" | "false"]
             android:label="string resource"
             android:logo="drawable resource"
             android:manageSpaceActivity="string"
             android:name="string"
             android:networkSecurityConfig="xml resource"
             android:permission="string"
             android:persistent=["true" | "false"]
             android:process="string"
             android:restoreAnyVersion=["true" | "false"]
             android:requestLegacyExternalStorage=["true" | "false"]
             android:requiredAccountType="string"
             android:resizeableActivity=["true" | "false"]
             android:restrictedAccountType="string"
             android:supportsRtl=["true" | "false"]
             android:taskAffinity="string"
             android:testOnly=["true" | "false"]
             android:theme="resource or theme"
             android:uiOptions=["none" | "splitActionBarWhenNarrow"]
             android:usesCleartextTraffic=["true" | "false"]
             android:vmSafeMode=["true" | "false"] >
    . . .
</application>
contenuto in:
<manifest>
può contenere:
<activity>
<activity-alias>
<meta-data>
<service>
<receiver>
<profileable>
<provider>
<uses-library>
<uses-native-library>
description:
La dichiarazione dell'applicazione. Questo elemento contiene sottoelementi che dichiarano ciascuno dei componenti dell'applicazione e ha attributi che possono influire su tutti i componenti.

Molti di questi attributi, come icon, label, permission, process, taskAffinity e allowTaskReparenting, impostano valori predefiniti per gli attributi corrispondenti degli elementi del componente. Altri, come debuggable, enabled, description e allowClearUserData, impostano valori per l'applicazione nel suo complesso e non vengono sostituiti dai componenti.

attributi
android:allowTaskReparenting
Indica se le attività definite dall'applicazione possono essere spostate dall'attività che le ha avviate all'attività per cui hanno un'affinità quando l'attività verrà portata in primo piano. Sono "true" se possono spostare l'utente e "false" se devono rimanere con l'attività da cui è iniziata. Il valore predefinito è "false".

L'elemento <activity> ha il proprio attributo allowTaskReparenting che può sostituire il valore impostato qui.

android:allowBackup

Indica se consentire all'applicazione di partecipare all'infrastruttura di backup e ripristino. Se questo attributo è impostato su "false", non verrà eseguito alcun backup o ripristino dell'applicazione, anche tramite un backup completo del sistema che altrimenti fa sì che tutti i dati dell'applicazione vengano salvati utilizzando adb. Il valore predefinito di questo attributo è "true".

Nota : se la tua app è installata su un dispositivo con Android 12 o versioni successive e ha come target anche Android 12 (livello API 31) o versioni successive, non puoi disattivare la migrazione da dispositivo a dispositivo dei file della tua app. In questo caso, il sistema supporta automaticamente questa funzionalità.

Tuttavia, puoi disattivare il backup e il ripristino basati su cloud dei file della tua app impostando questo attributo su "false", anche se la tua app ha come target Android 12 (livello API 31) o versioni successive.

Per ulteriori informazioni, consulta la sezione Backup e ripristino della pagina che descrive le modifiche del comportamento per le app che hanno come target Android 12 (livello API 31) o versioni successive.

android:allowClearUserData

Consente di stabilire se consentire o meno all'applicazione di reimpostare i dati utente. Questi dati includono flag, ad esempio se l'utente ha visualizzato descrizioni comando introduttive, nonché impostazioni e preferenze personalizzabili dall'utente. Il valore predefinito di questo attributo è "true".

Nota: solo le app che fanno parte dell'immagine di sistema possono dichiarare questo attributo in modo esplicito. Le app di terze parti non possono includere questo attributo nei file manifest.

Per ulteriori informazioni, consulta Panoramica del backup dei dati.

android:allowNativeHeapPointerTagging

Indica se l'app attiva la funzionalità di tagging del puntatore heap. Il valore predefinito di questo attributo è "true".

Nota: la disattivazione di questa funzionalità non risolve il problema relativo allo stato del codice sottostante. I dispositivi hardware futuri potrebbero non supportare questo tag manifest.

Per ulteriori informazioni, consulta la sezione Suggerimenti con tag.

android:appCategory

Dichiara la categoria di questa app. Le categorie vengono utilizzate per raggruppare più app in gruppi significativi, ad esempio per riassumere l'utilizzo della batteria, della rete o del disco. Definisci questo valore solo per le app che rientrano in una delle categorie specifiche.

Deve essere uno dei seguenti valori costanti.

ValoreDescrizione
accessibilityApp che sono principalmente app di accessibilità, come screen reader.
audioLe app che funzionano principalmente con audio o musica, come i lettori musicali.
gameApp che sono principalmente giochi.
imageApp che funzionano principalmente con immagini o foto, ad esempio app fotocamera o galleria.
mapsApp che sono principalmente app di mappatura, come le app di navigazione.
newsApp che sono principalmente app di notizie, come giornali, riviste o app sportive.
productivityApp che sono principalmente app di produttività, ad esempio app di archiviazione sul cloud o app di lavoro.
socialApp che sono principalmente app social, ad esempio app di messaggistica, comunicazione, email o di social network.
videoApp che funzionano principalmente con video o film, ad esempio app di video in streaming.

android:backupAgent
Il nome della classe che implementa l'agente di backup dell'applicazione, una sottoclasse di BackupAgent. Il valore dell'attributo è un nome completo della classe, come "com.example.project.MyBackupAgent". Tuttavia, se il primo carattere del nome è un punto, ad esempio ".MyBackupAgent", viene aggiunto al nome del pacchetto specificato nell'elemento <manifest>.

Non esiste un'impostazione predefinita. Il nome deve essere specifico.

android:backupInForeground
Indica che è possibile eseguire le operazioni di backup automatico su questa app anche se l'app è in uno stato equivalente in primo piano. Il sistema arresta un'app durante l'operazione di backup automatico, quindi utilizza questo attributo con cautela. L'impostazione di questo flag su "true" può influire sul comportamento dell'app mentre è attiva.

Il valore predefinito è "false", il che significa che il sistema operativo evita di eseguire il backup dell'app mentre è in esecuzione in primo piano, ad esempio un'app di musica che riproduce musica attivamente utilizzando un servizio in stato startForeground().

android:banner
Una risorsa disegnabile che fornisce un banner grafico esteso per l'elemento associato. Utilizzalo con il tag <application> per fornire un banner predefinito per tutte le attività dell'applicazione oppure con il tag <activity> per fornire un banner per un'attività specifica.

Il sistema utilizza il banner per rappresentare un'app nella schermata Home di Android TV. Pertanto, specificalo solo per le applicazioni con un'attività che gestisce l'intent CATEGORY_LEANBACK_LAUNCHER.

Questo attributo è impostato come riferimento a una risorsa disegnabile contenente l'immagine, ad esempio "@drawable/banner". Non esiste un banner predefinito.

Per ulteriori informazioni, consulta la sezione Fornire un banner nella schermata Home.

android:dataExtractionRules

Le applicazioni possono impostare questo attributo su una risorsa XML in cui specificano le regole che determinano quali file e directory possono essere copiati dal dispositivo nell'ambito di operazioni di backup o trasferimento.

Per informazioni sul formato del file XML, consulta la sezione Backup e ripristino.

android:debuggable
Indica se è possibile eseguire il debug dell'applicazione, anche quando è in esecuzione su un dispositivo in modalità utente. È "true" se può esserlo e "false" in caso contrario. Il valore predefinito è "false".
android:description
Testo sull'applicazione leggibile dall'utente, più lungo e più descrittivo dell'etichetta dell'applicazione. Il valore viene impostato come riferimento a una risorsa stringa. A differenza dell'etichetta, non può essere una stringa non elaborata. Non esiste un valore predefinito.
android:enabled
Indica se il sistema Android può creare un'istanza dei componenti dell'applicazione. È "true" se può e "false" in caso contrario. Se il valore è "true", l'attributo enabled di ogni componente determina se quel componente è abilitato. Se il valore è "false", sostituisce i valori specifici del componente e tutti i componenti vengono disattivati.

Il valore predefinito è "true".

android:extractNativeLibs

A partire da AGP 4.2.0, l'opzione DSL useLegacyPackaging sostituisce l'attributo manifest extractNativeLibs. Utilizza useLegacyPackaging nel file build.gradle dell'app anziché extractNativeLibs nel file manifest per configurare il comportamento di compressione delle librerie native. Per ulteriori informazioni, consulta la nota di rilascio Utilizzare la DSL per pacchettizzare librerie native compresse.

Questo attributo indica se il programma di installazione del pacchetto estrae le librerie native dall'APK al file system. Se è impostata su "false", le librerie native vengono archiviate non compresse nell'APK. Anche se le dimensioni dell'APK potrebbero essere più grandi, la tua applicazione viene caricata più velocemente perché le librerie vengono caricate direttamente dall'APK in fase di runtime.

Il valore predefinito di extractNativeLibs dipende da minSdkVersion e dalla versione di AGP in uso. Nella maggior parte dei casi, probabilmente il comportamento predefinito è quello desiderato e non è necessario impostare questo attributo in modo esplicito.

android:fullBackupContent
Questo attributo rimanda a un file XML che contiene le regole di backup complete per il Backup automatico. Queste regole determinano i file di cui eseguire il backup. Per ulteriori informazioni, consulta la sintassi di configurazione XML per Backup automatico.

Questo attributo è facoltativo. Se non è specificato, per impostazione predefinita Backup automatico include la maggior parte dei file delle app. Per ulteriori informazioni, consulta la sezione File di cui è stato eseguito il backup.

android:fullBackupOnly
Questo attributo indica se utilizzare il Backup automatico sui dispositivi in cui è disponibile. Se è impostata su "true", l'app esegue il backup automatico se installata su un dispositivo con Android 6.0 (livello API 23) o versioni successive. Sui dispositivi meno recenti, l'app ignora questo attributo ed esegue backup di chiave/valore.

Il valore predefinito è "false".

android:gwpAsanMode
Questo attributo indica se utilizzare GWP-ASan, una funzionalità nativa per l'allocazione della memoria che consente di trovare i bug use-after-free e heap-buffer-overflow.

Il valore predefinito è "never".

android:hasCode
Indica se l'applicazione contiene codice. È "true" se sì e "false" in caso contrario. Quando il valore è "false", il sistema non tenta di caricare alcun codice dell'applicazione all'avvio dei componenti. Il valore predefinito è "true".

Ad esempio, la tua app potrebbe supportare la distribuzione delle funzionalità di Google Play e includere moduli delle funzionalità che non generano file DEX, ovvero bytecode ottimizzato per la piattaforma Android. In questo caso, devi impostare questa proprietà su "false" nel file manifest del modulo per evitare errori di runtime.

android:hasFragileUserData
Indica se mostrare all'utente una richiesta di conservazione dei dati dell'app quando l'utente disinstalla l'app. Il valore predefinito è "false".
android:hardwareAccelerated
Indica se il rendering con accelerazione hardware è abilitato per tutte le attività e le visualizzazioni in questa applicazione. È "true" se è abilitata e "false" in caso contrario. Il valore predefinito è "true" se imposti minSdkVersion o targetSdkVersion su "14" o su un valore superiore. In caso contrario, è "false".

A partire da Android 3.0 (livello API 11), per le applicazioni è disponibile un renderer OpenGL con accelerazione hardware per migliorare le prestazioni di molte operazioni comuni sulla grafica 2D. Quando è abilitato il renderer con accelerazione hardware, la maggior parte delle operazioni in Canvas, Paint, Xfermode, ColorFilter, Shader e Camera vengono accelerate.

Ciò si traduce in animazioni più fluide, scorrimento più fluido e reattività complessiva migliorata, anche per applicazioni che non utilizzano esplicitamente le librerie OpenGL del framework.

Non tutte le operazioni OpenGL 2D sono accelerate. Se abiliti il renderer con accelerazione hardware, testa la tua applicazione in modo che possa utilizzare il renderer senza errori.

Per ulteriori informazioni, leggi la guida sull'accelerazione hardware.

android:icon
Un'icona per l'applicazione nel suo insieme e l'icona predefinita per ciascuno dei componenti dell'applicazione. Visualizza i singoli attributi icon per gli elementi <activity>, <activity-alias>, <service>, <receiver> e <provider>.

Questo attributo è impostato come riferimento a una risorsa disegnabile contenente l'immagine, come "@drawable/icon". Non è presente un'icona predefinita.

android:isGame
Se l'applicazione è un gioco. Il sistema potrebbe raggruppare le applicazioni classificate come giochi o visualizzarle separatamente da altre applicazioni. Il valore predefinito è "false".
android:isMonitoringTool

Indica che questa applicazione è progettata per monitorare altri individui.

Nota : se un'app dichiara questo attributo nel file manifest, lo sviluppatore deve seguire le norme relative agli stalkerware per pubblicare l'app su Google Play.

Non esiste un valore predefinito. Lo sviluppatore deve specificare uno dei seguenti valori:

ValoreDescrizione
"parental_control"L'app si rivolge al Controllo genitori ed è specificamente rivolta ai genitori che vogliono mantenere i propri figli al sicuro.
"enterprise_management"L'app si rivolge alle aziende che vogliono gestire e monitorare i dispositivi dati in dotazione ai dipendenti.
"other"L'app si rivolge a un caso d'uso non altrimenti specificato in questa tabella.
android:killAfterRestore
Indica se l'applicazione si arresta dopo che le relative impostazioni sono state ripristinate durante un'operazione di ripristino dell'intero sistema. Le operazioni di ripristino di un singolo pacchetto non causano mai l'arresto dell'applicazione. Le operazioni di ripristino dell'intero sistema in genere vengono eseguite una sola volta, alla prima configurazione del telefono. In genere, le applicazioni di terze parti non devono utilizzare questo attributo.

Il valore predefinito è "true", il che significa che l'applicazione termina l'elaborazione dei dati durante un ripristino dell'intero sistema.

android:largeHeap
Indica se i processi dell'applicazione vengono creati con un grande heap Dalvik. Questo si applica a tutti i processi creati per l'applicazione. Si applica solo alla prima applicazione caricata in un processo. Se utilizzi un ID utente condiviso per consentire a più applicazioni di utilizzare un processo, tutte devono utilizzare questa opzione in modo coerente per evitare risultati imprevedibili.

La maggior parte delle app non ha bisogno di questa funzionalità e si concentra sulla riduzione dell'utilizzo complessivo della memoria per migliorare le prestazioni. Inoltre, l'attivazione di questa opzione non garantisce un aumento fisso della memoria disponibile, perché alcuni dispositivi sono vincolati dalla memoria totale disponibile.

Per eseguire una query sulla dimensione della memoria disponibile in fase di runtime, utilizza i metodi getMemoryClass() o getLargeMemoryClass().

android:label
Un'etichetta leggibile per l'applicazione nel suo complesso e un'etichetta predefinita per ciascuno dei componenti dell'applicazione. Visualizza i singoli attributi label per gli elementi <activity>, <activity-alias>, <service>, <receiver> e <provider>.

L'etichetta è impostata come riferimento a una risorsa stringa, in modo che possa essere localizzata come altre stringhe nell'interfaccia utente. Tuttavia, per praticità, durante lo sviluppo dell'applicazione, puoi anche impostare una stringa non elaborata.

android:logo
Un logo per l'applicazione nel suo complesso e il logo predefinito per le attività. Questo attributo è impostato come riferimento a una risorsa disegnabile contenente l'immagine, come "@drawable/logo". Non esiste un logo predefinito.
android:manageSpaceActivity
Il nome completo di una sottoclasse Activity avviata dal sistema per consentire agli utenti di gestire la memoria occupata dall'applicazione sul dispositivo. L'attività viene dichiarata anche con un elemento <activity>.
android:name
Il nome completo di una sottoclasse Application implementata per l'applicazione. All'avvio del processo di applicazione, viene creata un'istanza di questa classe prima di qualsiasi componente dell'applicazione.

La sottoclasse è facoltativa. Per la maggior parte delle applicazioni non è necessario. In assenza di una sottoclasse, Android utilizza un'istanza della classe di base Application.

android:networkSecurityConfig

Specifica il nome del file XML che contiene la configurazione della sicurezza di rete dell'applicazione. Il valore è un riferimento al file di risorse XML contenente la configurazione.

Questo attributo è stato aggiunto al livello API 24.

android:permission
Il nome di un'autorizzazione necessaria ai client per interagire con l'applicazione. Questo attributo consente di impostare un'autorizzazione che si applica a tutti i componenti dell'applicazione. Viene sovrascritto impostando gli attributi permission dei singoli componenti.

Per ulteriori informazioni sulle autorizzazioni, consulta la sezione Autorizzazioni nella panoramica del file manifest dell'app e i suggerimenti per la sicurezza.

android:persistent
Indica se l'applicazione rimane in esecuzione sempre. È "true" se sì e "false" in caso contrario. Il valore predefinito è "false". Le applicazioni in genere non impostano questo flag. La modalità di persistenza è destinata solo ad alcune applicazioni di sistema.
android:process
Il nome di un processo in cui vengono eseguiti tutti i componenti dell'applicazione. Ogni componente può eseguire l'override di questa impostazione predefinita impostando un proprio attributo process.

Per impostazione predefinita, Android crea un processo per un'applicazione quando deve essere eseguito il primo dei suoi componenti. Tutti i componenti vengono quindi eseguiti in quel processo. Il nome del processo predefinito corrisponde al nome del pacchetto impostato dall'elemento <manifest>.

Impostando questo attributo su un nome di processo condiviso con un'altra applicazione, puoi fare in modo che i componenti di entrambe le applicazioni vengano eseguiti nello stesso processo, ma solo se le due applicazioni condividono anche un ID utente e sono firmate con lo stesso certificato.

Se il nome assegnato a questo attributo inizia con i due punti (:), quando necessario viene creato un nuovo processo privato per l'applicazione. Se il nome del processo inizia con un carattere minuscolo, viene creato un processo globale di quel nome. Un processo globale può essere condiviso con altre applicazioni, riducendo l'utilizzo delle risorse.

android:restoreAnyVersion
Indica che l'applicazione è pronta a tentare di ripristinare qualsiasi set di dati di cui è stato eseguito il backup, anche se il backup è stato archiviato da una versione più recente dell'applicazione rispetto a quella attualmente installata sul dispositivo. L'impostazione di questo attributo su "true" consente a Gestione backup di tentare un ripristino anche quando una mancata corrispondenza di versione suggerisce che i dati non sono compatibili. Usare con cautela.

Il valore predefinito di questo attributo è "false".

android:requestLegacyExternalStorage

Indica se l'applicazione vuole disattivare l'archiviazione con ambito.

Nota: a seconda delle modifiche relative alla compatibilità con le norme o le app, il sistema potrebbe non soddisfare questa richiesta di disattivazione.

android:requiredAccountType
Specifica il tipo di account richiesto dall'applicazione per il funzionamento. Se la tua app richiede un Account, il valore di questo attributo deve corrispondere al tipo di autenticatore account utilizzato dalla tua app, come definito da AuthenticatorDescription, ad esempio "com.google".

Il valore predefinito è null e indica che l'applicazione può funzionare senza account.

Poiché i profili con limitazioni non possono aggiungere account, se specifichi questo attributo la tua app non è disponibile da un profilo con limitazioni, a meno che non dichiari anche android:restrictedAccountType con lo stesso valore.

Attenzione: se i dati dell'account potrebbero rivelare informazioni che consentono l'identificazione personale, è importante dichiarare questo attributo e lasciare nullo android:restrictedAccountType, in modo che i profili con limitazioni non possano usare la tua app per accedere a informazioni personali che appartengono all'utente proprietario.

Questo attributo è stato aggiunto al livello API 18.

android:resizeableActivity

Specifica se l'app supporta la modalità multi-finestra. Puoi impostare questo attributo nell'elemento <activity> o <application>.

Se imposti questo attributo su "true", l'utente può avviare l'attività in modalità schermo diviso e formato libero. Se imposti l'attributo su ”false”, l'app non può essere testata o ottimizzata per un ambiente multi-finestra. Il sistema può comunque impostare l'attività in modalità multi-finestra con la modalità di compatibilità applicata.

L'impostazione di questo attributo su "true" non garantisce che non ci siano altre app in modalità multi-finestra visibili sullo schermo, ad esempio Picture in picture o su altri display. Pertanto, l'impostazione di questo flag non significa che l'app ha accesso esclusivo alle risorse.

Per le app che hanno come target il livello API 24 o superiore, il valore predefinito è "true".

Se la tua app ha come target il livello API 31 o superiore, questo attributo funziona in modo diverso su schermi piccoli e grandi:

  • Schermi di grandi dimensioni (sw >= 600 dp): tutte le app supportano la modalità multi-finestra. L'attributo indica se un'app può essere ridimensionata, non se supporta la modalità multi-finestra. Se resizeableActivity="false", l'app viene messa in modalità di compatibilità quando necessario per conformarsi alle dimensioni del display.
  • Schermate piccole (sw < 600dp): se resizeableActivity="true" e la larghezza e l'altezza minima dell'attività principale rientrano nei requisiti della modalità multi-finestra, l'app supporta la modalità multi-finestra. Se resizeableActivity="false", l'app non supporta la modalità multi-finestra a prescindere dall'altezza e dalla larghezza minime dell'attività.

Nota: i produttori di dispositivi possono sostituire il comportamento del livello API 31.

Questo attributo è stato aggiunto al livello API 24.

Nota: il valore dell'attività principale di un'attività viene applicato a tutte le attività aggiuntive avviate nell'attività. In altre parole, se l'attività principale di un'attività è ridimensionabile, il sistema considera tutte le altre attività nell'attività come ridimensionabili. Se l'attività principale non è ridimensionabile, le altre attività nell'attività non sono ridimensionabili.

android:restrictedAccountType
Specifica il tipo di account richiesto da questa applicazione e indica che i profili con limitazioni possono accedere a questi account che appartengono all'utente proprietario. Se la tua app richiede un Account e i profili con limitazioni possono accedere agli account dell'utente principale, il valore di questo attributo deve corrispondere al tipo di autenticatore account utilizzato dalla tua app, come definito da AuthenticatorDescription, ad esempio "com.google".

Il valore predefinito è null e indica che l'applicazione può funzionare senza account.

Attenzione. Se specifichi questo attributo, i profili con limitazioni possono usare la tua app con account che appartengono all'utente proprietario, in quanto potrebbero rivelare informazioni che consentono l'identificazione personale. Se l'account potrebbe rivelare dettagli personali, non utilizzare questo attributo. Dichiara invece l'attributo android:requiredAccountType per rendere la tua app non disponibile per i profili con limitazioni.

Questo attributo è stato aggiunto al livello API 18.

android:supportsRtl
Dichiara se la tua applicazione è disposta a supportare layout da destra a sinistra (RTL).

Se il criterio viene impostato su "true" e targetSdkVersion su 17 o su un valore superiore, il sistema attiva e utilizza varie API RTL in modo che la tua app possa visualizzare i layout RTL. Se il criterio viene impostato su "false" o se il valore targetSdkVersion viene impostato su 16 o su un valore inferiore, le API RTL vengono ignorate o non hanno alcun effetto e l'app si comporta allo stesso modo, indipendentemente dalla direzione di layout associata alla scelta delle impostazioni internazionali dell'utente. Ciò significa che i layout sono sempre da sinistra a destra.

Il valore predefinito di questo attributo è "false".

Questo attributo è stato aggiunto al livello API 17.

android:taskAffinity
Un nome di affinità che si applica a tutte le attività all'interno dell'applicazione, tranne quelle che impostano un'affinità diversa con i propri taskAffinity attributi. Controlla questo attributo per ulteriori informazioni.

Per impostazione predefinita, tutte le attività all'interno di un'applicazione condividono la stessa affinità. Il nome di questa affinità corrisponde al nome del pacchetto impostato dall'elemento <manifest>.

android:testOnly
Indica se questa applicazione è solo a scopo di test. Ad esempio, potrebbe esporre funzionalità o dati esterni a se stesso e causare un buco della sicurezza, ma essere utili per i test. Questo tipo di APK viene installato solo tramite adb. Non puoi pubblicarli su Google Play.

Android Studio aggiunge automaticamente questo attributo quando fai clic su Esegui .

android:theme
Un riferimento a una risorsa di stile che definisce un tema predefinito per tutte le attività nell'applicazione. Le singole attività possono ignorare l'impostazione predefinita impostando attributi theme propri. Per saperne di più, consulta la sezione Stili e temi.
android:uiOptions
Opzioni aggiuntive per l'interfaccia utente di un'attività. Deve essere uno dei seguenti valori:
ValoreDescrizione
"none"Nessuna opzione UI aggiuntiva. Questa è l'impostazione predefinita.
"splitActionBarWhenNarrow"Aggiunge una barra nella parte inferiore dello schermo per visualizzare le attività nella barra dell'app, nota anche come barra delle azioni, quando viene vincolata lo spazio orizzontale, ad esempio in modalità verticale su un telefono. Anziché visualizzare un numero ridotto di attività nella barra delle app nella parte superiore dello schermo, la barra delle app si suddivide nella sezione di navigazione superiore e in quella inferiore per le attività. Ciò significa che è disponibile una quantità ragionevole di spazio per le attività e per gli elementi di navigazione e titolo in alto. Le voci di menu non sono suddivise tra le due barre. Vengono sempre visualizzati insieme.

Per ulteriori informazioni sulla barra delle app, vedi Aggiungere la barra delle app.

Questo attributo è stato aggiunto al livello API 14.

android:usesCleartextTraffic
Indica se l'app intende utilizzare traffico di rete in chiaro, ad esempio HTTP in chiaro. Il valore predefinito per le app destinate al livello API 27 o precedente è "true". Le app che hanno come target il livello API 28 o superiore impostano il valore "false" come valore predefinito.

Se l'attributo è impostato su "false", i componenti della piattaforma, ad esempio gli stack HTTP e FTP, DownloadManager e MediaPlayer, rifiutano le richieste dell'app di utilizzo del traffico di testo non crittografato.

Consigliamo vivamente anche alle librerie di terze parti di rispettare questa impostazione. Il motivo principale per evitare il traffico di testo non crittografato è la mancanza di riservatezza, autenticità e protezioni contro le manomissioni. Un utente malintenzionato di rete può intercettare i dati trasmessi e anche modificarli senza che vengano rilevati.

Questo flag viene rispettato secondo il criterio del "best effort" perché è impossibile impedire tutto il traffico di testo in chiaro proveniente dalle applicazioni Android dato il livello di accesso fornito. Ad esempio, non è previsto che l'API Socket rispetti questo flag, poiché non è in grado di determinare se il suo traffico è in testo in chiaro.

Tuttavia, la maggior parte del traffico di rete dalle applicazioni è gestito da componenti e stack di rete di livello superiore, che possono onorare questo flag leggendolo da ApplicationInfo.flags o NetworkSecurityPolicy.isCleartextTrafficPermitted().

Nota: WebView rispetta questo attributo per le applicazioni che hanno come target il livello API 26 e livelli successivi.

Durante lo sviluppo dell'app, è possibile utilizzare StrictMode per identificare l'eventuale traffico di testo in chiaro proveniente dall'app. Per ulteriori informazioni, visita la pagina StrictMode.VmPolicy.Builder.detectCleartextNetwork().

Questo attributo è stato aggiunto al livello API 23.

Questo flag viene ignorato su Android 7.0 (livello API 24) e versioni successive se è presente una configurazione di sicurezza della rete Android.

android:vmSafeMode
Indica se l'app vuole che la macchina virtuale (VM) operi in modalità provvisoria. Il valore predefinito è "false".

Questo attributo è stato aggiunto al livello API 8, dove il valore "true" ha disattivato il compilatore Just-in-time (JIT) Dalvik.

Questo attributo è stato adattato nel livello API 22, dove un valore "true" ha disattivato il compilatore ART pre-orario (AOT).

introdotto in:
Livello API 1
consulta anche:
<activity>
<service>
<receiver>
<provider>