Cumple con los requisitos de nivel de API objetivo de Google Play

Cuando subes un APK, este debe cumplir con los requisitos de Google Play sobre el nivel de API objetivo.

A partir del 31 de agosto de 2024, ocurrirá lo siguiente:

  • Las apps nuevas y las actualizaciones deben orientarse a Android 14 (nivel de API 34) o versiones posteriores para que se envíen a Google Play, excepto las apps para Wear OS y Android TV, que deben orientarse a Android 13 (nivel de API 33) o versiones posteriores.
  • Las apps existentes deben orientarse a Android 13 (nivel de API 33) o versiones posteriores a fin de permanecer disponibles para los usuarios nuevos en dispositivos con un SO Android superior al nivel de API objetivo de tu app. Las apps orientadas a Android 12 (nivel de API 31) o versiones anteriores (Android 10 [nivel de API 29) o versiones anteriores para Wear OS y Android 11 (nivel de API 30) o versiones anteriores para Android TV) solo estarán disponibles en dispositivos con SO Android igual o inferior al nivel de API objetivo de la app.

Si necesitas más tiempo para actualizar la app, podrás solicitar una extensión hasta el 1 de noviembre de 2024. Podrás acceder a los formularios de extensión de tu app en Play Console más adelante, este año.

Entre las excepciones a estos requisitos, se incluyen las siguientes:

  • Apps que son privadas de forma permanente y que están restringidas a los usuarios de una organización específica y destinadas solo a la distribución interna
  • Apps orientadas al SO Android Automotive o empaquetadas con APKs orientados al SO Android Automotive

¿Por qué conviene segmentarse a los SDK más nuevos?

Cada versión nueva de Android incluye cambios que mejoran la seguridad y el rendimiento, y optimizan la experiencia del usuario de Android. Algunos de estos cambios solo se aplican a las apps que declaran su compatibilidad de forma explícita a través del atributo de manifiesto targetSdkVersion (el nivel de API al que está orientada la app).

Si configuras la app para que tenga como objetivo un nivel de API reciente, eso garantiza que los usuarios puedan beneficiarse de estas mejoras y que la app pueda seguir ejecutándose en versiones anteriores de Android. Orientar tu app a un nivel de API reciente también permite que esta aproveche las funciones más recientes de la plataforma para el deleite de tus usuarios. Además, a partir de Android 10 (nivel de API 29), los usuarios ven una advertencia cuando inician una app por primera vez, si esta se orienta a Android 5.1 (nivel de API 22) o versiones anteriores.

Este documento resalta los puntos importantes que debes tener en cuenta cuando actualices el nivel de API objetivo con el fin de cumplir con los requisitos de Google Play. Consulta las instrucciones de las siguientes secciones, según la versión a la que migres.

Migra desde Android 12 y versiones posteriores (nivel de API 31) a una versión más reciente.

Si deseas actualizar tu app para que se oriente a una versión más reciente de Android, sigue la lista de cambios de comportamiento relevantes:

Migra de Android 11 (nivel de API 30) a Android 12 (nivel de API 31)

Seguridad y permisos

Experiencia del usuario

  • Notificaciones personalizadas: Las notificaciones con vistas de contenido personalizado ya no usarán el área de notificaciones completa. En su lugar, el sistema aplicará una plantilla estándar. Esta plantilla garantiza que las notificaciones personalizadas tengan la misma decoración que otras notificaciones en todos los estados. Este comportamiento es casi idéntico al comportamiento de Notification.DecoratedCustomViewStyle.
  • Cambios en la verificación de Android App Links: Cuando uses la verificación de Android App Link, asegúrate de que los filtros de intents incluyan la categoría BROWSABLE y admitan el esquema HTTPS.

Rendimiento

  • Restricciones para el inicio del servicio en primer plano: Para orientar a Android 12 o versiones posteriores, la app no puede iniciar servicios en primer plano mientras se ejecuta en segundo plano, excepto en algunos casos especiales. Si una app intenta iniciar un servicio en primer plano mientras se ejecuta en segundo plano, se produce una excepción (excepto en algunos casos especiales).

    Procura usar WorkManager para programar y comenzar trabajos acelerados mientras la app se ejecuta en segundo plano. Para completar acciones urgentes que solicita el usuario, inicia los servicios en primer plano dentro de una alarma exacta.

  • Restricciones del trampolín de notificaciones: Cuando los usuarios presionan las notificaciones, algunas apps inician un componente de app que inicia la actividad que el usuario ve y con la que interactúa. Este componente de la app se conoce como trampolín de notificaciones.

    Las apps no deben iniciar actividades de servicios o receptores de emisión que se usen como trampolines de notificaciones. Después de que un usuario presiona una notificación o un botón de acción dentro de la notificación, tu app no puede llamar a startActivity() dentro de un servicio o receptor de emisión.

Consulta el conjunto completo de cambios que afectan a las apps orientadas a Android 12 (nivel de API 31).

Migra desde una versión anterior a Android 11 (nivel de API 30)

Selecciona la versión de Android desde la que harás la migración:

Realiza la migración a Android 5 (nivel de API 21)

Consulta la página sobre cambios de comportamiento de cada una de las versiones subsiguientes de tu app para garantizar que se hayan considerado los cambios que se implementaron en ellas:

Para continuar, sigue las instrucciones que se describen en la próxima sección.

Realiza la migración a Android 6 (nivel de API 23)

Las siguientes consideraciones se aplican a las apps que se segmentan a Android 6.0 y versiones posteriores de la plataforma:

  • Permisos de tiempo de ejecución

    • Los permisos peligrosos solo se otorgan durante el tiempo de ejecución. Los flujos de la IU deben proporcionar las condiciones para que se otorguen estos permisos.

    • En la medida de lo posible, asegúrate de que la app esté preparada para manejar el rechazo de las solicitudes de permisos. Por ejemplo, si el usuario rechaza otorgar acceso al GPS del dispositivo, la app debería tener otra manera de proceder.

Para ver una lista detallada de los cambios que se implementaron en Android 6.0 (nivel de API 23), consulta la página Cambios en el comportamiento de esa versión de la plataforma.

Para continuar, sigue las instrucciones que se describen en la próxima sección.

Realiza la migración a Android 7 (nivel de API 24)

Las siguientes consideraciones se aplican a las apps que se orientan a Android 7.0 y versiones posteriores de la plataforma:

  • Descanso y App Standby

    Cuando diseñes la app, ten en cuenta los comportamientos que se describen en la sección Cómo optimizar tu app para Descanso y App Standby, que engloba los cambios progresivos que se implementaron en diferentes versiones de la plataforma.

    Cuando un dispositivo se encuentra en modo de Descanso y App Standby, el sistema se comporta de la siguiente manera:

    • Restringe el acceso a la red.
    • Pospone alarmas, sincronizaciones y tareas.
    • Restringe el GPS y el escaneo de redes Wi-Fi.
    • Restringe los mensajes de Firebase Cloud Messaging de prioridad normal.
  • Cambios de permisos

    • El sistema restringe el acceso a los directorios privados de la app.
    • Si expones un URI de tipo file:// fuera de la app, se activa FileUriExposedException. Si necesitas compartir archivos fuera de la app, implementa FileProvider
  • El sistema prohíbe los vínculos a bibliotecas que no sean de NDK.

Para ver una lista detallada de los cambios que se implementaron en Android 7.0 (nivel de API 24), consulta la página Cambios en el comportamiento de esa versión de la plataforma.

Para continuar, sigue las instrucciones que se describen en la próxima sección.

Realiza la migración a Android 8 (nivel de API 26)

Las siguientes consideraciones se aplican a las apps que se segmentan a Android 8.0 y versiones posteriores de la plataforma:

Para ver una lista detallada de los cambios que se implementaron en Android 8.0 (nivel de API 26), consulta la página Cambios en el comportamiento de esa versión de la plataforma.

Migra desde Android 8 (nivel de API 26) a Android 9 (nivel de API 28)

Para ver una lista detallada de los cambios que se implementaron en Android 9.0 (nivel de API 28), consulta la sección Cambios en el comportamiento.

Migra desde Android 9 (nivel de API 28) a Android 10 (nivel de API 29)

Migra de Android 10 (nivel de API 29) a Android 11 (nivel de API 30)

Para ver una lista detallada de los cambios que se implementaron en Android 11 (nivel de API 30), consulta la página Cambios en el comportamiento.

Para continuar, sigue las instrucciones que se describen en la sección anterior a fin de actualizar la versión al nivel de API 31.

Moderniza tus apps

Cuando actualices el nivel de API objetivo, considera adoptar funciones recientes de la plataforma que te permitan modernizar tus apps y mejorar la experiencia de tus usuarios.

Consulta y actualiza tus bibliotecas y SDK

Asegúrate de que tus dependencias a SDK de terceros sean compatibles con la API 31. Algunos proveedores de SDK lo publican en el manifiesto y otros requerirán una investigación adicional. Si usas un SDK que no es compatible con la API 31, prioriza trabajar con el proveedor del SDK para resolver el problema.

Ten en cuenta que la targetSdkVersion de tu app o juego podría restringir el acceso a bibliotecas privadas de la plataforma de Android. Para obtener más información, consulta Cómo vincular apps NDK a bibliotecas de la plataforma.

También debes verificar las restricciones que existan en la versión de la biblioteca de compatibilidad de Android que estés usando. Como siempre, debes garantizar la compatibilidad entre la versión principal de la biblioteca de compatibilidad de Android y la compileSdkVersion de tu app.

Te recomendamos que elijas una targetSdkVersion menor o igual que la versión más reciente de la biblioteca de compatibilidad. También se recomienda que actualices la biblioteca de compatibilidad a una versión actualizada y compatible para aprovechar las funciones de compatibilidad y correcciones de errores más recientes.

Prueba tu app

Después de actualizar el nivel de API de tu app y las funciones correspondientes, deberías probar algunos de los principales casos de uso. Las siguientes sugerencias no son exhaustivas, pero están diseñadas para guiarte en el proceso de prueba. Se recomienda que pruebes lo siguiente:

  • Que tu app se compile a la API 29 sin errores ni advertencias
  • Que tu app cuente con una estrategia para casos en los que los usuarios rechacen solicitudes de permisos, y los solicite Para ello, sigue estos pasos:

    • Inhabilita cada uno de los permisos en la pantalla "Información de apps" de tu app.
    • Abre la app y asegúrate de que no tenga fallas.
      • Realiza pruebas de los casos de uso principales y asegúrate de que se vuelvan a solicitar los permisos.
  • Que maneje la función de Descanso con los resultados esperados y sin errores.

    • Con el adb, activa la función de Descanso del dispositivo de prueba mientras tu app está en ejecución.
      • Prueba todos los casos prácticos que desencadenen mensajes de Firebase Cloud Messaging.
      • Prueba todos los casos prácticos que usen alarmas o tareas.
      • Elimina todas las dependencias a servicios en segundo plano.
    • Activa el modo App Standby de la app
      • Prueba todos los casos prácticos que desencadenen mensajes de Firebase Cloud Messaging.
      • Prueba todos los casos prácticos que usen alarmas.
  • Que administre correctamente las fotos y los videos nuevos que se tomen

  • Que sea capaz de compartir archivos con otras apps: Prueba cualquier caso de uso en el que se compartan datos de archivos con cualquier otra app (incluso otra app del mismo desarrollador).

    • Comprueba que el contenido sea visible en la otra app y no desencadene fallas.

Más información

Acepta recibir correos electrónicos en Google Play Console para que te enviemos anuncios y actualizaciones importantes de Android y Google Play, incluido el boletín informativo mensual para socios.