Novedades de productos

Cuarta versión beta de Android 17

Lectura de 4 min
Daniel Galpin
Developers Advocate

Android 17 alcanzó la versión beta 4, la última versión beta programada de este ciclo de lanzamiento, un hito fundamental para la compatibilidad de apps y la estabilidad de la plataforma. Ya sea que estés ajustando la experiencia del usuario de tu app, asegurándote de que la renderización de extremo a extremo sea fluida o aprovechando las APIs más recientes, la versión beta 4 proporciona el entorno casi final que necesitas para realizar pruebas. 

Prepara tus apps, bibliotecas, herramientas y motores de juegos

Si desarrollas un SDK de Android, una biblioteca, una herramienta o un motor de juego, es fundamental que prepares las actualizaciones necesarias ahora para evitar que los desarrolladores de apps y juegos indirectos se bloqueen por problemas de compatibilidad y permitirles orientarse a las funciones más recientes del SDK. Informa a tus desarrolladores descendentes si se necesitan actualizaciones para admitir Android 17 por completo.

Android17_Timeline_01_V02.png

Las pruebas implican instalar tu app de producción o una app de prueba que use tu biblioteca o motor con Google Play o por otros medios en un dispositivo o emulador que ejecute la versión beta 4 de Android 17. Revisa todos los flujos de tu app y busca problemas funcionales o de IU. Cada versión de Android contiene cambios en la plataforma que mejoran la privacidad, la seguridad y la experiencia general del usuario. Revisa los cambios en el comportamiento que afectan a las apps que se ejecutan en Android 17 y las que se orientan a Android 17 para enfocar tus pruebas, incluidos los siguientes:

  • Cambio de tamaño en pantallas grandes: Una vez que te orientes a Android 17, ya no podrás inhabilitar el mantenimiento de las restricciones de orientación, cambio de tamaño y relación de aspecto en pantallas grandes.
  • Carga dinámica de códigos: Si tu app se orienta a Android 17 o versiones posteriores, la protección de carga dinámica de códigos (DCL) más segura introducida en Android 14 para archivos DEX y JAR ahora se extiende a las bibliotecas nativas. Todos los archivos nativos cargados con System.load() deben marcarse como de solo lectura. De lo contrario, el sistema arrojará UnsatisfiedLinkError.
  • Habilita CT de forma predeterminada: La transparencia de certificados (CT) está habilitada de forma predeterminada. (En Android 16, CT está disponible, pero las apps debían habilitarla.)
  • Protecciones de red local: Las apps que se orientan a Android 17 o versiones posteriores tienen bloqueado el acceso a la red local de forma predeterminada. Si es posible, cambia a usar selectores que preserven la privacidad y usa el nuevo ACCESS_LOCAL_NETWORK permiso para obtener acceso amplio y persistente.
  • Endurecimiento de audio en segundo plano: A partir de Android 17, el framework de audio aplica restricciones en las interacciones de audio en segundo plano, incluida la reproducción de audio, las solicitudes de foco de audio y las APIs de cambio de volumen. Según tus comentarios, realizamos algunos cambios desde la versión beta 2, incluida la limitación de targetSDK mientras se usa la aplicación en primer plano y la exención del audio de alarma. Los detalles completos están disponibles en la guía actualizada.

Límites de memoria de la app

Android presenta límites de memoria de la app basados en la RAM total del dispositivo para crear un entorno más estable y determinista para tus aplicaciones y usuarios de Android. En Android 17, los límites se establecen de forma conservadora para establecer líneas de base del sistema, orientadas a fugas de memoria extremas y otros valores atípicos antes de que provoquen inestabilidad en todo el sistema, lo que genera saltos en la IU, agotamiento de la batería y la eliminación de apps. Si bien anticipamos un impacto mínimo en la gran mayoría de las sesiones de apps, recomendamos las siguientes prácticas recomendadas de memoria, incluido el establecimiento de una línea de base para la memoria.

En la implementación actual, getDescription en ApplicationExitInfo contendrá la cadena "MemoryLimiter" si tu app se vio afectada. También puedes usar la creación de perfiles basada en activadores con TRIGGER_TYPE_ANOMALY para obtener volcados de montón que se recopilan cuando se alcanza el límite de memoria.

unnamed (2).png
La tarea LeakCanary en el Generador de perfiles de Android Studio

Para ayudarte a encontrar fugas de memoria, Android Studio Panda agrega la integración de LeakCanary directamente en el Generador de perfiles de Android Studio como una tarea dedicada, contextualizada dentro del IDE y completamente integrada con tu código fuente.

Una huella de memoria más ligera se traduce directamente en un rendimiento más fluido, una mayor duración de batería y una experiencia premium en todos los factores de forma. Construyamos juntos un futuro más rápido y confiable para el ecosistema de Android.

Activadores de creación de perfiles para anomalías de apps

Android presenta un servicio de detección de anomalías integrado en el dispositivo que supervisa los comportamientos que consumen muchos recursos y las posibles regresiones de compatibilidad. Integrado con ProfilingManager, este servicio permite que tu app reciba artefactos de creación de perfiles activados por eventos específicos detectados por el sistema.

Usa el activador TRIGGER_TYPE_ANOMALY para detectar problemas de rendimiento del sistema, como llamadas de Binder excesivas y uso excesivo de memoria. Cuando una app incumple los límites de memoria definidos por el SO, el activador de anomalías permite que los desarrolladores reciban volcados de montón específicos de la app para ayudar a identificar y solucionar problemas de memoria. Además, para el spam excesivo de Binder, el activador de anomalías proporciona un perfil de muestreo de pila en las transacciones de Binder.

Esta devolución de llamada de la API se produce antes de cualquier aplicación impuesta por el sistema. Por ejemplo, puede ayudar a los desarrolladores a recopilar datos de depuración antes de que el sistema finalice la app debido a que se exceden los límites de memoria. Para comprender cómo usar el activador, consulta nuestra documentación sobre la creación de perfiles basada en activadores.

    val profilingManager = applicationContext.getSystemService(ProfilingManager::class.java)
    val triggers = ArrayList<ProfilingTrigger>()  
    triggers.add(ProfilingTrigger.Builder(
                 ProfilingTrigger.TRIGGER_TYPE_ANOMALY))
    val mainExecutor: Executor = Executors.newSingleThreadExecutor()
    val resultCallback = Consumer<ProfilingResult> { profilingResult ->
        if (profilingResult.errorCode != ProfilingResult.ERROR_NONE) {
            // upload profile result to server for further analysis          
            setupProfileUploadWorker(profilingResult.resultFilePath)
        } 
    profilingManager.registerForAllProfilingResults(mainExecutor, resultCallback)
    profilingManager.addProfilingTriggers(triggers)
}

Criptografía poscuántica (PQC) en Android Keystore

Android Keystore agregó compatibilidad con ML-DSA (algoritmo de firma digital basado en módulo-retículo) estandarizado por NIST. En los dispositivos compatibles, puedes generar claves ML-DSA y usarlas para producir firmas seguras para la cuántica, por completo en el hardware seguro del dispositivo. Android Keystore expone las variantes de algoritmo ML-DSA-65 y ML-DSA-87 a través de las APIs estándar de Java Cryptographic Architecture: KeyPairGeneratorKeyFactorySignature. Para obtener más detalles, consulta nuestra documentación para desarrolladores.

KeyPairGenerator generator = KeyPairGenerator.getInstance(
        ML-DSA-65, "AndroidKeyStore");
generator.initialize(
        new KeyGenParameterSpec.Builder(
                my-key-alias,
                KeyProperties.PURPOSE_SIGN | KeyProperties.PURPOSE_VERIFY)
        .build());
KeyPair keyPair = generator.generateKeyPair();

Comienza a usar Android 17

Puedes inscribir cualquier dispositivo Pixel compatible para obtener esta y futuras actualizaciones de la versión beta de Android de forma inalámbrica. Si no tienes un dispositivo Pixel, puedes usar las imágenes del sistema de 64 bits con Android Emulator en Android Studio.

Si actualmente estás en el programa de versiones beta de Android, recibirás una actualización inalámbrica a la versión beta 4.

Sigue informando problemas y enviando solicitudes de funciones en la página de comentarios. Cuanto antes recibamos tus comentarios, más podremos incluir en nuestro trabajo en la versión final.

Para que tengas la mejor experiencia de desarrollo con Android 17, te recomendamos que uses la versión preliminar más reciente de Android Studio (Panda). Una vez que hayas configurado todo, estas son algunas de las acciones que debes realizar:

  • Compila con el nuevo SDK, realiza pruebas en entornos de CI y notifica cualquier problema en nuestra herramienta de seguimiento en la página de comentarios.
  • Prueba tu app actual para verificar la compatibilidad, descubre si tu app se ve afectada por los cambios en Android 17, instala tu app en un dispositivo o emulador que ejecute Android 17 y pruébala de forma exhaustiva.

Actualizaremos las imágenes del sistema de versión preliminar o beta y el SDK con regularidad durante el ciclo de lanzamiento de Android 17. Una vez que hayas instalado una compilación beta, recibirás automáticamente actualizaciones inalámbricas futuras para todas las versiones preliminares y betas posteriores.

Para obtener información completa, visita el sitio para desarrolladores de Android 17.

Únase a la conversación

Tus comentarios siguen siendo nuestro activo más valioso. Ya sea que seas un usuario pionero en el canal Canary o un desarrollador de apps que realiza pruebas en la versión beta 4, considera unirte a nuestras comunidades y enviar comentarios. Queremos saber tu opinión.

Escrito por:

Seguir leyendo