<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>
contenute 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 elementi secondari che dichiarano ciascuno dei componenti dell'applicazione e include 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. Altre, come debuggable, enabled, description e allowClearUserData, impostano valori per l'applicazione nel suo insieme e non vengono sostituite dai componenti.

attributi
android:allowTaskReparenting
Indica se le attività definite dall'applicazione possono essere spostate dall'attività che le ha avviate a quella per la quale hanno un'affinità quando l'attività viene messa in primo piano. Sono "true" se possono effettuare lo spostamento e "false" se devono rimanere nell'attività da cui hanno iniziato. Il valore predefinito è "false".

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

android:allowBackup

Se consentire all'applicazione di partecipare all'infrastruttura di backup e ripristino. Se questo attributo è impostato su "false", non verrà mai eseguito alcun backup o ripristino dell'applicazione, anche da 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 : per le app che hanno come target Android 12 (livello API 31) o versioni successive, questo comportamento varia. Sui dispositivi di alcuni produttori, non puoi disattivare la migrazione da dispositivo a dispositivo dei file della tua app.

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 maggiori informazioni, consulta la sezione relativa a 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

Se consentire 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 la panoramica del backup dei dati.

android:allowNativeHeapPointerTagging

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

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

Per ulteriori informazioni, consulta la sezione Indicatori taggati.

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.
audioApp che funzionano principalmente con audio o musica, ad esempio i lettori musicali.
gameApp che sono principalmente giochi.
imageApp che funzionano principalmente con immagini o foto, ad esempio le 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 spazio di archiviazione sul cloud o 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 BackupAgent. Il valore dell'attributo è un nome completo di classe, come "com.example.project.MyBackupAgent". Tuttavia, per riassumere, se il primo carattere del nome è un punto, ad esempio ".MyBackupAgent", viene aggiunto al nome del pacchetto specificato nell'elemento <manifest>.

Non esiste un valore predefinito. Il nome deve essere specifico.

android:backupInForeground
Indica che è possibile eseguire le operazioni di backup automatico su questa app anche se si trova in uno stato equivalente in primo piano. Il sistema arresta un'app durante l'operazione di backup automatico, quindi usa questo attributo con cautela. L'impostazione di questo flag su "true" può influire sul comportamento dell'app quando l'app è 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 sta riproducendo attivamente musica tramite 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. Di conseguenza, 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 l'articolo 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 Backup e ripristino.

android:debuggable
Indica se è possibile eseguire il debug dell'applicazione anche durante l'esecuzione su un dispositivo in modalità utente. È "true" se può essere e "false" in caso contrario. Il valore predefinito è "false".
android:description
Testo dell'applicazione leggibile dall'utente, che è 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 è presente alcun 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 della libreria nativa. Per ulteriori informazioni, consulta la nota di rilascio Utilizzare la connessione DSL per pacchettizzare librerie native compresse.

Questo attributo indica se il programma di installazione dei pacchetti estrae le librerie native dall'APK al file system. Se il criterio viene impostato su "false", le librerie native vengono archiviate nell'APK in formato non compresso. Anche se l'APK potrebbe avere dimensioni maggiori, l'applicazione si carica 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 devi impostare questo attributo in modo esplicito.

android:fullBackupContent
Questo attributo rimanda a un file XML contenente 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 dell'app. Per ulteriori informazioni, vedi 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 di allocatore della memoria che consente di trovare bug use-after-free e heap-buffer-overflow.

Il valore predefinito è "never".

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

Ad esempio, la tua app potrebbe supportare la distribuzione delle caratteristiche di Google Play e includere moduli di funzionalità che non generano file DEX, ottimizzati in bytecode per la piattaforma Android. In tal 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 è abilitato e "false" in caso contrario. Il valore predefinito è "true" se imposti minSdkVersion o targetSdkVersion su "14" o un valore superiore. Altrimenti, è "false".

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

Questo si traduce in animazioni più fluide, scorrimento più fluido e migliore reattività in generale, anche per applicazioni che non utilizzano esplicitamente le librerie OpenGL del framework.

Non tutte le operazioni OpenGL 2D vengono accelerate. Se attivi il renderer con accelerazione hardware, testa l'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 complesso e l'icona predefinita per ciascun componente dell'applicazione. Visualizza i singoli attributi icon degli elementi <activity>, <activity-alias>, <service>, <receiver> e <provider>.

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

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

Indica che l'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 è presente alcun 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 proteggere i propri figli.
"enterprise_management"L'app è rivolta alle aziende che vogliono gestire e monitorare i dispositivi dati ai dipendenti.
"other"L'app si rivolge a un caso d'uso non specificato altrimenti in questa tabella.
android:killAfterRestore
Indica se l'applicazione termina dopo che le relative impostazioni sono state ripristinate durante un'operazione di ripristino dell'intero sistema. Le operazioni di ripristino per 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 dello smartphone. Le applicazioni di terze parti in genere non devono usare 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 vale per tutti i processi creati per l'applicazione. Si applica solo alla prima applicazione caricata in un processo. Se utilizzi uno User-ID 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 ne ha bisogno e si concentra sulla riduzione dell'utilizzo complessivo di memoria per migliorare le prestazioni. L'attivazione di questa opzione non garantisce inoltre 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 insieme e un'etichetta predefinita per ogni componente dell'applicazione. Visualizza i singoli attributi label degli elementi <activity>, <activity-alias>, <service>, <receiver> e <provider>.

L'etichetta è impostata come riferimento a una risorsa stringa, così può essere localizzata come altre stringhe nell'interfaccia utente. Tuttavia, per praticità, durante lo sviluppo dell'applicazione, puoi anche impostarla come 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. La maggior parte delle applicazioni non ne ha bisogno. 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 nel 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 di 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
Se l'applicazione rimane in esecuzione sempre. È "true" se sì e "false" in caso contrario. Il valore predefinito è "false". In genere le applicazioni 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ò sostituire questa impostazione predefinita impostando il proprio attributo process.

Per impostazione predefinita, Android crea un processo per un'applicazione quando deve essere eseguito il primo dei suoi componenti. In questo processo vengono eseguiti tutti i componenti. 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 anche le due applicazioni condividono 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 per tentare il ripristino di qualsiasi set di dati di cui è stato eseguito il backup, anche se il backup è stato archiviato da una versione dell'applicazione più recente rispetto a quella attualmente installata sul dispositivo. L'impostazione di questo attributo su "true" consente a Gestione backup di tentare un ripristino anche se una mancata corrispondenza della versione indica che i dati non sono compatibili. Usa questa opzione con cautela.

Il valore predefinito di questo attributo è "false".

android:requestLegacyExternalStorage

Indica se l'applicazione vuole disattivare l'archiviazione basata su ambito.

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

android:requiredAccountType
Specifica il tipo di account richiesto dall'applicazione per il funzionamento. Se la tua app richiede un valore 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 sarà 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 utilizzare la tua app per accedere a informazioni personali che appartengono all'utente proprietario.

Questo attributo è stato aggiunto nel livello API 18.

android:resizeableActivity

Consente di specificare 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 in 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 un livello successivo, il valore predefinito è "true".

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

  • Schermate grandi (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 attivata in modalità di compatibilità quando necessario per conformarsi alle dimensioni del display.
  • Schermate piccole (sw < 600 dp): se resizeableActivity="true" e l'altezza minima e la larghezza e l'altezza minima dell'attività principale soddisfano i requisiti della modalità multi-finestra, l'app supporta la modalità multi-finestra. Se resizeableActivity="false", l'app non supporta la modalità multi-finestra indipendentemente dall'altezza e dalla larghezza minime dell'attività.

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

Questo attributo è stato aggiunto nel livello API 24.

Nota: il valore dell'attività principale di un'attività viene applicato a tutte le attività aggiuntive avviate nell'attività. Ciò significa che se l'attività root di un'attività è ridimensionabile, il sistema tratta tutte le altre attività nell'attività come ridimensionabili. Se l'attività root 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 utilizzare la tua app con account che appartengono all'utente proprietario, che 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 nel livello API 18.

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

Se questo valore è impostato su "true" e targetSdkVersion è impostato su 17 o su un valore superiore, il sistema attiva e utilizza varie API RTL in modo che l'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. vale a dire che i layout sono sempre da sinistra a destra.

Il valore predefinito di questo attributo è "false".

Questo attributo è stato aggiunto nel livello API 17.

android:taskAffinity
Un nome di affinità che si applica a tutte le attività nell'applicazione, ad eccezione di quelle che impostano un'affinità diversa con i propri attributi taskAffinity. Consulta questo attributo per ulteriori informazioni.

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

android:testOnly
Indica se l'applicazione è solo a scopo di test. Ad esempio, potrebbe esporre funzionalità o dati esterni all'account stesso che potrebbe causare un problema di sicurezza, ma essere utile per i test. Questo tipo di APK viene installato soltanto tramite adb. Non puoi pubblicarlo 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 il valore predefinito impostando i propri attributi theme. Per ulteriori informazioni, vedi Stili e temi.
android:uiOptions
Opzioni aggiuntive per l'UI 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 è vincolato allo spazio orizzontale, ad esempio in modalità verticale su un telefono. Anziché visualizzare un piccolo numero di attività nella barra delle app nella parte superiore dello schermo, la barra delle app si suddivide nella sezione di navigazione superiore e nella barra 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 nel livello API 14.

android:usesCleartextTraffic
Indica se l'app intende utilizzare traffico di rete con testo in chiaro, ad esempio HTTP con testo in chiaro. Il valore predefinito per le app destinate al livello API 27 o a un livello precedente è "true". Le app che hanno come target il livello API 28 o versioni successive vengono impostate automaticamente su "false".

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 utilizzare il traffico in chiaro.

Anche le librerie di terze parti consigliano di rispettare questa impostazione. Il motivo principale per evitare il traffico di testo in chiaro è la mancanza di riservatezza e autenticità e di protezioni contro le manomissioni. Un utente malintenzionato di rete può intercettare i dati trasmessi e modificarli senza essere rilevati.

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

Tuttavia, la maggior parte del traffico di rete dalle applicazioni viene gestita da componenti e stack di rete di livello superiore, che possono rispettare 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 il traffico di testo in chiaro proveniente dall'app. Per ulteriori informazioni, visita la pagina StrictMode.VmPolicy.Builder.detectCleartextNetwork().

Questo attributo è stato aggiunto nel 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 nel livello API 8, dove il valore "true" ha disabilitato il compilatore just-in-time (JIT) Dalvik.

Questo attributo è stato adattato nel livello API 22, dove un valore "true" ha disabilitato il compilatore ART (antitime of time, AOT).

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