Presentación de Android 9 Pie
jueves, 30 de agosto de 2018
Publicado por Dave Burke, vicepresidente de Ingeniería

Después de más de un año de desarrollo y meses de pruebas realizadas por usuarios pioneros, estamos listos para presentar Android 9 Pie, la última versión de Android, al mundo.Read More
Publicado por Dave Burke, vicepresidente de Ingeniería

Después de más de un año de desarrollo y meses de pruebas realizadas por usuarios pioneros, estamos listos para presentar Android 9 Pie, la última versión de Android, al mundo.
Android 9 aprovecha el poder del aprendizaje automático para que sus teléfonos sean más inteligentes y simples, y respondan a sus preferencias. Podrán conocer todo acerca de las características nuevas para consumidores aquí. Para los desarrolladores, Android 9 incluye muchas alternativas nuevas a fin de mejorar tus apps y crear nuevas experiencias para impulsar la captación.
En el proceso, recibimos de ustedes muchísimos comentarios (más de mil errores y solicitudes de características). ¡Gracias! Fueron más de 140 000 quienes probaron nuestras compilaciones preliminares en el programa de Android Beta y siete de nuestros socios fabricantes de dispositivos llevaron nuestra versión beta a sus dispositivos insignia, lo cual permitió que usuarios de todo el mundo nos proporcionaran sus comentarios también.
Hoy incorporaremos el código abierto en el Proyecto de código abierto de Android (AOSP), iniciaremos la implementación de Android 9 para todos los usuarios de Pixel en el mundo y haremos llegar el sistema operativo a muchos más dispositivos en los próximos meses.
Continuamos propiciando el avance de Android como la plataforma abierta más importante para que desarrolladores de todo el mundo creen sus negocios. Con Android 9 (sumado a las capacidades nuevas y poderosas de Google Play para apps y juegos), nos comprometemos a ayudarlos a crear experiencias fabulosas, y a llegar a los usuarios indicados y mantenerlos interesados de manera segura y rentable en todo el mundo.
¿Qué hay en Android 9?
Un smartphone más inteligente, con aprendizaje automático como elemento central.
Android 9 permite que sus teléfonos incorporen información a medida que los usan, al asimilar sus preferencias y aplicar ajustes automáticos. Desde ayudar a los usuarios a aprovechar al máximo la duración de batería hasta mostrar las mejores partes de las apps que usan todo el tiempo, cuando estos más lo necesitan, Android 9 hace que todo funcione de forma más fluida y durante más tiempo.Adaptive Battery

Nos asociamos con DeepMind para el desarrollo de una característica llamada Adaptive Battery (batería adaptativa), que usa el aprendizaje automático a fin de priorizar recursos de sistema para las apps que más le importan al usuario. Si sus apps están optimizadas para Descanso, App Standby y Límites de segundo plano, Adaptive Battery funcionará de manera directa en sus casos. Si aún no optimizaron sus apps, asegúrense de ver la información en la documentación sobre administración energía para ver su funcionamiento.
Slices
Slices puede ayudar a los usuarios a realizar tareas de manera más rápida al permitir la captación fuera de la experiencia de las apps en pantalla completa. Lo hace a través de plantillas de IU que pueden mostrar contenido completo, dinámico e interactivo de sus apps desde la app de Búsqueda de Google y luego en otros espacios, como el Asistente de Google. Pueden obtener más información sobre la compilación de Slices para mejorar sus apps aquí.
App Actions
Apps Actions es una nueva manera de hacer más visibles sus app y aumentar la captación. Las acciones aprovechan del aprendizaje automático para lograr que sus usuarios visibilicen sus apps en el momento correcto, según los intents semánticos de sus apps y el contexto del usuario.Durante las próximas semanas, compartiremos más detalles sobre el registro de sus apps para manejar uno o más intents de usuario, de modo que estas puedan habilitarse para App Actions y mostrarse en varias superficies de Google y Android en respuesta a consultas del usuario.
Text Classifier y Smart Linkify

Hemos extendido los modelos de AA que identifican las entidades en entradas de contenido o texto para admitir más tipos como fechas y números de vuelos a través de la TextClassifier API. Smart Linkify permite aprovechar los modelos TextClassifier a través de la Linkify API; se incluyen opciones enriquecidas para acciones subsiguientes rápidas por parte del usuario. Smart Linkify también ofrece mejoras considerables en la precisión de la detección y el rendimiento.
Neural Networks API 1.1
En Android 9 se agrega una versión actualizada de la Neural networks API, para extender la compatibilidad de Android con el aprendizaje automático acelerado en el dispositivo. Neural Networks 1.1 agrega compatibilidad con nueve operaciones nuevas: Pad, BatchToSpaceND, SpaceToBatchND, Transpose, Strided Slice, Mean, Div, Sub y Squeeze. Una forma típica de aprovechar las API es a través de TensorFlow Lite.Aprovechen al máximo sus teléfonos, de manera más sencilla
Nos entusiasma la posibilidad de hacer que sus teléfonos sean más inteligentes. Sin embargo, también es importante que la tecnología se repliegue ante los usuarios. En Android 9, hicimos evolucionar la IU de Android de modo que fuera más simple y accesible; en el caso de los desarrolladores, estos cambios ayudan a mejorar la manera en que los usuarios encuentran, usan y administran las apps.
Navegación del sistema nuevo
Android 9 presenta una nueva navegación para el sistema nuevo en la que trabajamos durante más de un año. El diseño nuevo permite que la función multitarea de Android sea más accesible y facilita el descubrimiento de apps. Puedes aplicar deslizamiento hacia arriba desde cualquier punto para ver, en pantalla completa, vistas previas de las apps usadas recientemente y regresar a una de ellas con un simple toque.Recorte de pantalla
Ahora sus apps pueden aprovechar al máximo las últimas pantallas de borde a borde a través de la compatibilidad con recorte de pantalla en Android 9. Para la mayoría de las apps, la compatibilidad con recorte de pantalla no tiene errores y el sistema administra la altura de la barra de estado para separar su contenido del recorte. Si tienen contenido inmersivo, pueden usar las API de recortes de pantalla para comprobar la posición y la forma del recorte, y solicitar el diseño de pantalla completa a su alrededor. Para ayudar con el desarrollo y las pruebas, agregamos una Developer Option que estimula varias formas de recorte en cualquier dispositivo.
Las apps con contenido inmersivo pueden mostrar contenido en pantalla completa en dispositivos con recorte de pantalla.
Notificaciones y respuestas inteligentes
Con Android 9, las notificaciones son aún más útiles y productivas. Las apps de mensajería aprovechan las nuevas MessagingStyle API para mostrar conversaciones, adjuntar fotos y calcos e incluso sugerir respuestas. Pronto podrán usar ML Kit a fin de generar sugerencias de respuestas inteligentes para sus apps.
Notificaciones de MessagingStyle con conversaciones y respuestas inteligentes (izquierda), e imágenes y calcos (derecha).
Text Magnifier

En Android 9, agregamos un widget Magnifier para mejorar la experiencia se selección de texto del usuario. El widget Magnifier permite que los usuarios posicionen con precisión el cursor o los controladores de selección de texto observando texto ampliado a través de un subpanel arrastrable. Pueden adjuntarlo a cualquier vista que unida a una ventana, para poder usarla en widgets personalizados o durante la representación personalizada de texto. El widget Magnifier también puede proporcionar una versión ampliada de cualquier vista o superficie, no solo texto.
Consulten nuestra entrada de blog reciente para obtener más información sobre esto y otras características de Text, como PrecomputedText la altura de línea y la alineación de referencia de texto.
Seguridad y privacidad para usuarios
Solicitud biométrica

Con diferentes sensores biométricos aplicados para la autenticación, hemos llevado a cabo una experiencia más uniforme en sensores distintos tipos y apps. Android 9 presenta un diálogo administrado por el sistema para solicitar al usuario cualquier tipo de autenticación biométrica compatible. Las apps ya no necesitan compilar su propio diálogo; como alternativa, usan la BiometricPrompt API para mostrar el diálogo de sistema estándar. Además de Fingerprint (se incluyen sensores en pantalla), la API admite autenticación de rostros e iris.
Si sus apps dibujan sus propios diálogos de autenticación de huellas dactilares, deben comenzar a usar la BiometricPrompt API lo más pronto posible. Consulten esta entrada para obtener más información.
Confirmación protegida
Android 9 presenta la confirmación protegida de Android, que usa el entorno de ejecución seguro (TEE) para garantizar que se muestre una string de solicitud y que el usuario la confirme. Solo después de la confirmación exitosa del usuario, el TEE firmará la string de solicitud que la app puede verificar.Una protección más sólida para las claves privadas
Agregamos StrongBox como un tipo nuevo de KeyStore nuevo, lo cual proporciona asistencia de API para dispositivos que otorgan almacenamiento clave en hardware resistente a la manipulación con una CPU aislada, RAM y secure flash. Pueden establecer si sus claves deben protegerse a través de un chip de seguridad de StrongBox en su KeyGenParameterSpec.DNS en TLS
Android 9 incorpora compatibilidad integrada para DNS por TLS, lo que actualiza automáticamente las consultas de DNS a TLS si el servidor DNS de una red lo admite. Los usuarios pueden administrar el comportamiento de DNS por TLS en un modo de DNS privado en la configuración de redes e Internet. Las apps que realizan sus propias consultas de DNS pueden usar una API nueva, LinkProperties.isPrivateDnsActive(), para verificar el modo DNS. Pueden encontrar más información en esta entrada.HTTPS de forma predeterminada
Como parte de un esfuerzo mayor para trasladar todo el tráfico de red de cleartext (HTTP sin encriptar) a sitios web protegidos con TLS, cambiaremos los ajustes predeterminados de la Configuración de seguridad de la red para bloquear todo el tráfico de cleartext. Deberán establecer conexiones a través de TLS, a menos que indiquen explícitamente que desean usar cleartext para dominios específicos. Encontrarán información detallada aquí.Reducciones de seguridad basadas en compiladores
En Android 9, ampliamos el uso de reducciones de niveles de compiladores para reforzar la plataforma a través de la detección comportamientos peligrosos en el tiempo de ejecución. Las técnicas de Control Flow Integrity (CFI) ayudan a prevenir ataques de reutilización de código y la ejecución de códigos arbitrarios. En Android 9, expandimos enormemente el uso de CFI dentro del marco de trabajo de medios y otros componentes críticos para la seguridad, como NFC y Bluetooth. También presentamos la compatibilidad con el kernel de CFI en el kernel común de Android al realizar compilaciones con LLVM.También expandimos nuestro uso de limpiadores de desbordamiento de Integer para mitigar daños de memoria y vulnerabilidades de anuncios de información. Priorizamos los limpiadores en bibliotecas en las cuales existen vulnerabilidades pasadas o se procesa una entrada no confiable y compleja, como libui, libnl, libmediaplayerservice y otras. Consulten esta entrada para obtener más información.
Privacidad para los usuarios
Android 9 protege la privacidad de diferentes maneras. El sistema restringe el acceso al micrófono, la cámara y todos los sensores de SensorManager de apps inactivas. Mientras la UID de tu app está inactiva, el micrófono notifica audio vacío y los sensores dejan de comunicar eventos. Las cámaras usadas por sus apps se desconectan y generan un error si las apps intentan usarlas. En la mayoría de los casos, estas restricciones no deberían generar problemas nuevos para las apps existentes, pero recomendamos eliminar estas solicitudes de sus apps.Android 9 también permite al usuario controlar el acceso al identificador
build.serial
de la plataforma disponiéndolo detrás del permiso READ_PHONE_STATE. Para acceder al identificador build.serial
, deben usar el método Build.getSerial().
Pueden obtener más información acerca de los cambios de privacidad aquí.
Experiencias nuevas con la cámara, el audio y los gráficos
API de varias cámaras y otras actualizaciones de la cámara
Con Android 9, pueden abrir flujos desde dos o más cámaras físicas de forma simultánea en dispositivos compatibles con la API de varias cámaras. En dispositivos con dos cámaras frontales o posteriores, pueden crear características innovadoras que no son posibles con una sola cámara, como el zoom uniforme, el bokeh y la visión estéreo. La API también permite llamar a una transmisión de cámara lógica o fusionada que automáticamente alterna entre dos o más cámaras.Entre otras mejoras en la cámara, se incluyen nuevos parámetros de sesión, que ayudan a reducir demoras durante la captura inicial, y el uso compartido en Surface, que permite a los clientes de la cámara manejar varios casos de uso sin tener que detener e iniciar la transmisión de la cámara. También agregamos API para brindar compatibilidad con flash basada en la pantalla y acceso a marcas de tiempo OIS para lograr estabilidad en la imagen y efectos especiales en el nivel de la app.
Video HDR VP9, compresión de imagen HEIF
Android 9 incorpora compatibilidad integrada con (HDR) VP9 Perfil 2 para que ahora puedan ofrecer películas en HDR a sus usuarios en dispositivos que admitan HDR.Nos entusiasma agregar codificación de imágenes HEIF (heic) a la plataforma. HEIF es un formato popular para fotos que mejora la compresión para el guardado de datos en medios de almacenamiento y redes. Con dispositivos Android 9 compatibles con la plataforma, enviar y utilizar imágenes HEIF desde sus servidores backend es fácil. Una vez que se aseguren de que sus apps sean compatibles con este formato de datos para compartir y mostrar contenido, prueben el HEIF como formato de almacenamiento de imágenes en estas. Pueden realizar una conversión de jpeg a heic usando ImageDecoder o BitmapFactory para obtener un mapa de bits a partir de jpeg, y usar HeifWriter en la biblioteca AndroidX para escribir imágenes HEIF estáticas desde el búfer de bytes YUV, Surface o un mapa de bits.
Audio optimizado con Dynamics Processing
La Dynamics Processing API permite usar un efecto nuevo de audio para aislar frecuencias específicas y reducir sonidos altos o aumentar sonidos suaves para mejorar la calidad acústica de sus apps. Por ejemplo, pueden mejorar el sonido de alguien que habla suavemente en un entorno ruidoso, distante o de acústica compleja. La API permite acceder a un efecto de procesamiento dinámico de varias etapas y bandas que incluye un ecualizador previo, un compresor de varias bandas, un ecualizador posterior y un limitador vinculado.
ImageDecoder para mapas de bits y elementos de diseño
Una ImageDecoder API ofrece una alternativa más sencilla para decodificar imágenes a mapas de bits o elementos de diseño. Pueden crear un mapa de bits o elemento de diseño a partir de un búfer de bytes, un archivo o un URI. La API ofrece varias ventajas en comparación con BitmapFactory, incluida la compatibilidad con ajuste de escala exacto, decodificación en un solo paso en memoria de hardware, compatibilidad con posprocesamiento en la decodificación y decodificación de imágenes animadas. Pueden obtener más información aquí.Conectividad y ubicación
Wi-Fi RTT para posicionamiento en interiores

Android 9 les permite compilar características de posicionamiento en interiores en sus apps a través de la compatibilidad de la plataforma con el protocolo Wi-Fi IEEE 802.11mc, también conocido como tiempo de ida y vuelta de Wi-Fi (RTT). En los dispositivos Android 9 con hardware correspondiente, permiso de ubicación y ubicación habilitada, sus apps podrán usar RTT API para medir la distancia a los puntos de acceso (PA) Wi-Fi cercanos. No es necesario que el dispositivo se conecte a los PA para usar RTT, y mantener la privacidad. Solo el teléfono puede determinar la distancia; los PA no pueden hacerlo.
Al conocer la distancia a 3 o más PA, pueden calcular la posición del dispositivo con una precisión de 1 a 2 metros. Con esta precisión, puedes admitir casos de uso como la navegación en instalaciones y servicios específicos basados en la ubicación, como el control de voz inequívoco (p. ej., “Encender esta luz”) e información basada en la ubicación (p. ej., “¿Hay ofertas especiales relacionadas con este producto?”).
Sensibilidad al costo de datos en JobScheduler
JobScheduler es el servicio central de Android pensado para ayudarlos a administrar tareas programadas o trabajos en Descanso, App Standby y Límites de segundo plano. En Android 9, JobScheduler controla mejor las tareas relacionadas con la red para el usuario aplicando coordinación con señales de estado de red que los proveedores proporcionan por separado. Ahora las tareas pueden declarar su tamaño de datos estimado, realizar búsquedas anticipadas de señal y especificar requisitos de red detallados; los proveedores pueden notificar congestión o falta de medición en las redes. JobScheduler luego administra el trabajo de acuerdo con el estado de la red. Por ejemplo, cuando una red está congestionada, JobScheduler podría diferir las solicitudes de red de magnitud grande. Cuando la red es no medida, puede ejecutar tareas de búsqueda anticipada para mejorar la experiencia del usuario, como la búsqueda anticipada de encabezados.Abrir Mobile API para pagos de NFC y transacciones seguras
Android 9 suma la implementación de GlobalPlatform Open Mobile API en Android. En los dispositivos compatibles, las apps pueden usar la OMAPI API para acceder a elementos seguros (SE) y habilitar pagos con tarjeta inteligente y otros servicios seguros. Una capa de abstracción de hardware (HAL) proporciona la API subyacente para enumerar diferentes elementos seguros (eSE, UICC, etc.) disponibles.Rendimiento de las apps
Rendimiento de ART
Android 9 ofrece rendimiento y eficiencia para todas las apps a través del tiempo de ejecución ART. Ampliamos el uso de perfiles de ejecución por parte de ART para optimizar las apps y reducir el consumo de memoria del código de app compilado. ART ahora usa información de perfil para reescribir archivos DEX en el dispositivo, con reducciones de hasta el 11% en diferentes apps populares. Esperamos que estas reducciones se correlacionen estrechamente con reducciones en el consumo de memoria del sistema por parte de los archivos DEX y con menores tiempos de inicio para sus apps.Optimización para Kotlin
Kotlin es un lenguaje de primer nivel en Android. ¡Si aún no lo probaron, deberían hacerlo! Tenemos un firme compromiso con Kotlin en Android y continuamos ampliando la compatibilidad, incluida la optimización del rendimiento de su código. En Android 9, verán los primeros resultados de este trabajo; mejoramos varias optimizaciones del compilador, en especial las que apuntan a bucles, para lograr un mejor rendimiento. También seguimos trabajando junto con JetBrains para optimizar el código que genera Kotlin. Pueden obtener todas estas mejoras de rendimiento recientes de Kotlin con solo mantener actualizado el complemento de Kotlin de Android Studio.Hoy lanzaremos una actualización para Android 9. Se trata del SDK de la API 28 (rev. 6), que contiene anotaciones de nulabilidad en alguna de las API usadas con mayor frecuencia. Proporcionaremos más detalles sobre esto en una publicación futura.
Modern Android
Como parte de Android 9, modernizaremos las bases de Android y las apps que se ejecutan en él, en el marco de nuestras inversiones sostenidas y profundas en seguridad, rendimiento y estabilidad.Como lo anunciamos el año pasado, Google Play solicitará que todas las actualizaciones de la app se orienten a Android Oreo (targetSdkVersion 26 o versiones posteriores) para noviembre de 2018. En línea con eso, si sus apps se orientan a una plataforma anterior a Android 4.2 (nivel de API 17), los usuarios que las instalen verán un diálogo de advertencia después de ese día. Esta es una lista de verificación de recursos para obtener ayuda y asistencia cuando se realizan migraciones. Esperamos ver que sus apps aprovechen al máximo este Android moderno.
¡Preparen sus apps para Android 9!

Android 9 está disponible a partir de hoy para los usuarios de Pixel y en los próximos meses se ofrecerá para otros dispositivos, por lo cual es importante que prueben sus apps para la compatibilidad tan pronto como sea posible. Simplemente, instalen sus apps actuales de Google Play en un dispositivo o un emulador con Android 9. Cuando trabajen en los flujos, asegúrense de que el funcionamiento y el aspecto de sus apps sean buenos, y de que administren los cambios de comportamiento de Android 9 de manera apropiada.
También busquen en sus apps aplicaciones de interfaces que no pertenezcan al SDK. Android 9 restringe el acceso a las interfaces seleccionadas que no pertenecen al SDK. Por ello, deben recurrir menos a ellas. Para obtener más información, consulten nuestra publicación reciente.
Una vez que apliquen las actualizaciones necesarias, les recomendamos realizar la publicación en Google Play de inmediato sin cambiar la plataforma a la que apunta la app. Esto les permite garantizar una gran experiencia para los usuarios de Android 9 mientras trabajan para mejorar sus apps con API y perfilamiento de Android 9.
Mejoren sus app con características y API de Android 9
Cuando estén listos, pueden obtener información más detallada sobre Android 9 y realizar compilaciones con las características y las API nuevas en Android 9.Para comenzar, simplemente descarguen el SDK oficial de la API 28 y las últimas herramientas e imágenes del emulador a Android Studio 3.1, o usen la ultima versión de Android Studio 3.2. Luego, actualicen la compileSdkVersion y targetSdkVersion de sus proyectos al nivel de API 28. Cuando cambien su objetivo, asegúrense de que sus apps admitan todos los cambios de comportamiento correspondientes.
No bien pronto estén listos, publiquen sus actualizaciones de APK en Google Play. Una estrategia común consiste en usar la función de pruebas beta de Google Play con el fin de recibir comentarios anticipados de un grupo de usuarios reducido y luego realizar una implementación por etapas para la producción.
Visiten el sitio de Android 9 para encontrar más información y documentación para desarrolladores. También consulten este video y la playlist de Android de Google I/O para obtener más información sobre las novedades de Android 9 para desarrolladores.
Disponible para un dispositivo cercano
A partir de hoy, comenzará a implementarse una actualización inalámbrica para Android 9 en teléfonos Pixel. Los dispositivos que participaron en el programa de beta de Sony Mobile, Xiaomi, HMD Global, Oppo, Vivo, OnePlus y Essential, y todos los dispositivos de Android One que reúnan las condiciones, recibirán esta actualización al final del otoño. También estamos trabajando con varios socios para lanzar dispositivos con Android 9 o actualizar otros a esta versión este año.Como siempre, las imágenes de sistema para dispositivos Pixel se encuentran disponibles aquí para actualizaciones y descargas manuales. Si buscan la fuente de Android 9, la encontrarán aquí en el repositorio del Proyecto de código abierto de Android, en las ramas de Android 9.
Lo que viene
Ahora que llegamos al momento del lanzamiento oficial, concluiremos la etapa de la Developer Preview. Pronto cerraremos le notificación de errores nuevos en el seguimiento de errores de Developer Preview. Si tienen comentarios, no duden en presentar un problema nuevo en Android 9, en el área de seguimiento de problemas del AOSP.Gracias nuevamente a los numerosos desarrolladores y usuarios pioneros que participaron en la Android 9 Developer Preview y el beta público. Sus contribuciones han sido claves para lograr que la plataforma de Android 9 ofrezca excelentes resultados a los desarrolladores y los consumidores.