<application>

sintaxis:
<application android:allowTaskReparenting=["true" | "false"]
                 android:allowBackup=["true" | "false"]
                 android:allowClearUserData=["true" | "false"]
                 android:backupAgent="string"
                 android:backupInForeground=["true" | "false"]
                 android:banner="drawable resource"
                 android:debuggable=["true" | "false"]
                 android:description="string resource"
                 android:directBootAware=["true" | "false"]
                 android:enabled=["true" | "false"]
                 android:extractNativeLibs=["true" | "false"]
                 android:fullBackupContent="string"
                 android:fullBackupOnly=["true" | "false"]
                 android:hasCode=["true" | "false"]
                 android:hardwareAccelerated=["true" | "false"]
                 android:icon="drawable resource"
                 android:isGame=["true" | "false"]
                 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: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>
incluida en:
<manifest>
puede contener:
<activity>
<activity-alias>
<meta-data>
<service>
<receiver>
<provider>
<uses-library>
descripción:
Es la declaración de la aplicación. Este elemento contiene subelementos, que declaran cada uno de los componentes de la aplicación, y tiene atributos que pueden afectar a todos los componentes. Muchos de estos atributos (como icon, label, permission, process, taskAffinity y allowTaskReparenting) establecen los valores predeterminados para los atributos correspondientes de los componentes. Otros (como debuggable, enabled, description y allowClearUserData) establecen valores para la aplicación como un todo y los componentes no pueden anularlos.
atributos
android:allowTaskReparenting
Determina si las actividades que la aplicación define pueden moverse de la tarea que las inició a la tarea por la que tienen afinidad cuando esta pasa al primer plano ("true" si pueden moverse y "false" si deben permanecer con la tarea que las inició). El valor predeterminado es "false".

El elemento <activity> tiene su propio atributo allowTaskReparenting que puede anular el valor establecido aquí. Consulta este atributo para obtener más información.

android:allowBackup
Determina si se permite a la aplicación participar en la infraestructura de copia de seguridad y restablecimiento. Si este atributo se establece en falso, no se realizará ninguna acción de copia de seguridad ni de restablecimiento de la aplicación, ni siquiera una copia de seguridad de todo el sistema que guardaría todos los datos de la aplicación mediante adb. El valor predeterminado de este atributo es verdadero.
android:allowClearUserData

Determina si se debe permitir que la aplicación restablezca los datos del usuario. Estos datos incluyen marcas (por ejemplo, si el usuario consultó la información introductoria sobre la herramienta), así como las preferencias y opciones de configuración que el usuario puede personalizar. El valor predeterminado de este atributo es true.

Nota: Solo las apps que forman parte de la imagen del sistema pueden declarar este atributo de manera explícita. Las apps de terceros no pueden incluir este atributo en sus archivos de manifiesto.

Para obtener más información, consulta Cómo restablecer los datos del usuario en dispositivos nuevos.

android:backupAgent
Es el nombre de la clase que implementa el agente de copia de seguridad de la aplicación, una subclase de BackupAgent. El valor del atributo debería ser un nombre de clase completo (como "com.example.project.MyBackupAgent"). Sin embargo, como versión abreviada, si el primer carácter del nombre es un punto (por ejemplo, ".MyBackupAgent"), este se adjunta al nombre del paquete especificado en el elemento <manifest>.

No hay ningún valor predeterminado. Se debe especificar el nombre.

android:backupInForeground
Indica que se pueden realizar en esta app las operaciones de Copia de seguridad automática incluso si la app se encuentra en un estado equivalente a la ejecución en primer plano. El sistema cierra una app durante la operación de copia de seguridad automática, por lo que debes usar este atributo con cuidado. Configurar esta marca en verdadero puede afectar el comportamiento de la app mientras esta está activa.

El valor predeterminado es false, lo que implica que el SO evitará realizar la copia de seguridad de la app mientras esta esté en ejecución en primer plano (como una app de música que reproduce contenido activamente por medio de un servicio en estado startForeground()).

android:banner
Es un recurso de elemento de diseño que proporciona un banner gráfico extendido para su elemento asociado. Úsalo con la etiqueta <application> a fin de proporcionar un banner predeterminado para todas las actividades de la app o con la etiqueta <activity> con el objetivo de proporcionar un banner para una actividad específica.

El sistema usa el banner para representar una app en la pantalla principal de Android TV. Como el banner solo se muestra en la pantalla principal, debe especificarse únicamente en aplicaciones que tengan una actividad para administrar el intent CATEGORY_LEANBACK_LAUNCHER.

Este atributo debe establecerse como referencia a un recurso de elemento de diseño que contiene la imagen (por ejemplo, "@drawable/banner"). No hay un banner predeterminado.

Para obtener más información, consulta Cómo utilizar un banner en la pantalla principal en el artículo "Cómo comenzar a usar apps para TV".

android:debuggable
Determina si es posible o no depurar la aplicación, incluso cuando se ejecuta en un dispositivo en modo de usuario ("true" si se puede y "false" si no). El valor predeterminado es "false".
android:description
Es un texto legible por el usuario sobre la aplicación. Es más extenso y descriptivo que la etiqueta de la aplicación. El valor debe establecerse como una referencia a un recurso de string. A diferencia de la etiqueta, no puede ser una string sin procesar. No hay un valor predeterminado.
android:directBootAware

Determina si la aplicación admite el inicio directo; es decir, si puede ejecutarse antes de que el usuario desbloquee el dispositivo. Si usas una subclase personalizada de Application, y si cualquier componente dentro de tu aplicación admite el inicio directo, se considera que toda la aplicación personalizada admite el inicio directo.

Nota: Durante el inicio directo, tu aplicación solo puede acceder a los datos que se guardan en el almacenamiento protegido del dispositivo.

El valor predeterminado es "false".

android:enabled
Determina si el sistema puede crear instancias de los componentes de la aplicación ("true" si puede y "false" si no). Si el valor es "true", el atributo enabled de cada componente determina si ese componente está habilitado o no. Si el valor es "false", anula los valores específicos del componente; es decir, se inhabilitan todos los componentes.

El valor predeterminado es "true".

android:extractNativeLibs
Determina si el instalador del paquete extrae bibliotecas nativas del APK en el sistema de archivos o no. Si se configura en false, tus bibliotecas nativas deben tener las páginas alineadas y el almacenamiento descomprimido en el APK. No se requieren cambios en el código, ya que el vinculador carga las bibliotecas directamente desde el APK en el tiempo de ejecución.

El valor predeterminado es "true".

android:fullBackupContent
Este atributo apunta a un archivo XML que contiene las reglas para crear una copia de seguridad completa con Copia de seguridad automática. Estas reglas determinan qué archivos se respaldan. Para obtener más información, consulta la sintaxis de la configuración XML para la copia de seguridad automática.

Este atributo es opcional. Si no se especifica, de forma predeterminada, la Copia de seguridad automática incluye la mayoría de los archivos de tu app. Para obtener más información, consulta Archivos con copia de seguridad.

android:fullBackupOnly
Este atributo indica si se debe usar o no la Copia de seguridad automática en los dispositivos en los que está disponible. Si se establece en true, tu app realiza la Copia de seguridad automática cuando se instala en un dispositivo que ejecuta Android 6.0 (API nivel 23) o una versión posterior. En dispositivos más antiguos, tu app ignora este atributo y realiza copias de seguridad de pares clave-valor.

El valor predeterminado es "false".

android:hasCode
Determina si la aplicación contiene código o no ("true" si contiene y "false" si no). Si el valor es "false", el sistema no intenta cargar ningún código de la aplicación cuando se inician componentes. El valor predeterminado es "true".

Por ejemplo, si tu app admite Dynamic Delivery de Google Play y, además, incluye módulos de funciones dinámicas que no generan archivos DEX (que es código de bytes optimizado para la plataforma de Android), deberás establecer esta propiedad en false en el archivo de manifiesto del módulo. De lo contrario, podrías obtener errores de tiempo de ejecución.

android:hardwareAccelerated
Determina si debe habilitarse el procesamiento acelerado por hardware para todas las actividades y vistas de esta aplicación ("true" si debe habilitarse y "false" si no). El valor predeterminado es "true" si estableciste minSdkVersion o targetSdkVersion en "14" o una versión posterior; de lo contrario, es "false".

A partir de Android 3.0 (API nivel 11) hay un procesador de OpenGL acelerado por hardware disponible para las aplicaciones, a fin de mejorar el rendimiento de varias operaciones comunes de gráficos 2D. Cuando se habilita el procesador acelerado por hardware, se acelera la mayoría de las operaciones en Canvas, Paint, Xfermode, ColorFilter, Shader y la cámara. De esta manera, se obtienen animaciones y desplazamientos más fluidos, y una capacidad de respuesta mejorada en general, incluso para las aplicaciones que no usan explícitamente las bibliotecas OpenGL del marco de trabajo.

Ten en cuenta que no todas las operaciones 2D de OpenGL se aceleran. Si habilitas el procesador acelerado por hardware, prueba tu aplicación para garantizar que pueda usarlo sin errores.

Para obtener más información, lee la guía Aceleración de hardware.

android:icon
Es un ícono para toda la aplicación, y el ícono predeterminado para cada componente de la aplicación. Consulta los atributos icon individuales para <activity>, <activity-alias>, <service>, <receiver> y los elementos <provider>.

Este atributo debe establecerse como una referencia a un recurso de elemento de diseño que contiene la imagen (por ejemplo, "@drawable/icon"). No hay un ícono predeterminado.

android:isGame
Determina si la aplicación es un juego. El sistema podría agrupar aplicaciones clasificadas como juegos o mostrarlas por separado.

El valor predeterminado es false.

android:killAfterRestore
Determina si la aplicación en cuestión debe cerrarse luego de que sus opciones de configuración se hayan restablecido durante una operación de restablecimiento de todo el sistema. Las operaciones de restablecimiento de un solo paquete nunca cerrarán una aplicación. Por lo general, las operaciones de restablecimiento de todo el sistema solo se realizan en una ocasión, cuando se configura el teléfono por primera vez. Normalmente, las aplicaciones de terceros no necesitan usar este atributo.

El valor predeterminado es true, lo que significa que la aplicación se cerrará una vez que termine de procesar sus datos durante el restablecimiento de todo el sistema.

android:largeHeap
Determina si los procesos de tu aplicación deben crearse con un montón Dalvik grande o no. Esta acción se aplica a todos los procesos creados para la aplicación. Solo se aplica a la primera aplicación cargada en un proceso. Si usas un ID de usuario compartido para permitir que varias aplicaciones usen un proceso, todas deben usar esta opción de forma coherente; de lo contrario, obtendrán resultados impredecibles.

La mayoría de las apps no lo necesitan y, en su lugar, deberían enfocarse en reducir el uso de memoria total a fin de mejorar el rendimiento. Su habilitación tampoco garantiza un incremento fijo de memoria disponible porque algunos dispositivos están limitados por la cantidad de memoria total disponible.

Para consultar la cantidad de memoria disponible durante el tiempo de ejecución, usa los métodos getMemoryClass() o getLargeMemoryClass().

android:label
Es una etiqueta legible por el usuario para toda la aplicación, y una etiqueta predeterminada para cada componente de la aplicación. Consulta los atributos label individuales para <activity>, <activity-alias>, <service>, <receiver> y los elementos <provider>.

La etiqueta debe establecerse como una referencia a una string de recursos, de manera que pueda localizarse como otras strings en la interfaz de usuario. Sin embargo, para tu conveniencia durante el desarrollo de la aplicación, también puede establecerse como string sin procesar.

android:logo
Es un logotipo para toda la aplicación, y el logotipo predeterminado para las actividades.

Este atributo debe establecerse como una referencia a un recurso de elemento de diseño que contiene la imagen (por ejemplo, "@drawable/logo"). No hay un logo predeterminado.

android:manageSpaceActivity
Es el nombre completo de la subclase de una actividad que el sistema puede iniciar a fin de permitir a los usuarios administrar la memoria que ocupa la aplicación en el dispositivo. La actividad también debe declararse con un elemento <activity>.
android:name
Es el nombre completo de una subclase Application implementado para la aplicación. Cuando se inicia el proceso de la aplicación, se crean instancias de esta clase antes que de los componentes de la aplicación.

Esta subclase es opcional; la mayoría de las aplicaciones no la necesitan. A falta de una subclase, Android usa una instancia de la clase básica de la aplicación.

android:networkSecurityConfig

Especifica el nombre del archivo XML que contiene la configuración de seguridad de red de tu aplicación. El valor debe ser una referencia a un archivo de recurso XML que contiene la configuración.

Este atributo se agregó en la API nivel 24.

android:permission
Es el nombre de un permiso que los clientes deben tener a fin de interactuar con la aplicación. Este atributo es una manera conveniente de establecer un permiso que se aplica a todos los componentes de la aplicación. Puede anularse con la configuración de los atributos permission de los componentes individuales.

Para obtener más información sobre permisos, consulta la sección Permisos de la introducción y el documento Seguridad y permisos.

android:persistent
Determina si la aplicación debe permanecer en ejecución en todo momento ("true" si debe y "false" si no). El valor predeterminado es "false". Por lo general, las aplicaciones no deben establecer esta marca; el modo persistente está destinado solo a aplicaciones del sistema específicas.
android:process
Es el nombre de un proceso en el que deberían ejecutarse todos los componentes de la aplicación. Cada componente puede anular este valor predeterminado configurando su propio atributo process.

De forma predeterminada, Android crea un proceso para una aplicación cuando el primer componente debe ejecutarse. Luego, se ejecutan todos los componentes en ese proceso. El nombre del proceso predeterminado coincide con el nombre de paquete establecido por el elemento <manifest>.

Si estableces este atributo en un nombre de proceso que se comparte con otra aplicación, puedes hacer que los componentes de ambas aplicaciones se ejecuten en el mismo proceso, siempre y cuando ambas también compartan un ID de usuario y puedan firmarse con el mismo certificado.

Si el nombre asignado a este atributo comienza con dos puntos (:), se crea un nuevo proceso privado de la aplicación cuando es necesario. Si el nombre del proceso comienza con un carácter en minúscula, se crea un proceso global de ese nombre. Un proceso global puede compartirse con otras aplicaciones, lo que reduce la utilización de recursos.

android:restoreAnyVersion
Indica que la aplicación está preparada para intentar restablecer cualquier conjunto de datos de una copia de seguridad, incluso si la copia se almacenó en una versión más reciente de la aplicación que la que está instalada en el dispositivo. Establecer este atributo en true le permitirá al administrador de copias de seguridad intentar la operación de restablecimiento cuando una versión que no coincida sugiera que los datos no son compatibles. Úsalo con cuidado.

El valor predeterminado de este atributo es false.

android:requiredAccountType
Especifica el tipo de cuenta que requiere la aplicación para funcionar. Si tu app requiere una Account, el valor de este atributo debe corresponder al tipo de autenticador de cuenta que usa tu app (como lo define AuthenticatorDescription), por ejemplo, "com.google".

El valor predeterminado es nulo, lo cual indica que la aplicación puede funcionar sin cuentas.

Como los perfiles restringidos actualmente no pueden agregar cuentas, si especificas este atributo, tu app no estará disponible para un perfil restringido, a menos que también declares android:restrictedAccountType con el mismo valor.

Precaución: Si los datos de la cuenta pueden revelar información de identificación personal, es importante que declares este atributo y establezcas android:restrictedAccountType en nulo, de manera que los perfiles restringidos no puedan usar tu app para acceder a la información personal que pertenece al usuario propietario.

Este atributo se agregó en la API nivel 18.

resizeableActivity

Especifica si la app admite una pantalla multiventana. Puedes establecer este atributo en el elemento <activity> o en el elemento <application>.

Si estableces este atributo como verdadero, el usuario puede iniciar la actividad en el modo de pantalla dividida o de formato libre. Si estableces el atributo como falso, la actividad no admite el modo multiventana. Si este valor es falso, y el usuario intenta iniciar la actividad en el modo multiventana, la actividad ocupará toda la pantalla.

Si tu app se orienta a la API nivel 24 o una versión posterior, pero no especificas un valor para este atributo, el valor predeterminado se configura como verdadero.

Este atributo se agregó en la API nivel 24.

android:restrictedAccountType
Especifica el tipo de cuenta que requiere esta aplicación y, además, indica que los perfiles restringidos pueden acceder a las cuentas que pertenecen al usuario propietario. Si tu app requiere una Account y los perfiles restringidos pueden acceder a las cuentas del usuario principal, el valor de este atributo debe concordar con el tipo de autenticador de cuentas que usa tu app (como lo define AuthenticatorDescription), por ejemplo, "com.google".

El valor predeterminado es nulo, lo cual indica que la aplicación puede funcionar sin cuentas.

Precaución: La especificación de este atributo permite a los perfiles restringidos usar tu app con cuentas que pertenecen al usuario propietario, lo que podría revelar información de identificación personal. Si la cuenta puede revelar detalles personales, no deberías usar este atributo. En su lugar, deberías declarar el atributo android:requiredAccountType a fin de hacer que tu app no esté disponible para perfiles restringidos.

Este atributo se agregó en la API nivel 18.

android:supportsRtl
Declara si tu aplicación está dispuesta a admitir diseños de derecha a izquierda (RTL).

Si se establece en true y se establece targetSdkVersion en 17 o una versión posterior, el sistema activará y usará diferentes API RTL a fin de que tu app muestre diseños RTL. Si se establece en false o si targetSdkVersion se establece en 16 o una versión anterior, las API RTL se ignorarán o no tendrán ningún efecto, y tu app se comportará de la misma manera independientemente de la dirección del diseño asociada con la configuración regional que elija el usuario (tus diseños siempre serán de izquierda a derecha).

El valor predeterminado de este atributo es false.

Este atributo se agregó en la API nivel 17.

android:taskAffinity
Es un nombre de afinidad que se aplica a todas las actividades dentro de la aplicación, salvo aquellas que establecieron una afinidad distinta con sus propios atributos taskAffinity. Consulta este atributo para obtener más información.

De forma predeterminada, todas las actividades dentro de una aplicación comparten la misma afinidad. El nombre de esta afinidad es el mismo que el nombre de paquete que estableció el elemento <manifest>.

android:testOnly
Indica si la aplicación se creó con fines de prueba únicamente. Por ejemplo, esta podría exponer una funcionalidad o datos que podrían generar un riesgo de seguridad, pero resulta útil para realizar pruebas. Este tipo de APK puede instalarse únicamente mediante adb (no puedes publicarlo en Google Play).

Android Studio agrega este atributo automáticamente cuando haces clic en Ejecutar .

android:theme
Es una referencia a un recurso de estilo que define un tema predeterminado para todas las actividades de la aplicación. Las actividades individuales pueden anular el valor predeterminado si establecen sus propios atributos theme. Para obtener más información, consulta la guía para desarrolladores sobre Estilos y temas.
android:uiOptions
Corresponde a opciones adicionales para la IU de una actividad.

Debe ser uno de los siguientes valores.

ValorDescripción
"none"No hay opciones de IU adicionales. Es el valor predeterminado.
"splitActionBarWhenNarrow"Agrega una barra en la parte inferior de la pantalla a fin de mostrar elementos de acción en la barra de la app (también conocida como barra de acciones) cuando se limite a un espacio horizontal (como cuando se encuentra en modo de retrato en el teléfono). En lugar de que aparezcan algunos elementos de acción en la barra de la app en la parte superior de la pantalla, la barra se divide en la sección de navegación en la parte superior y en la barra inferior para los elementos de acción. De esta manera, se garantiza que una cantidad de espacio razonable esté disponible no solo para los elementos de acción, sino también para los elementos de título y navegación en la parte superior. Los elementos de menú no se dividen en dos barras; siempre aparecen juntos.

Para obtener más información sobre la barra de la app, consulta la clase de capacitación Cómo agregar la barra de la app.

Este atributo se agregó en la API nivel 14.

android:usesCleartextTraffic
Indica si la app considera usar tráfico de red Cleartext, como HTTP Cleartext. El valor predeterminado para las apps que se orientan a la API nivel 27 o a una versión anterior es "true". El valor predeterminado para las apps que se orientan a la API nivel 28 o a una versión posterior es "false".

Cuando el atributo se configura en "false", los componentes de la plataforma (por ejemplo, las pilas de FTP y HTTP, DownloadManager y MediaPlayer) rechazarán la solicitud de la app para usar tráfico Cleartext. Además, se recomienda encarecidamente aplicar esta configuración a las bibliotecas de terceros. El motivo principal para evitar el tráfico Cleartext es la falta de confidencialidad, autenticidad y protecciones contra la manipulación; un atacante de red puede escuchar los datos que se transmiten y modificarlos sin ser detectado.

Esta marca se usa sobre la base del "mejor esfuerzo", ya que es imposible evitar todo el tráfico Cleartext de las aplicaciones para Android debido al grado de acceso que se les proporciona. Por ejemplo, no se espera que la API Socket use esta marca porque no puede determinar si el tráfico es Cleartext. Sin embargo, la mayoría del tráfico de red desde las aplicaciones se administra en componentes o pilas de red de nivel superior, que pueden usar esta marca leyéndola desde ApplicationInfo.flags o NetworkSecurityPolicy.isCleartextTrafficPermitted().

Nota: WebView usa este atributo para aplicaciones que se orientan a la API nivel 26 y versiones posteriores.

Durante el desarrollo de la app, StrictMode puede usarse para identificar el tráfico Cleartext desde la app. Consulta StrictMode.VmPolicy.Builder.detectCleartextNetwork() para obtener más información.

Este atributo se agregó en la API nivel 23.

Esta marca se ignora en Android 7.0 (API nivel 24) y versiones posteriores si hay una configuración de seguridad de red de Android presente.

android:vmSafeMode
Indica si la app quiere que la máquina virtual (VM) opere en modo seguro. El valor predeterminado es "false".

Este atributo se agregó en la API nivel 8, donde un valor de "verdadero" inhabilitó el compilador Just-in-time (JIT) de Dalvik.

Este atributo se adaptó en la API nivel 22, donde un valor de "verdadero" inhabilitó el compilador por adelantado (AOT) ART.

primera inclusión:
API nivel 1
consulta también:
<activity>
<service>
<receiver>
<provider>