- sintaxis:
<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>
- se incluye en:
<manifest>
- puede contener:
<activity>
<activity-alias>
<meta-data>
<service>
<receiver>
<profileable>
<provider>
<uses-library>
<uses-native-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
yallowTaskReparenting
, establecen valores predeterminados para los atributos correspondientes de los elementos componentes. Otros, comodebuggable
,enabled
,description
yallowClearUserData
, establecen valores para la aplicación como un todo y los componentes no los anulan. - attributes
android:allowTaskReparenting
- Indica si las actividades que la aplicación define pueden pasar de la tarea que las inició a la tarea por la que tienen afinidad cuando esta pasa a primer plano. Es
"true"
si se puede mover y"false"
si debe permanecer en la tarea que inició. El valor predeterminado es"false"
.El elemento
<activity>
tiene su propio atributoallowTaskReparenting
que puede anular el valor establecido aquí. android:allowBackup
Determina si se permite que la aplicación participe en la infraestructura de copia de seguridad y restablecimiento. Si este atributo se establece en
"false"
, no se realizará ninguna copia de seguridad ni restablecimiento de la aplicación, ni siquiera una copia de seguridad de todo el sistema que, de lo contrario, haga que todos los datos de la aplicación se guarden medianteadb
. El valor predeterminado de este atributo es"true"
.Nota: En el caso de las apps orientadas a Android 12 (nivel de API 31) o versiones posteriores, este comportamiento varía. En dispositivos de algunos fabricantes, no puedes inhabilitar la migración de los archivos de tu app de un dispositivo a otro.
Sin embargo, puedes inhabilitar la copia de seguridad y el restablecimiento basados en la nube de los archivos de tu app si configuras este atributo como
"false"
, incluso si tu app se orienta a Android 12 (nivel de API 31) o versiones posteriores.Para obtener más información, consulta la sección Copia de seguridad y restablecimiento de la página que describe los cambios de comportamiento de las apps orientadas a Android 12 (nivel de API 31) o versiones posteriores.
android:allowClearUserData
Si se debe permitir que la aplicación restablezca los datos del usuario. Estos datos incluyen marcas, por ejemplo, si el usuario vio información sobre la herramienta de introducción, así como la configuración y las preferencias 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 Descripción general de la copia de seguridad de datos.
android:allowNativeHeapPointerTagging
Indica si la app habilita la función de etiquetado del puntero del montón. El valor predeterminado de este atributo es
"true"
.Nota: Inhabilitar esta función no soluciona el problema de estado del código subyacente. Es posible que los dispositivos de hardware futuros no admitan esta etiqueta de manifiesto.
Para obtener más información, consulta Punteros etiquetados.
android:appCategory
Declara la categoría de esta app. Las categorías se usan para agrupar varias apps en grupos significativos, como cuando se resumen el uso de la batería, la red o el disco. Define este valor solo para apps que se ajusten bien a una de las categorías específicas.
Debe ser uno de los siguientes valores constantes.
Valor Descripción accessibility
Aplicaciones que son principalmente aplicaciones de accesibilidad, como los lectores de pantalla. audio
Apps que funcionan principalmente con audio o música, como reproductores de música. game
Apps que son principalmente juegos image
Apps que funcionan principalmente con imágenes o fotos, como las de cámara o galería maps
Apps que son principalmente apps de mapas, como las de navegación news
Apps que son principalmente de noticias, como apps de periódicos, revistas o deportes productivity
Apps que son principalmente apps de productividad, como apps de almacenamiento en la nube o de trabajo social
Aplicaciones que son principalmente aplicaciones sociales, como aplicaciones de mensajería, comunicación, correo electrónico o redes sociales. video
Apps que funcionan principalmente con video o películas, como las de transmisión de video. 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 es un nombre de clase completamente calificado, como"com.example.project.MyBackupAgent"
. Sin embargo, como atajo, si el primer carácter del nombre es un punto (por ejemplo,".MyBackupAgent"
), se agregará al nombre del paquete especificado en el elemento<manifest>
.No hay ningún valor predeterminado. El nombre debe ser específico.
android:backupInForeground
- Indica que se pueden realizar en esta app las operaciones de Copia de seguridad automática incluso si esta 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. Establecer esta marca en
"true"
puede afectar el comportamiento de la app mientras esta está activa.El valor predeterminado es
"false"
, lo que significa que el SO evita crear una copia de seguridad de la app mientras se ejecuta en primer plano, como cuando una app de música reproduce música de forma activa con un servicio en estadostartForeground()
. android:banner
- Es un recurso de elementos de diseño que proporciona un banner gráfico extendido para su elemento asociado. Se usa con la etiqueta
<application>
para proporcionar un banner predeterminado a todas las actividades de la aplicación o con la etiqueta<activity>
para brindar un banner a una actividad específica.El sistema usa el banner para representar una app en la pantalla principal de Android TV. Por lo tanto, solo debes especificarlo para aplicaciones con una actividad que controla el intent
CATEGORY_LEANBACK_LAUNCHER
.Este atributo se establece como referencia a un recurso de elementos de diseño que contiene la imagen, por ejemplo,
"@drawable/banner"
. No hay ningún banner predeterminado.Para obtener más información, consulta Cómo utilizar un banner en la pantalla principal.
android:dataExtractionRules
Las aplicaciones pueden establecer este atributo en un recurso XML en el que especifican las reglas que determinan qué archivos y directorios se pueden copiar del dispositivo como parte de las operaciones de copia de seguridad o transferencia.
Para obtener información sobre el formato del archivo en formato XML, consulta Copia de seguridad y restablecimiento.
android:debuggable
- Determina si la aplicación se puede depurar, incluso cuando se ejecuta en un dispositivo en modo de usuario. Es
"true"
si es posible y"false"
si no lo es. El valor predeterminado es"false"
. android:description
- Es un texto legible por el usuario sobre la aplicación, que es más extenso y descriptivo que la etiqueta de la aplicación. El valor se establece como una referencia a un recurso de cadenas. A diferencia de la etiqueta, no puede ser una cadena sin procesar. No hay un valor predeterminado.
android:enabled
- Determina si el sistema Android puede crear instancias de componentes de la aplicación. Es
"true"
si es posible y"false"
si no lo es. Si el valor es"true"
, el atributoenabled
de cada componente determina si ese componente está habilitado. Si el valor es"false"
, anula los valores específicos del componente y se inhabilitan todos los componentes.El valor predeterminado es
"true"
. android:extractNativeLibs
- Este atributo indica si el instalador del paquete extrae bibliotecas nativas del APK en el sistema de archivos. Si se configura en
"false"
, tus bibliotecas nativas se almacenan sin comprimir en el APK. Si bien tu APK puede ser más grande, tu aplicación se carga más rápido porque las bibliotecas se cargan directamente desde el APK en el tiempo de ejecución.El valor predeterminado de
extractNativeLibs
depende deminSdkVersion
y la versión del AGP que usas. En la mayoría de los casos, es probable que el comportamiento predeterminado sea lo que deseas y no tengas que configurar este atributo de manera explícita. android:fullBackupContent
- Este atributo apunta a un archivo XML que contiene las reglas para crear una copia de seguridad completa mediante una copia de seguridad automática.
Estas reglas determinan qué archivos se respaldan. Para obtener más información, consulta la sintaxis de 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 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 (nivel de API 23) o una versión posterior. En dispositivos más antiguos, tu app ignora este atributo y realiza copias de seguridad de clave-valor.El valor predeterminado es
"false"
. android:gwpAsanMode
- Este atributo indica si se debe usar GWP-ASan, una función de asignación de memoria nativa que ayuda a encontrar errores de uso después de la liberación y de desbordamiento del búfer del montón.
El valor predeterminado es
"never"
. android:hasCode
- Indica si la aplicación contiene código DEX, es decir, código que usa el lenguaje de programación Kotlin o Java.
Es
"true"
si lo requiere 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"
.Si la aplicación incluye código nativo (C/C++), pero no código DEX, se debe configurar como
"false"
. Si se configura en"true"
cuando el APK no contiene código DEX, es posible que la app no se cargue.Esta propiedad debe tener en cuenta el código que incluyen las dependencias en la aplicación. Si la aplicación depende de un AAR que usa código Java/Kotlin, o directamente en un JAR,
app:hasCode
debe ser"true"
, o bien omitirse, como es el valor predeterminado.Por ejemplo, tu app podría admitir la entrega de funciones en Play e incluir módulos de funciones que no generan archivos DEX, que es código de bytes optimizado para la plataforma de Android. Si es así, debes establecer esta propiedad en
"false"
en el archivo de manifiesto del módulo para evitar errores de tiempo de ejecución. android:hasFragileUserData
- Indica si se le solicita al usuario que conserve los datos de la app cuando la desinstala. El valor predeterminado es
"false"
. android:hardwareAccelerated
- Determina si la renderización con aceleración de hardware está habilitada para todas las actividades y vistas de esta aplicación. Es
"true"
si está habilitado y"false"
si no lo está. El valor predeterminado es"true"
si establecesminSdkVersion
otargetSdkVersion
en"14"
o una versión posterior. De lo contrario, es"false"
.A partir de Android 3.0 (nivel de API 11), hay un procesador de OpenGL acelerado por hardware disponible para que las aplicaciones mejoren el rendimiento de muchas operaciones comunes de gráficos 2D. Cuando se habilita el renderizador con aceleración de 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 framework.
No todas las operaciones de OpenGL 2D se aceleran. Si habilitas el procesador acelerado por hardware, prueba tu aplicación para 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 uno de los componentes de la aplicación. Consulta los atributos
icon
individuales para los elementos<activity>
,<activity-alias>
,<service>
,<receiver>
y<provider>
.Este atributo se establece como referencia a un recurso de elementos de diseño que contiene la imagen, como
"@drawable/icon"
. No hay un ícono predeterminado. android:isGame
- Indica 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:isMonitoringTool
Indica que esta aplicación está diseñada para supervisar a otras personas.
Nota: Si una app declara este atributo en su manifiesto, el desarrollador debe seguir la política de Stalkerware para publicar la app en Google Play.
No hay un valor predeterminado. El desarrollador debe especificar uno de los siguientes valores:
Valor Descripción "parental_control"
La app atiende al control parental y está específicamente dirigida a madres y padres que quieren mantener seguros a sus hijos. "enterprise_management"
La app está dirigida a las empresas que desean administrar y realizar un seguimiento de los dispositivos que se les proporcionan a los empleados. "other"
La app atiende un caso de uso que no se especifica de otro modo en esta tabla. android:killAfterRestore
- Determina si la aplicación finaliza después de que se restablezca su configuración durante una operación de restablecimiento de todo el sistema.
Las operaciones de restablecimiento de un solo paquete nunca provocan el cierre de la 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. Por lo general, las aplicaciones de terceros no necesitan usar este atributo.
El valor predeterminado es
"true"
, lo que significa que la aplicación finaliza el procesamiento de los datos durante el restablecimiento de todo el sistema. android:largeHeap
- Determina si los procesos de la aplicación se crean con un montón de Dalvik grande. Esta acción se aplica a todos los procesos creados para la aplicación. Solo se aplica a la primera aplicación que se carga en un proceso. Si usas un ID de usuario compartido para permitir que varias aplicaciones usen un proceso, todas deben utilizar esta opción de forma coherente a fin de evitar resultados impredecibles.
La mayoría de las apps no lo necesitan y, en su lugar, se enfocan en reducir el uso general de memoria para mejorar el rendimiento. Su habilitación tampoco garantiza un aumento fijo de la memoria disponible porque algunos dispositivos están limitados por la memoria total disponible.
Para consultar la cantidad de memoria disponible durante el tiempo de ejecución, usa los métodos
getMemoryClass()
ogetLargeMemoryClass()
. 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 los elementos<activity>
,<activity-alias>
,<service>
,<receiver>
y<provider>
.La etiqueta se establece como una referencia a un recurso de cadenas, de manera que pueda localizarse como otras cadenas de la interfaz de usuario. Sin embargo, para tu conveniencia durante el desarrollo de la aplicación, también se puede establecer como string sin procesar.
android:logo
- Un logotipo para toda la aplicación y el logotipo predeterminado para las actividades.
Este atributo se establece como referencia a un recurso de elementos de diseño que contiene la imagen, como
"@drawable/logo"
. No hay un logotipo predeterminado. android:manageSpaceActivity
- Es el nombre completamente calificado de una subclase
Activity
que el sistema inicia para permitir que los usuarios administren la memoria que ocupa la aplicación en el dispositivo. La actividad también se declara 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.La subclase es opcional. La mayoría de las aplicaciones no lo necesitan. A falta de una subclase, Android utiliza una instancia de la clase
Application
base. android:networkSecurityConfig
Especifica el nombre del archivo en formato XML que contiene la configuración de seguridad de red de tu aplicación. El valor es una referencia al archivo de recursos XML que contiene la configuración.
Este atributo se agregó en el nivel de API 24.
android:permission
- Es el nombre de un permiso que los clientes necesitan para 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. Se reemplaza mediante la configuración de los atributos
permission
de los componentes individuales.Si deseas obtener más información sobre los permisos, consulta la sección Permisos en la descripción general del manifiesto de la app y las Sugerencias de seguridad.
android:persistent
- Indica si la aplicación permanece en ejecución en todo momento. Es
"true"
si lo requiere y"false"
si no. El valor predeterminado es"false"
. Por lo general, las aplicaciones no establecen esta marca. El modo persistente está destinado solo a aplicaciones del sistema determinadas. android:process
- Es el nombre de un proceso en el que se ejecutan 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, pero solo si las dos aplicaciones también comparten un ID de usuario y están firmadas con el mismo certificado.
Si el nombre asignado a este atributo comienza con dos puntos (
:
), cuando es necesario, se crea un nuevo proceso, que es privado para la aplicación. 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"
permite que el administrador de copias de seguridad intente realizar un restablecimiento, incluso 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:requestLegacyExternalStorage
-
Indica si la aplicación desea inhabilitar el almacenamiento específico.
Nota: Según los cambios relacionados con la política o la compatibilidad de la app, es posible que el sistema no cumpla con esta solicitud de inhabilitación.
android:requiredAccountType
- Especifica el tipo de cuenta que requiere la aplicación para funcionar.
Si tu app requiere un
Account
, el valor de este atributo debe corresponder al tipo de autenticador de cuenta que usa tu app, según lo defineAuthenticatorDescription
, como"com.google"
.El valor predeterminado es nulo, lo cual indica que la aplicación puede funcionar sin cuentas.
Como los perfiles restringidos no pueden agregar cuentas, especificar este atributo hace que la app no esté disponible en un perfil restringido, a menos que también declares
android:restrictedAccountType
con el mismo valor.Precaución: Si los datos de la cuenta podrían revelar información de identificación personal, es importante que declares este atributo y dejes
android:restrictedAccountType
nulo, de modo que los perfiles restringidos no puedan usar tu app para acceder a información personal que pertenece al usuario propietario.Este atributo se agregó en el nivel de API 18.
android:resizeableActivity
-
Especifica si la app admite el modo multiventana. Puedes establecer este atributo en el elemento
<activity>
o en el elemento<application>
.Si estableces este atributo como
"true"
, el usuario puede iniciar la actividad en el modo de pantalla dividida o de formato libre. Si configuras el atributo como”false”
, la app no se puede probar ni optimizar para un entorno multiventana. El sistema aún podría poner la actividad en modo multiventana con el modo de compatibilidad aplicado.Establecer este atributo en
"true"
, no garantiza que no haya otras apps en el modo multiventana visibles en la pantalla, como pantalla en pantalla, ni en otras pantallas. Por lo tanto, configurar esta marca no significa que tu app tenga acceso exclusivo a recursos.En el caso de las apps que se orientan al nivel de API 24 o versiones posteriores, el valor predeterminado es
"true"
.Si tu app tiene como objetivo el nivel de API 31 o uno superior, este atributo funciona de manera diferente en pantallas grandes y pequeñas:
- Pantallas grandes (ancho mínimo >= 600 dp): Todas las apps admiten el modo multiventana. El atributo indica si se puede cambiar el tamaño de una app (no si es compatible con el modo multiventana). Si se establece
resizeableActivity="false"
, la app se pone en modo de compatibilidad cuando es necesario para ajustarse a las dimensiones de la pantalla. - Pantallas pequeñas (ancho mínimo < 600 dp): Si
resizeableActivity="true"
y el ancho y la altura mínimos de la actividad principal están dentro de los requisitos multiventana, la app admite el modo multiventana. Si se estableceresizeableActivity="false"
, la app no admite el modo multiventana, independientemente del ancho y la altura mínimos de la actividad.
Nota: Los fabricantes de dispositivos pueden anular el comportamiento del nivel de API 31.
Este atributo se agregó en el nivel de API 24.
Nota: El valor de actividad raíz de una tarea se aplica a todas las actividades adicionales iniciadas en la tarea. Es decir, si se puede modificar el tamaño de la actividad raíz de una tarea, el sistema tratará todas las demás actividades de la tarea como redimensionables. Si no se puede cambiar el tamaño de la actividad raíz, no se podrá modificar el tamaño de las otras actividades de la tarea.
- Pantallas grandes (ancho mínimo >= 600 dp): Todas las apps admiten el modo multiventana. El atributo indica si se puede cambiar el tamaño de una app (no si es compatible con el modo multiventana). Si se establece
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 corresponder al tipo de autenticador de cuenta que usa tu app, como lo defineAuthenticatorDescription
, como"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 que los perfiles restringidos usen tu app con cuentas que pertenecen al usuario propietario, lo que podría revelar información de identificación personal. Si es posible que la cuenta revele detalles personales, no uses este atributo. En su lugar, declara el atributo
android:requiredAccountType
para que tu app no esté disponible para perfiles restringidos.Este atributo se agregó en el nivel de API 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 establecetargetSdkVersion
en 17 o una versión posterior, el sistema activará y usará varias APIs de derecha a izquierda para que tu app pueda mostrar diseños de derecha a izquierda. Si se establece en"false"
o sitargetSdkVersion
se establece en 16 o una versión anterior, las APIs de 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 elección de la configuración regional del usuario. Es decir, tus diseños siempre son de izquierda a derecha.El valor predeterminado de este atributo es
"false"
.Este atributo se agregó en el nivel de API 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, es posible que exponga una funcionalidad o datos fuera de sí mismo que puede causar una brecha de seguridad, pero ser útil para realizar pruebas. Este tipo de APK solo se instala a través de
adb
. No puedes publicarlo en Google Play.Android Studio agrega este atributo automáticamente cuando haces clic en Run
.
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 Estilos y temas. android:uiOptions
- Corresponde a opciones adicionales para la IU de una actividad. Debe ser uno de los siguientes valores:
Valor Descripción "none"
No hay opciones de IU adicionales. Es el valor predeterminado. "splitActionBarWhenNarrow"
Agrega una barra en la parte inferior de la pantalla para 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 el teléfono celular en modo Retrato. En lugar de que aparezca una pequeña cantidad de 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 superior y la barra inferior para los elementos de acción. Esto significa que hay una cantidad razonable de espacio disponible para los elementos de acción y los elementos de título y navegación en la parte superior. Los elementos de menú no se dividen en las dos barras. Siempre aparecen juntos. Para obtener más información sobre la barra de la app, consulta Cómo agregar la barra de la app.
Este atributo se agregó en el nivel de API 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 al nivel de API 27 o a una versión anterior es
"true"
. El valor predeterminado para las apps que se orientan al nivel de API 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
yMediaPlayer
) rechazan las solicitudes de la app para usar tráfico de texto simple.Además, se recomienda encarecidamente aplicar esta configuración a las bibliotecas de terceros. El motivo clave para evitar el tráfico de texto simple es la falta de confidencialidad, autenticidad y protecciones contra la manipulación. Un atacante de red puede espiar los datos transmitidos 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 de
Socket
respete esta marca, ya que no puede determinar si el tráfico es de texto simple.Sin embargo, la mayor parte del tráfico de red de las aplicaciones se controla mediante componentes y pilas de red de nivel superior, que pueden usar esta marca leyéndola desde
ApplicationInfo.flags
oNetworkSecurityPolicy.isCleartextTrafficPermitted()
.Nota:
WebView
usa este atributo para aplicaciones que se orientan al nivel de API 26 y versiones posteriores.Durante el desarrollo de la app, StrictMode se puede usar para identificar el tráfico de texto simple desde la app. Para obtener más información, consulta
StrictMode.VmPolicy.Builder.detectCleartextNetwork()
.Este atributo se agregó en el nivel de API 23.
Esta marca se ignora en Android 7.0 (nivel de API 24) y versiones posteriores si hay una configuración de seguridad de red de Android presente.
android:vmSafeMode
- Indica si la app desea que la máquina virtual (VM) funcione en modo seguro. El valor predeterminado es
"false"
.Este atributo se agregó en el nivel de API 8, donde un valor de
"true"
inhabilitó el compilador Just-in-time (JIT) de Dalvik.Este atributo se adaptó en el nivel de API 22, en el que un valor de
"true"
inhabilitó el compilador por adelantado (AOT) ART.
A partir de AGP 4.2.0, la opción DSL
useLegacyPackaging
reemplaza el atributoextractNativeLibs
del manifiesto. UsauseLegacyPackaging
en el archivobuild.gradle
de tu app en lugar deextractNativeLibs
en el archivo de manifiesto para configurar el comportamiento de compresión de la biblioteca nativa. Para obtener más información, consulta la nota de la versión sobre Cómo usar el DSL para empaquetar bibliotecas nativas comprimidas.- incorporación:
- Nivel de API 1
- consulta también:
<activity>
<service>
<receiver>
<provider>
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2024-04-19 (UTC)
[]
[]
{
"last_modified": "Última actualización: 2024-04-19 (UTC)",
"state": ""
}