De cara al futuro, hoy compartimos la primera vista previa para desarrolladores de Android P , la versión más nueva de Android. Se trata de una versión básica inicial solo para desarrolladores: usted es el técnico de pruebas y los revisores más confiables 😉 Los comentarios iniciales de nuestra comunidad de desarrolladores son cruciales para ayudarnos a desarrollar la plataforma para satisfacer sus necesidades. Nos encantaría que comenzaras a ejercitar las nuevas funciones y API en P, y como siempre, dependemos de tus comentarios e ideas, así que ¡por favor danos tu opinión !

Esta primera vista previa de desarrollador de Android P es solo el comienzo. Tendremos mucho más para compartir en Google I / O en mayo, estad atentos.

Nuevas funciones para probar en tus aplicaciones

A continuación presentamos algunas de las características interesantes de esta primera vista previa de Android P que queremos que pruebes y aportes .

Posicionamiento en interiores con Wi-Fi RTT

El posicionamiento preciso en interiores ha sido un desafío de larga data que abre nuevas oportunidades para los servicios basados ​​en la ubicación. Android P agrega soporte de plataforma para el protocolo WiFi IEEE 802.11mc, también conocido como WiFi Round-Trip-Time (RTT), para que pueda aprovechar el posicionamiento interior en sus aplicaciones.

En los dispositivos Android P con soporte de hardware, permiso de ubicación y ubicación habilitados, sus aplicaciones pueden usar API de RTT para medir la distancia a puntos de acceso WiFi (AP) cercanos. El dispositivo no necesita conectarse a los AP para usar RTT, y para mantener la privacidad, solo el teléfono puede determinar la distancia, no los AP.

Conociendo la distancia a 3 o más AP, puede calcular la posición del dispositivo con una precisión de 1 a 2 metros. Con esta precisión, puedes construir nuevas experiencias como la navegación dentro del edificio; servicios basados ​​en la ubicación de grano fino, como el control de voz desambiguado (por ejemplo, ‘Encienda esta luz’); e información basada en la ubicación (p. ej., ‘¿Hay ofertas especiales para este producto?’).

Soporte de recorte de pantalla

Ahora las aplicaciones pueden aprovechar al máximo las últimas pantallas de dispositivos con contenido de pantalla completa. Agregamos recorte de pantalla en la plataforma, junto con las API que puede usar para administrar cómo se muestra su contenido.

El soporte de recorte funciona perfectamente para aplicaciones, con el sistema administrando la altura de la barra de estado para separar su contenido del recorte. Si tiene contenido crítico e inmersivo, también puede usar nuevas API para verificar la forma del corte y solicitar un diseño de pantalla completa a su alrededor. Puede verificar si el dispositivo actual tiene un corte llamando a getDisplayCutout () , y luego determinar la ubicación y la forma del área recortada usando DisplayCutout . Un nuevo atributo de diseño de ventana, layoutInDisplayCutoutMode , le permite indicarle al sistema cómo y cuándo diseñar su contenido en relación con el área recortada. Los detalles están aquí .

Para que sea más fácil construir y probar la compatibilidad de corte en su aplicación, hemos agregado una opción de desarrollador que simula un corte en cualquier dispositivo. Recomendamos probar sus aplicaciones existentes con el recorte de pantalla habilitado para garantizar que su contenido se muestre correctamente.

Las aplicaciones con contenido inmersivo pueden mostrar contenido de pantalla completa en dispositivos con un recorte de pantalla.

Notificaciones de mensajería mejoradas

En Android P, hemos priorizado la mejora de la visibilidad y la función en las notificaciones. Pruebe el nuevo estilo de notificación MessagingStyle : resalta quién está enviando mensajes y cómo puede responder. Puede mostrar conversaciones, adjuntar fotos y calcomanías, e incluso sugerir respuestas inteligentes. Ver los detalles aquí .

En las notificaciones de MessagingStyle, ahora puede mostrar conversaciones y respuestas inteligentes [izquierda] e incluso adjuntar imágenes y calcomanías [derecha].

API multi-cámara

Ahora puede acceder a transmisiones simultáneamente desde dos o más cámaras físicas en dispositivos que ejecutan Android P. En dispositivos con cámaras de dos o dos caras, puede crear características innovadoras que no son posibles con una sola cámara, como el zoom sin fisuras, el bokeh y visión estéreo La API también le permite llamar a una secuencia de cámara lógica o fusionada que cambia automáticamente entre dos o más cámaras. Estamos ansiosos por ver sus nuevas y emocionantes creaciones, ya que los dispositivos con Android P compatibles con varias cámaras llegarán al mercado el próximo año.

Otras mejoras en la cámara incluyen nuevos parámetros de sesión que ayudan a reducir los retrasos durante la captura inicial y el uso compartido de Surface que permite a los clientes de la cámara manejar varios casos de uso sin la necesidad de detener e iniciar la transmisión de la cámara. También hemos agregado API para soporte de flash basado en pantalla y acceso a marcas de tiempo OIS para estabilización de imagen de nivel de aplicación y efectos especiales.

ImageDecoder para bitmaps y dibujables

Android P te ofrece una forma más fácil de decodificar imágenes en mapas de bits o objetosextraíbles: ImageDecoder , que desaprueba BitmapFactory . ImageDecoder le permite crear un mapa de bits o dibujable a partir de un búfer, archivo o URI de bytes. Ofrece varias ventajas sobre BitmapFactory, que incluye soporte para escalamiento exacto, decodificación de un solo paso para la memoria de hardware, soporte para postprocesamiento en decodificación y decodificación de imágenes animadas.

Puede decodificar y escalar a un tamaño exacto simplemente llamando a setResize () con las dimensiones de destino. También puede llamar a getSampledSize () para obtener las dimensiones de la imagen a una velocidad de muestreo específica, luego escalar a esas dimensiones. Si desea post-procesar una imagen, como aplicar esquinas redondeadas para máscaras de círculo o efectos más complicados, puede pasar ImageDecoder a cualquier android.graphics.PostProcessor . También puede crear Drawables directamente, con ImageDecoder.decodeDrawable () . Si la imagen codificada es un GIF animado o WebP, el Drawable será una instancia del nuevo AnimatedImageDrawable .

Vídeo HDR VP9, ​​compresión de imágenes HEIF y API multimedia

Android P agrega soporte integrado para HDR VP9 Profile 2, por lo que ahora puede entregar películas habilitadas para HDR a sus usuarios desde YouTube, Play Movies y otras fuentes en dispositivos con capacidad HDR.

Estamos emocionados de agregar codificación de imagen HEIF ( heic ) a la plataforma. HEIF es un formato popular para fotos que mejora la compresión para ahorrar en almacenamiento y datos de red. Con soporte de plataforma en dispositivos con Android P, es fácil enviar y utilizar imágenes HEIF desde su servidor backend. Una vez que se haya asegurado de que su aplicación sea compatible con este formato de datos para compartir y mostrar, pruebe HEIF como formato de almacenamiento de imágenes en su aplicación. Puede hacer una conversión jpeg-a- heic utilizando ImageDecoder o BitmapFactory para obtener un mapa de bits a partir de jpeg, y puede usar HeifWriter en la nueva biblioteca de soporte alfa para escribir imágenes HEIF desde el buffer de bytes YUV, Surface o Bitmap.

También estamos en el proceso de mejorar y refactorizar las API de medios para que sean más fáciles de desarrollar e integrar: espere más detalles este año.

Sensibilidad de costo de datos en JobScheduler

JobScheduler es el servicio central de Android que lo ayuda a administrar las tareas programadas o trabajar en los cambios de Doze , App Standby y Límites de fondo . En Android P, JobScheduler maneja mejor los trabajos relacionados con la red para el usuario, coordinando con las señales de estado de la red provistas por separado por los operadores.

Los trabajos ahora pueden declarar su tamaño de datos estimado, captura previa de señales y especificar requisitos detallados de la red: los operadores pueden informar que las redes están congestionadas o no. JobScheduler luego gestiona el trabajo de acuerdo con el estado de la red. Por ejemplo, cuando una red está congestionada, JobScheduler puede diferir las grandes solicitudes de red. Cuando no está medido, puede ejecutar trabajos de captación previa para mejorar la experiencia del usuario, como la captación previa de titulares.

Cuando agregue trabajos, intente usar setEstimatedNetworkBytes () , setIsPrefetch () y setRequiredNetwork () para que JobScheduler maneje el trabajo correctamente. Cuando se ejecuta su trabajo, asegúrese de usar el objeto Red devuelto por JobParameters.getNetwork () ; de lo contrario, utilizará implícitamente la red predeterminada del dispositivo que puede no cumplir con sus requisitos, causando el uso no intencionado de datos.

Redes neuronales API 1.1

Presentamos la API de redes neuronales en Android 8.1 para acelerar el aprendizaje automático en el dispositivo en Android. En Android P, estamos ampliando y mejorando esta API, agregando soporte para nueve operaciones nuevas: Pad, BatchToSpaceND, SpaceToBatchND, Transpose, Strided Slice, Mean, Div, Sub y Squeeze. Si tiene un dispositivo Pixel 2, la versión DP1 ahora incluye un controlador Qualcomm Hexagon HVX con aceleración para modelos cuantizados.

Mejoras de autocompletar

En Android P, continuamos mejorando el Autofill Framework basado en los comentarios de los usuarios y desarrolladores. Junto con las correcciones de errores clave, esta versión incluye nuevas API que permiten a los administradores de contraseñas mejorar la experiencia de usuario de Autocompletar, como un mejor filtrado de los conjuntos de datos , la desinfección de las entradas y el modo de compatibilidad . El modo de compatibilidad, en particular, tiene un gran impacto en los usuarios finales porque permite a los administradores de contraseñas adoptar el enfoque de accesibilidad en las aplicaciones que aún no cuentan con soporte completo de Autocompletar, pero sin impactos en el rendimiento o la seguridad. Vea todos los detalles sobre las novedades aquí .

API móvil abierta para pagos NFC y transacciones seguras

Android P agrega una implementación de la API GlobalPlatform Open Mobile a Android. En los dispositivos compatibles, las aplicaciones pueden usar la API OMAPI para acceder a elementos seguros (SE) para habilitar los pagos con tarjeta inteligente y otros servicios seguros. Una capa de abstracción de hardware (HAL) proporciona la API subyacente para enumerar una variedad de elementos seguros (eSE, UICC y otros) disponibles.

Fortalecer las bases de Android

En Android P, continuamos nuestra inversión a largo plazo para que Android sea la mejor plataforma para desarrolladores.

Seguridad para aplicaciones

En Android P nos estamos moviendo a una interfaz de usuario más consistente para la autenticación de huellas dactilares en aplicaciones y dispositivos. Android ahora proporciona un diálogo de sistema estándar para solicitar al usuario que toque el sensor de huellas digitales, administrando el texto y la ubicación, según corresponda para el dispositivo. Las aplicaciones pueden desencadenar el diálogo de huella digital del sistema utilizando una nueva API FingerprintDialog . Recomendamos cambiar al nuevo diálogo del sistema lo antes posible.

Como parte de un esfuerzo mayor para alejar todo el tráfico de red del texto sin cifrar (HTTP no cifrado) a TLS, también estamos cambiando los valores predeterminados para la Configuración de seguridad de red para bloquear todo el tráfico de texto sin formato. Si está utilizando una configuración de seguridad de red, ahora deberá realizar conexiones a través de TLS, a menos que opte explícitamente por texto plano para dominios específicos.

Privacidad para los usuarios

Para garantizar mejor la privacidad, Android P restringe el acceso al micrófono, a la cámara y a todos los sensores SensorManager desde aplicaciones que están inactivas. Mientras el UID de su aplicación está inactivo, el micrófono informa audio vacío y los sensores dejan de informar eventos. Las cámaras que usa su aplicación están desconectadas y generarán un error si la aplicación intenta usarlas. En la mayoría de los casos, estas restricciones no deberían introducir problemas nuevos para las aplicaciones existentes, pero recomendamos eliminar estas solicitudes de sus aplicaciones.

También habilitaremos el cifrado de las copias de seguridad de Android con un secreto del lado del cliente. Esta característica todavía está en desarrollo activo y se lanzará en una futura versión de vista previa de Android P.

A más largo plazo, estamos trabajando para brindar soporte para la asignación aleatoria por red de direcciones MAC asociadas a la plataforma. En los dispositivos compatibles que ejecutan Android P, puede habilitar esto experimentalmente para probarlo como una nueva opción de desarrollador.

Android P también le da al usuario control sobre el acceso al identificador build.serial de la plataforma al ponerlo detrás del permiso READ_PHONE_STATE . El acceso directo a este identificador ha quedado obsoleto desde Android 8.0 . Para acceder al identificador build.serial, debe usar el Build.getSerial()método.

Rendimiento ART

Estamos trabajando para lograr mejoras de rendimiento y eficiencia en todas las aplicaciones a través del tiempo de ejecución de ART. Hemos ampliado el uso de los perfiles de ejecución de ART para optimizar las aplicaciones y reducir la huella en la memoria del código de la aplicación compilada. ART ahora utiliza información de perfil para la reescritura en el dispositivo de archivos DEX, con reducciones de hasta el 11% en una amplia gama de aplicaciones populares. Esperamos que estos se correlacionen estrechamente con las reducciones en el uso de la memoria DEX del sistema y tiempos de inicio más rápidos para sus aplicaciones.

Kotlin optimizado

Kotlin es un lenguaje de primera clase en Android , y si aún no lo has probado, ¡deberías hacerlo! Hemos adquirido un compromiso duradero con Kotlin en Android y seguimos ampliando el soporte, incluida la optimización del rendimiento del código de Kotlin. En P verá los primeros resultados de este trabajo: hemos mejorado varias optimizaciones del compilador, especialmente aquellas que apuntan a bucles, para extraer un mejor rendimiento. También seguimos trabajando en asociación con JetBrains para optimizar el código generado de Kotlin. Puede obtener todas las últimas mejoras de rendimiento de Kotlin simplemente manteniendo actualizado el complemento Kotlin de Android Studio.

Eficiencia energetica

En Android P, continuamos perfeccionando Doze , App Standby y Background Limits para mejorar aún más la duración de la batería; por favor, asegúrese de probar sus aplicaciones con estos y enviar comentarios.

Orientación de Android moderno

Android P está formado por nuestras iniciativas a más largo plazo para modernizar los cimientos de Android y las aplicaciones que se ejecutan en él. Como anunciamos recientemente , Google Play requerirá que todas las actualizaciones de la aplicación se dirijan a Android Oreo ( targetSdkVersion 26 o superior) en noviembre de 2018, con soporte para hardware de 64 bits en el horizonte para 2019.

De acuerdo con estos cambios, Android P advertirá a los usuarios con un cuadro de diálogo cuando instalen una aplicación que apunta a una plataforma anterior a Android 4.2 (targetSdkVersion menos de 17), y las futuras versiones de plataforma continuarán incrementando ese límite inferior. Animamos a todos los desarrolladores de Android a que comiencen a planear la migración para apuntar a API 26 ahora, y para comenzar el trabajo de migración lo más pronto posible. Aquí hay una lista de verificación de recursos para obtener ayuda y soporte: esperamos ver que sus aplicaciones obtengan el máximo provecho del Android moderno.

Mejorando la compatibilidad de la aplicación a través de API públicas

Un tema clave para los usuarios y desarrolladores es la compatibilidad de las aplicaciones, asegurándose de que las aplicaciones estén listas para las nuevas versiones de plataforma a medida que llegan, sin riesgo de caídas para los usuarios y despliegue de emergencia para los desarrolladores. Las aplicaciones que usan las API públicas de Android del SDK o NDK se encuentran en una buena posición para ser compatibles, pero las aplicaciones que usan interfaces y bibliotecas privadas de Android no lo son.

Entonces, con Android P estamos comenzando un proceso gradual para restringir el acceso a las interfaces seleccionadas que no son SDK, pidiendo a los desarrolladores, incluidos los equipos de aplicaciones dentro de Google, que utilicen los equivalentes públicos en su lugar. En los casos en que no existe un equivalente del público para su uso-caso, por favor háganoslo saber – que queremos para asegurarse de que este proceso sea lo más suave posible para los desarrolladores, por lo que vamos a utilizar su información para asegurar el despliegue inicial sólo afecta API donde los desarrolladores pueden migrar fácilmente a alternativas públicas. Más sobre las restricciones está aquí .

Comience en unos simples pasos

Primero, haga que su aplicación sea compatible para que sus usuarios tengan una transición perfecta a Android P. Simplemente descargue una imagen del sistema del dispositivo o una imagen del sistema del emulador, instale su aplicación actual y pruebe: la aplicación debe funcionar y verse bien, y manejar los cambios de comportamiento adecuadamente. . Después de realizar las actualizaciones necesarias, recomendamos publicar en Google Play de inmediato sin cambiar la orientación de la plataforma de la aplicación.

Recuerde que no necesita un dispositivo compatible con Pixel para probar o desarrollar en Android P. En la mayoría de los casos, recomendamos encarecidamente configurar un dispositivo virtual Android en el emulador de Android como entorno de prueba. Si no ha probado recientemente el emulador, verá que es increíblemente rápido, se inicia en menos de 6 segundos, es cómodo de usar e incluso puede modelar pantallas de próxima generación, como pantallas largas y pantallas con recorte de cámara.

A continuación, cambie la orientación de su aplicación a “P” y ejecútela con la experiencia completa de Android P. Establezca targetSdkVersion de su aplicación en ‘P’ y compileSdkVersion en android-P, compilación y prueba. Asegúrese de leer los cambios de comportamiento para las aplicaciones que se dirigen a P para encontrar las áreas que desea probar y que quizás deba ajustar.

Cuando estés listo, explora Android P y conoce las nuevas características y APIque puedes aprovechar en tu aplicación. Para que sea más fácil explorar las API nuevas, eche un vistazo al informe de diferencias API , junto con la referencia API P de Android . Visite el sitio de Vista previa del desarrollador de P para obtener detalles sobre la línea de tiempo de la vista previa y los recursos de asistencia . También vea este video que destaca las novedades de Android P para desarrolladores.

Para comenzar a construir con Android P, descargue el SDK y las herramientas de vista previa de desarrollador P en Android Studio 3.1 o use la última versión canaria de Android Studio 3.2 . También estamos lanzando una versión alfa de la biblioteca de soporte 28.0.0para que pruebes.

¿Qué hay más adelante?

La Vista previa del desarrollador de Android P incluye un SDK actualizado con imágenes del sistema para probar en el emulador oficial de Android y en los dispositivos Pixel, Pixel XL Pixel 2 y Pixel 2 XL.

Planeamos actualizar las imágenes del sistema de vista previa y el SDK regularmente a lo largo de la vista previa. Esta versión inicial es solo para desarrolladores y no para uso diario o para el consumidor, por lo que estamos disponibles mediante descarga manual y solo flash . Las descargas y las instrucciones están aquí .

A medida que nos acerquemos a un producto final, invitaremos a los consumidores a probarlo también, y abriremos las inscripciones a través de Android Beta en ese momento. Estén atentos para más detalles, pero por ahora tenga en cuenta que Android Beta no está disponible actualmente para Android P.

Como siempre, sus comentarios son fundamentales, por lo tanto, háganos saber lo que piensa , mientras más pronto escuchemos de usted, podremos integrar sus comentarios. Cuando encuentres problemas, infórmalos aquí . Tenemos hotlists separadas para la presentación de los temas de la plataforma , los problemas de compatibilidad de aplicaciones y problemas de SDK de terceros .