Cumplimiento de los requisitos de nivel objetivo de la API de Google Play

Cuando subes un APK, es necesario que este cumpla con los requisitos de Google Play sobre el nivel de API al que estará orientada la app. A partir del 1 de agosto de 2019, Google Play exigirá que las apps nuevas se orienten como mínimo a Android 9.0 (nivel de API 28), y el mismo requisito será obligatorio para las actualizaciones a partir del 1 noviembre de 2019. Hasta esas fechas, las apps nuevas y las actualizaciones deben orientarse, como mínimo, a Android 8.0 (nivel de API 26).

Toda versión nueva de Android incluye cambios que implican mejoras significativas en cuanto a seguridad y rendimiento, y optimizan la experiencia del usuario de Android en términos generales. Algunos de esos cambios solo se aplican a las apps que declaran su compatibilidad de forma explícita a través del atributo del manifiesto targetSdkVersion (el nivel de API al que está orientada la app).

Si configuras tu app para que se oriente a un nivel de API reciente, eso garantiza que los usuarios puedan beneficiarse de estas mejoras y permite que la app se ejecute 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 que los usuarios disfruten de ella.

Este documento resalta los puntos importantes que debes tener en cuenta cuando actualices el nivel de API al que está orientada tu app con el fin de cumplir con los requisitos de Google Play. Para continuar, haz clic sobre el nivel de API actual de tu app:

Nota: Si tu archivo de Gradle contiene elementos del manifiesto, puedes confirmar o cambiar el valor actual de targetSdkVersion en ese archivo, según se describe en la sección Cómo configurar tu compilación. De manera alternativa, puedes usar el atributo android:targetSdkVersion en el archivo de manifiesto, según se describe en la documentación del elemento <uses-sdk> del manifiesto.

Versión anterior a Android 5.0 (nivel de API 21)

Consulta la página "Cambios en el 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.

Versión anterior a Android 6.0 (nivel de API 23)

Las siguientes consideraciones se aplican a las apps que se orientan 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, tu app debe estar preparada para manejar el rechazo de las solicitudes de permisos. Por ejemplo, si el usuario rechaza otorgar acceso al GPS del dispositivo, la app debe 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.

Versión anterior a Android 7.0 (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 tu app, ten en cuenta los comportamientos que se describen en la sección Cómo optimizar 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 desencadena una FileUriExposedException. Los desarrolladores que necesiten compartir archivos fuera de sus apps deben implementar 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.

Versión anterior a Android 8.0 (nivel de API 26)

Las siguientes consideraciones se aplican a las apps que se orientan 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.

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

Versiones anteriores a 9.0 (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 página Cambios en el comportamiento.

Cómo modernizar tus apps

Cuando actualices el nivel de API, considera adoptar funciones recientes de la plataforma que te permitan modernizar tus apps para el deleite 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 26. Algunos proveedores de SDK lo publican en el manifiesto y otros exigen investigación adicional. Si usas un SDK que no es compatible con la API 26, establece como prioridad solucionar el problema con el proveedor del SDK.

Ten en cuenta que la targetSdkVersion de tu app o juego podría restringir el acceso a bibliotecas privadas de la plataforma 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 Android Support Library que estés usando. Al igual que siempre, debes asegurarte de que la compileSdkVersion de tu app sea compatible con la versión más reciente de Android Support Library.

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

Prueba tu app

Luego de actualizar el nivel de API de tu app y las funciones correspondientes, se recomienda que pruebes algunos de los casos prácticos más importantes. Las siguientes sugerencias no son exhaustivas, pero te pueden servir como guía en el proceso de prueba. Se recomienda que pruebes lo siguiente:

  • Que tu app se compile a la API 26 sin errores ni advertencias
  • Que la app cuente con una estrategia para casos en los que los usuarios rechacen solicitudes de permisos, y los solicite de manera directa. Para ello, haz lo siguiente:
    • 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 prácticos más importantes 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 tu 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 todos los casos prácticos que compartan datos de archivos con otras apps (incluso si las otras apps pertenecen al 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.