Las apps para Android se ejecutan en dispositivos de todo tipo: teléfonos, tablets, dispositivos plegables, dispositivos ChromeOS, automóviles, TVs e incluso XR. Para adaptarse a este entorno variado, tu app debe admitir todos los factores de forma y tamaños de visualización de los dispositivos.
Android 16 (nivel de API 36) permite que las apps se adapten a diferentes factores de forma y tamaños de visualización anulando las restricciones de la app para la orientación de la pantalla, la relación de aspecto y el cambio de tamaño. Las anulaciones se aplican a dispositivos con un ancho mínimo >= 600 dp, que define lo siguiente:
- Tablets
- Pantallas internas de dispositivos plegables de pantalla grande
- Modo de ventanas de escritorio (en todos los factores de forma)
Las apps orientadas al nivel de API 36 pueden cambiar de tamaño y entrar en el modo multiventana (equivalente a resizeableActivity="true") si el ancho mínimo de la pantalla
es >= 600 dp.
Android 16 aplica un modelo coherente de diseño de apps adaptables que optimiza la experiencia del usuario respetando las preferencias del usuario en cuanto a la orientación del dispositivo, la relación de aspecto y el tamaño de la pantalla.
Cambios
Se ignoran los siguientes atributos y APIs del manifiesto para las apps orientadas a Android 16 (nivel de API 36) en pantallas grandes:
| Atributo o API | Valores ignorados |
|---|---|
screenOrientation |
portrait, landscape, reversePortrait, reverseLandscape, sensorPortrait, sensorLandscape, userPortrait, userLandscape |
resizeableActivity |
todos |
minAspectRatio |
todos |
maxAspectRatio |
todos |
setRequestedOrientation()getRequestedOrientation() |
portrait, landscape, reversePortrait, reverseLandscape, sensorPortrait, sensorLandscape, userPortrait, userLandscape |
Excepciones
Las excepciones a los cambios de Android 16 incluyen lo siguiente:
Pantallas más pequeñas que sw600dp (la mayoría de los teléfonos, los dispositivos plegables y las pantallas externas de los dispositivos plegables de pantalla grande)
Juegos, según la
android:appCategorymarcaPublica tu juego con Android App Bundles y la firma de apps de Play, lo que permite que Google Play administre la marca y proporcione automáticamente los beneficios de los paquetes de aplicaciones. Consulta también Descripción general del manifiesto de la app.
El usuario habilita el comportamiento predeterminado de la app en la configuración de la relación de aspecto.
Inhabilitar
Para inhabilitar el comportamiento del nivel de API 36, declara la propiedad del manifiesto PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY.
Para inhabilitar una actividad específica, configura la propiedad en el elemento <activity>:
<activity ...>
<property
android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
android:value="true" />
...
</activity>
Para inhabilitar la función en toda la app, establece la propiedad en el elemento <application>:
<application ...>
<property
android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
android:value="true" />
...
</application>
Pruebas
Para probar si tu app se ve afectada por los cambios de Android 16, usa los emuladores de Pixel
Tablet y Pixel Fold en Android Studio y configura
targetSdkPreview = "Baklava" en el archivo build.gradle del módulo de tu app.
O bien, usa el framework de compatibilidad de apps en tus dispositivos de prueba habilitando la marca UNIVERSAL_RESIZABLE_BY_DEFAULT (consulta Herramientas del framework de compatibilidad).
Puedes automatizar las pruebas con el framework de pruebas Espresso y las APIs de prueba de Jetpack Compose.
Guía de implementación
Las apps que restringen la orientación del dispositivo, la relación de aspecto o el cambio de tamaño de la app pueden tener problemas de visualización en Android 16, como diseños superpuestos. Para proporcionar una experiencia del usuario óptima en teléfonos, dispositivos plegables, tablets, dispositivos ChromeOS y mucho más, compila tu app para que sea responsiva y adaptable.
Lista de tareas de preparación
Usa la siguiente lista de tareas para asegurarte de que tu app esté lista para los cambios de Android 16:
- Evita los componentes de IU estirados: Los diseños diseñados para pantallas de teléfonos verticales estándar pueden no adaptarse a otras relaciones de aspecto. Por ejemplo, los elementos de la IU que llenan todo el ancho de la pantalla pueden aparecer estirados en orientación horizontal. Agrega un ancho máximo a los componentes para evitar el estiramiento.
- Habilita el desplazamiento de los diseños: Si los diseños no se desplazan, es posible que los usuarios no puedan acceder a los botones ni a otros elementos de la IU que no estén en la pantalla en orientación horizontal. Habilita el desplazamiento de los diseños de la app para verificar que se pueda acceder a todo el contenido, independientemente de la altura de la pantalla.
- Verifica la compatibilidad de la cámara en orientación vertical y horizontal: Las vistas previas del visor de la cámara que suponen una relación de aspecto y una orientación específicas en relación con el sensor de la cámara pueden generar vistas previas estiradas o invertidas en pantallas no conformes. Verifica que los visores roten correctamente con los cambios de orientación. Habilita los visores para que se ajusten a las relaciones de aspecto de la IU que difieren de la relación de aspecto del sensor.
- Conserva el estado durante los cambios de tamaño de la ventana: La eliminación de las restricciones de orientación y relación de aspecto puede generar cambios frecuentes en el tamaño de la ventana de la app en respuesta a la forma en que los usuarios prefieren usar una app, por ejemplo, rotando, plegando o desplegando un dispositivo, o bien cambiando el tamaño de una app en el modo multiventana o de ventanas de escritorio. Los cambios de configuración, como los cambios de orientación y el cambio de tamaño de la ventana, hacen que se vuelva a crear la actividad (de forma predeterminada). Para proporcionar una experiencia del usuario óptima, conserva el estado de la app para que retenga datos (como la entrada de formularios) y los usuarios puedan mantener el contexto.
- Usa clases de tamaño de ventana: Admite diferentes tamaños de ventana y relaciones de aspecto sin personalizaciones específicas del dispositivo. Supón que los tamaños de ventana cambiarán con frecuencia. Usa clases de tamaño de ventana para caracterizar las dimensiones de la ventana y, luego, aplica un diseño adaptable adecuado.
- Crea diseños responsivos: Dentro de las clases de tamaño de ventana, los diseños responsivos se ajustan a los cambios en las dimensiones de la pantalla para crear siempre una presentación óptima de la app.
Para obtener una guía práctica para compilar diseños adaptables en Compose, consulta el codelab Cómo compilar apps adaptables con Jetpack Compose. Si migras una app que usa vistas, consulta Estrategia de adopción de Compose.
Cronograma
- Android 16 (2025): La compatibilidad con todas las orientaciones y relaciones de aspecto, y con el cambio de tamaño de la app, es la experiencia de referencia para dispositivos de pantalla grande (ancho mínimo de la pantalla >= 600 dp) para las apps orientadas al nivel de API 36. Sin embargo, los desarrolladores pueden inhabilitarla.
| Nivel de API objetivo | Dispositivos aplicables | Se permite la inhabilitación para desarrolladores |
|---|---|---|
| 36 (Android 16) | Dispositivos con pantalla grande (ancho mínimo de la pantalla >= 600 dp) | Sí |
Los plazos para orientar a niveles de API específicos son específicos de la tienda de aplicaciones. Google Play requerirá que las apps se orienten al nivel de API 36 a partir de agosto de 2026.
Recursos adicionales
- Cambios en el comportamiento: apps orientadas a Android 16 o versiones posteriores
- Cómo compilar apps adaptables
- Sugerencias y precauciones para la adaptación