Jelly Bean

Android 4.3

Android 4.3 en teléfonos y tablets

¡Bienvenido a Android 4.3, una versión más dulce de Jelly Bean!

Android 4.3 incluye optimizaciones de rendimiento y excelentes funciones nuevas para usuarios y desarrolladores. En este documento, se ofrece un panorama general de las novedades para los desarrolladores.

Consulta el documento de las APIs de Android 4.3 para obtener un panorama detallado de las nuevas APIs de desarrollador.

Obtén más información acerca de las nuevas funciones de Jelly Bean para usuarios en www.android.com.

Más rápido, más fluido y más responsivo

Android 4.3 se basa en las mejoras de rendimiento ya incluidas en Jelly Bean (sincronización de vsync, triple almacenamiento en búfer, latencia táctil reducida, mejor entrada de CPU y renderización 2D acelerada por hardware) y agrega nuevas optimizaciones que hacen que Android sea aún más rápido.

Para obtener un aumento en el rendimiento de los gráficos, el procesador 2D acelerado por hardware ahora optimiza el flujo de comandos de dibujo y lo transforma en un formato de GPU más eficiente mediante el reordenamiento y la combinación de operaciones de dibujo. Para el multiprocesamiento, el procesador ahora también puede usar multiprocesamiento en varios núcleos de CPU a fin de realizar determinadas tareas.

Android 4.3 también mejora el procesamiento de formas y texto. Las formas como círculos y rectángulos redondeados ahora se renderizan con mayor calidad y de manera más eficiente. Las optimizaciones para el texto incluyen un mayor rendimiento cuando se usan varias fuentes o conjuntos de glifos complejos (CJK), una mayor calidad de renderización cuando se ajusta el texto y una renderización más rápida de sombras paralelas.

La asignación de búfer de ventana mejorada da como resultado una asignación de búfer de imagen más rápida para tus apps, lo que reduce el tiempo necesario para comenzar el procesamiento cuando creas una ventana.

En el caso de los gráficos de mayor rendimiento, Android 4.3 incluye compatibilidad con OpenGL ES 3.0 y permite que las apps accedan a ellas a través de APIs nativas y del framework. En los dispositivos compatibles, el motor de procesamiento en 2D acelerado por hardware aprovecha OpenGL ES 3.0 para optimizar la administración de texturas y aumentar la fidelidad en la renderización de gradientes.

OpenGL ES 3.0 para gráficos de alto rendimiento

Android 4.3 incorpora compatibilidad de plataforma para Khronos OpenGL ES 3.0, lo que proporciona a los juegos y otras apps capacidades de gráficos 2D y 3D del más alto rendimiento en dispositivos compatibles. Puedes aprovechar OpenGL ES 3.0 y las extensiones EGL relacionadas con las APIs de framework o las vinculaciones de API nativa mediante el kit de desarrollo nativo (NDK) de Android.

La nueva funcionalidad clave proporcionada en OpenGL ES 3.0 incluye aceleración de efectos visuales avanzados, compresión de texturas ETC2/EAC de alta calidad como función estándar, una nueva versión del lenguaje de sombreado GLSL ES compatible con números enteros y puntos flotantes de 32 bits, procesamiento de texturas avanzado y tamaño de textura estandarizado y formatos de búfer de renderización.

Puedes usar las APIs de OpenGL ES 3.0 para crear gráficos altamente complejos y altamente eficientes que se ejecuten en una variedad de dispositivos Android compatibles, y puedes admitir un único formato de compresión de texturas estándar en esos dispositivos.

OpenGL ES 3.0 es una función opcional que depende del hardware de gráficos subyacente. La asistencia ya está disponible en dispositivos Nexus 7 (2013), Nexus 4 y Nexus 10.

Conectividad Bluetooth mejorada

Conectividad con sensores y dispositivos Bluetooth Smart

Ahora puedes diseñar y compilar apps que interactúen con la última generación de dispositivos y sensores pequeños y de bajo consumo que utilizan la tecnología Bluetooth Smart.

Android 4.3 te ofrece una única API estándar para interactuar con dispositivos Bluetooth Smart.

Android 4.3 incorpora compatibilidad de plataforma integrada para Bluetooth Smart Ready en la función central y proporciona un conjunto estándar de APIs que las apps pueden usar para descubrir dispositivos cercanos, consultar servicios GATT y usar características de lectura y escritura.

Con las nuevas APIs, tus apps pueden buscar de manera eficiente dispositivos y servicios de interés. Para cada dispositivo, puedes verificar los servicios GATT compatibles mediante UUID y administrar las conexiones por ID de dispositivo y intensidad de la señal. Puedes conectarte a un servidor GATT alojado en el dispositivo y leer o escribir características, o registrar un objeto de escucha para recibir notificaciones cuando esas características cambien.

Puedes implementar compatibilidad con cualquier perfil GATT. Puedes leer o escribir características estándar o agregar compatibilidad para características personalizadas según sea necesario. Tu app puede funcionar como cliente o servidor, y puede transmitir y recibir datos en cualquier modo. Las APIs son genéricas, por lo que podrás admitir interacciones con una variedad de dispositivos, como etiquetas de proximidad, relojes, medidores de actividad física, controles de juegos, controles remotos, dispositivos de salud y mucho más.

La compatibilidad con Bluetooth Smart Ready ya está disponible en dispositivos Nexus 7 (2013) y Nexus 4, y en los próximos meses sí será compatible con una cantidad cada vez mayor de dispositivos compatibles con Android.

Perfil AVRCP 1.3

Android 4.3 agrega compatibilidad integrada con Bluetooth AVRCP 1.3, para que tus apps puedan admitir interacciones más ricas con dispositivos de transmisión de medios remotos. Las apps como los reproductores multimedia pueden aprovechar AVRCP 1.3 mediante las APIs de cliente de control remoto que se introdujeron en Android 4.0. Además de exponer los controles de reproducción en los dispositivos remotos conectados por Bluetooth, las apps ahora pueden transmitir metadatos, como el nombre de la pista, el compositor y otros tipos de metadatos multimedia.

La compatibilidad de plataforma con AVRCP 1.3 se basa en la pila Bluetooth Bluedroid presentada por Google y Broadcom en Android 4.2. La compatibilidad está disponible de inmediato en dispositivos Nexus y otros dispositivos compatibles con Android que ofrecen funciones de A2DP/AVRCP.

Compatibilidad con perfiles restringidos

Configuración de un perfil restringido

El propietario de una tablet puede configurar uno o más perfiles restringidos en Configuración y administrarlos de forma independiente.

Configuración de restricciones en un perfil

Tu app puede ofrecer restricciones para permitir que los propietarios administren el contenido de la app cuando se ejecuta en un perfil.

Android 4.3 amplía la función multiusuario para tablets con perfiles restringidos, una nueva forma de administrar usuarios y sus capacidades en un solo dispositivo. Con los perfiles restringidos, los propietarios de tablets pueden configurar con rapidez entornos separados para cada usuario, con la capacidad de administrar restricciones más detalladas en las apps disponibles en esos entornos. Los perfiles restringidos son ideales para amigos y familiares, usuarios invitados, kioscos, dispositivos de punto de venta y mucho más.

Cada perfil restringido ofrece un espacio aislado y seguro con su propio almacenamiento local, pantallas principales, widgets y parámetros de configuración propios. A diferencia de lo que sucede con los usuarios, los perfiles se crean desde el entorno del propietario de la tablet y se basan en las apps instaladas del propietario y las cuentas del sistema. El propietario controla qué apps instaladas se habilitan en el perfil nuevo y el acceso a sus cuentas está inhabilitado de forma predeterminada.

Las apps que necesitan acceder a las cuentas del propietario (para el acceso, las preferencias u otros usos) pueden participar declarando un atributo de manifiesto, y el propietario puede revisar y administrar esas apps desde la configuración del perfil.

Para los desarrolladores, los perfiles restringidos ofrecen una nueva forma de ofrecer más valor y control a tus usuarios. Puedes implementar restricciones de apps (controles de contenido o funciones compatibles con tu app) y anunciarlas a los propietarios de tablets en la configuración del perfil.

Puedes agregar restricciones de apps directamente a la configuración del perfil mediante tipos booleanos, de selección y de selección múltiple predefinidos. Si quieres mayor flexibilidad, incluso puedes iniciar tu propia IU desde los parámetros de configuración del perfil para ofrecer cualquier tipo de restricción que desees.

Cuando tu app se ejecuta en un perfil, puede buscar restricciones configuradas por el propietario y aplicarlas correctamente. Por ejemplo, una app de música podría ofrecer una restricción para permitir que el propietario establezca un nivel de madurez para el perfil. Durante el tiempo de ejecución, la app podría comprobar la configuración de madurez y, luego, administrar el contenido de acuerdo con el nivel de madurez preferido.

Si la app no está diseñada para usarse en perfiles restringidos, puedes inhabilitarla por completo, de modo que no se pueda habilitar en ningún perfil restringido.

Ubicación optimizada y funciones de sensor

Los Servicios de Google Play ofrecen APIs de ubicación avanzada que puedes usar en tus apps. Android 4.3 optimiza estas APIs en dispositivos compatibles con nuevas capacidades de hardware y software que minimizan el uso de la batería.

El geovallado de hardware optimiza la eficiencia energética al realizar el cálculo de ubicación en el hardware del dispositivo, en lugar de hacerlo en el software. En los dispositivos que admiten el geovallado por hardware, las APIs de geovallado de los Servicios de Google Play podrán aprovechar esta optimización para ahorrar batería mientras el dispositivo está en movimiento.

El modo de solo búsqueda de Wi-Fi es una nueva optimización de plataforma que permite a los usuarios mantener activada la búsqueda de Wi-Fi sin conectarse a una red Wi-Fi para mejorar la precisión de la ubicación y, al mismo tiempo, ahorrar batería. Las apps que dependen de la conexión Wi-Fi para los servicios de ubicación ahora pueden solicitar a los usuarios que habiliten el modo de solo búsqueda desde la configuración avanzada de Wi-Fi. El modo de solo búsqueda de Wi-Fi no depende del hardware del dispositivo y está disponible como parte de la plataforma Android 4.3.

Los nuevos tipos de sensores permiten que las apps administren mejor las lecturas de los sensores. Un vector de rotación de juegos permite a los desarrolladores de juegos detectar la rotación del dispositivo sin tener que preocuparse por la interferencia magnética. Los sensores de giroscopio no calibrado y magnetómetro no calibrado informan mediciones sin procesar, así como sesgos estimados para las apps.

Las nuevas capacidades de hardware ya están disponibles en los dispositivos Nexus 7 (2013) y Nexus 4, y cualquier fabricante de dispositivos o proveedor de chipset puede integrarlos en sus dispositivos.

Nuevas funciones multimedia

Marco DRM modular

Para satisfacer las necesidades de la nueva generación de servicios multimedia, Android 4.3 presenta un marco de trabajo DRM modular que permite a los desarrolladores de aplicaciones de contenido multimedia integrar con mayor facilidad la DRM en sus propios protocolos de transmisión, como MPEG DASH (Dynamic Adaptive Streaming mediante HTTP, ISO/IEC 23009-1).

Mediante una combinación de nuevas APIs y mejoras a las APIs existentes, el marco de trabajo DRM multimedia proporciona un conjunto integrado de servicios para administrar licencias y aprovisionamiento, acceder a códecs de bajo nivel y decodificar datos de medios encriptados. Una nueva API de MediaExtractor te permite obtener los metadatos de PSSH para los medios de DASH. Las apps que usan el marco de trabajo DRM multimedia administran la comunicación de red con un servidor de licencias y controlan la transmisión de datos encriptados desde una biblioteca de contenido.

Codificador VP8

Android 4.3 presenta compatibilidad integrada con la codificación VP8, a la que se puede acceder desde API nativas y de framework. Para las apps que usan API nativas, la plataforma incluye encabezados de extensión OpenMAX 1.1.2 a fin de admitir perfiles y niveles de VP8. La compatibilidad con la codificación VP8 incluye parámetros de configuración para la tasa de bits objetivo, el control de velocidad, la velocidad de fotogramas, la partición de tokens, la resiliencia de errores, la reconstrucción y los filtros de bucle. La API de la plataforma presenta compatibilidad con el codificador VP8 en una variedad de formatos, de modo que puedas aprovechar el mejor formato para tu contenido.

La codificación VP8 está disponible en software en todos los dispositivos compatibles con Android 4.3. Para obtener el máximo rendimiento, la plataforma también admite la codificación VP8 acelerada por hardware en dispositivos compatibles.

Codificación de video desde una superficie

A partir de Android 4.3, puedes usar una superficie como entrada para un codificador de video. Por ejemplo, ahora puedes dirigir una transmisión desde una superficie de OpenGL ES al codificador, en lugar de tener que copiar entre búferes.

Combinador multimedia

Las apps pueden usar las nuevas APIs del combinador multimedia para combinar transmisiones de audio y video elementales en un solo archivo de salida. Actualmente, las apps pueden multiplexar una sola transmisión de audio MPEG-4 y una sola transmisión de video por Internet MPEG-4 en un solo archivo de salida MPEG-4. Las nuevas APIs son una contraparte de las APIs de demuxing de contenido multimedia que se introdujeron en Android 4.2.

Progreso de reproducción y arrastre en clientes de control remoto

A partir de Android 4.0, los reproductores multimedia y las aplicaciones similares pueden ofrecer controles de reproducción desde clientes de control remoto, como la pantalla de bloqueo del dispositivo, las notificaciones y los dispositivos remotos conectados por Bluetooth. A partir de Android 4.3, esas aplicaciones también pueden exponer el progreso y la velocidad de la reproducción a través de sus clientes de control remoto y recibir comandos para saltar a una posición de reproducción específica.

Nuevas formas de compilar apps fabulosas

Acceso a notificaciones

Las notificaciones han sido durante mucho tiempo una función popular de Android porque permiten que los usuarios vean información y actualizaciones de todo el sistema, todo en un solo lugar. Ahora, en Android 4.3, las apps pueden observar el flujo de notificaciones con el permiso del usuario y mostrar las notificaciones de la manera que deseen, lo que incluye enviarlas a dispositivos cercanos conectados mediante Bluetooth.

Puedes acceder a las notificaciones a través de nuevas APIs que te permiten registrar un servicio de objeto de escucha de notificaciones y, con permiso del usuario, recibir notificaciones a medida que se muestran en la barra de estado. Las notificaciones se envían por completo, con todos los detalles sobre la app de origen, la hora de publicación, la vista y el estilo del contenido, y la prioridad. Puedes evaluar los campos de interés en las notificaciones, procesar o agregar contexto desde la app y enrutarlos para que se muestren de la forma que elijas.

La nueva API te brinda devoluciones de llamada cuando se agrega, actualiza y quita una notificación (ya sea porque el usuario la descartó o la app de origen la retiró). Podrás iniciar cualquier intent adjunto a la notificación o sus acciones, y descartarla del sistema, lo que permitirá que tu app proporcione una interfaz de usuario completa para las notificaciones.

Los usuarios mantienen el control sobre qué apps pueden recibir notificaciones. En cualquier momento, pueden ir a Configuración y ver qué apps tienen acceso a notificaciones y habilitar o inhabilitar el acceso según sea necesario. El acceso a las notificaciones está inhabilitado de forma predeterminada. Las apps pueden usar un intent nuevo para llevar al usuario directamente a Configuración y habilitar el servicio de objeto de escucha después de la instalación.

Superposición de objetos View

Ahora puedes crear superposiciones transparentes sobre objetos View y ViewGroup para renderizar una jerarquía de vistas temporal o efectos de animación transitorios sin alterar la jerarquía de diseño subyacente. Las superposiciones son particularmente útiles cuando quieres crear animaciones, como deslizar una vista fuera de su contenedor o arrastrar elementos en la pantalla sin afectar la jerarquía de vistas.

Modo de diseño de límites ópticos

Un nuevo modo de diseño te permite administrar el posicionamiento de los objetos View dentro de ViewGroups según sus límites ópticos, en lugar de sus límites de recorte. Los límites de recorte representan el límite exterior real de un widget, mientras que los nuevos límites ópticos describen dónde parece estar el widget, dentro de los límites de recorte. Puedes usar el modo de diseño de límites ópticos para alinear correctamente los widgets que usan efectos visuales externos, como sombras y resplandores.

Tipos de animación con rotación personalizada

Las apps ahora pueden definir los tipos de animación de salida y entrada que se usan en una ventana cuando se rota el dispositivo. Puedes configurar las propiedades de la ventana para habilitar la rotación de ventana de corte abrupto, fundición entre recursos o estándar. El sistema usa los tipos de animación personalizados cuando la ventana está en pantalla completa y no está cubierta por otras.

Modos de orientación de la pantalla

Las apps pueden establecer nuevos modos de orientación para objetos Activity a fin de garantizar que se muestren en la orientación adecuada cuando se gira el dispositivo. Además, las apps pueden usar un nuevo modo para bloquear la pantalla en su orientación actual. Esta opción es útil para las apps que usan la cámara y desean desactivar la rotación mientras se graba un video.

Intent para controlar respuestas rápidas

Android 4.3 presenta un nuevo intent público que permite que cualquier app controle respuestas rápidas, es decir, mensajes de texto que envía el usuario en respuesta a una llamada entrante, sin necesidad de contestar la llamada ni desbloquear el dispositivo. Tu app puede escuchar el intent y enviar el mensaje al emisor a través de tu sistema de mensajería. El intent incluye al destinatario (la persona que llama) y al mensaje en sí.

Compatibilidad con usuarios internacionales

Más partes de Android 4.3 están optimizadas para idiomas con escritura de derecha a izquierda.

Mejoras para escritura de derecha a izquierda (RTL)

Android 4.3 incluye mejoras en el rendimiento de RTL y una mayor compatibilidad con RTL en los widgets de la IU del framework, incluidos ProgressBar/Spinner y ExpandableListView. Hay más información de depuración visible mediante la herramienta uiautomatorviewer. Además, más componentes de la IU del sistema ahora reconocen la escritura de derecha a izquierda, como las notificaciones, la barra de navegación y la barra de acciones.

Para brindar una mejor experiencia en todo el sistema en alfabetos de derecha a izquierda, más apps predeterminadas del sistema ahora admiten diseños de ese tipo, como Selector, Configuración rápida, Teléfono, Personas, Asistente de configuración, Reloj, Descargas y mucho más.

Utilidades para localización

Las pseudoconfiguraciones regionales hacen que sea más fácil probar la localización de tu app.

Android 4.3 también incluye nuevas utilidades y APIs para crear mejores strings de derecha a izquierda y probar tus IU localizadas. Una nueva clase BidiFormatter proporciona una API simple para unir strings Unicode de modo que los datos de secuencias de comandos RTL se muestren según lo previsto en los mensajes de configuración regional de izquierda a derecha, y viceversa. Para permitirte usar esta utilidad de manera más amplia en tus apps, la API de BidiFormatter ahora también está disponible para versiones anteriores de la plataforma a través del paquete de asistencia en el SDK de Android.

Para ayudarte a administrar el formato de fecha en las configuraciones regionales, Android 4.3 incluye un nuevo método getBestDateTimePattern() que genera automáticamente la mejor forma localizada posible de una fecha Unicode UTS para una configuración regional que especifiques. Es una forma conveniente de brindar una experiencia más localizada a los usuarios.

Para ayudarte a probar tu app con mayor facilidad en otras configuraciones regionales, Android 4.3 presenta las pseudoconfiguraciones regionales como una nueva opción para desarrolladores. Las pseudoconfiguraciones regionales simulan el idioma, la secuencia de comandos y las características de pantalla asociadas con una configuración regional o un grupo de idiomas. Actualmente, puedes probar con una pseudoconfiguración regional para el inglés acentuado, lo que te permite ver cómo funciona tu IU con acentos y caracteres de secuencias de comandos que se usan en una variedad de idiomas europeos.

Automatización de IU y accesibilidad

A partir de Android 4.3, los servicios de accesibilidad pueden observar y filtrar eventos clave, como controlar combinaciones de teclas o proporcionar paridad de navegación con entrada basada en gestos. El servicio recibe los eventos y puede procesarlos según sea necesario antes de pasarlos al sistema o a otras apps instaladas.

Los servicios de accesibilidad pueden declarar nuevos atributos de capacidad para describir lo que pueden hacer sus servicios y qué funciones de la plataforma usan. Por ejemplo, pueden declarar la capacidad de filtrar eventos clave, recuperar contenido de ventanas, habilitar exploración táctil o habilitar las funciones de accesibilidad web. En algunos casos, los servicios deben declarar un atributo de capacidad antes de poder acceder a las funciones relacionadas de la plataforma. El sistema usa los atributos de capacidad del servicio para generar un diálogo de aceptación para los usuarios, de modo que puedan ver y aceptar las capacidades antes del lanzamiento.

Sobre la base del framework de accesibilidad en Android 4.3, un nuevo framework de automatización de IU permite que las pruebas interactúen con la IU del dispositivo mediante la simulación de acciones del usuario y la introspección del contenido de la pantalla. Mediante el framework de automatización de la IU, puedes realizar operaciones básicas, configurar la rotación de la pantalla, generar eventos de entrada, tomar capturas de pantalla y mucho más. Es una forma potente de automatizar las pruebas en situaciones realistas de los usuarios, incluidas las acciones o secuencias que abarcan varias apps.

Configuración empresarial y seguridad

Configuración de Wi-Fi para redes WPA2 Enterprise

Las apps ahora pueden configurar las credenciales de Wi-Fi que necesitan para las conexiones a los puntos de acceso de WPA2 enterprise. Los desarrolladores pueden usar nuevas APIs para configurar el Protocolo de autenticación extensible (EAP) y las credenciales de EAP encapsuladas (Fase 2) para los métodos de autenticación utilizados en la empresa. Las apps con permiso para acceder y cambiar la conexión Wi-Fi pueden configurar credenciales de autenticación para una variedad de métodos de autenticación de EAP y Fase 2.

Zona de pruebas de Android reforzada con SELinux

Android ahora usa SELinux, un sistema de control de acceso obligatorio (MAC) en el kernel de Linux para aumentar la zona de pruebas de aplicaciones basada en UID. De esta manera, se protege el sistema operativo contra posibles vulnerabilidades de seguridad.

Mejoras de KeyChain

La API de KeyChain ahora proporciona un método que permite a las aplicaciones confirmar que las claves de todo el sistema están vinculadas a una raíz de confianza de hardware para el dispositivo. Esto proporciona un lugar para crear o almacenar claves privadas que no se pueden exportar del dispositivo, incluso en el caso de un compromiso de raíz o kernel.

Proveedor de almacén de claves de Android

Android 4.3 presenta un proveedor de almacén de claves y APIs que permiten que las aplicaciones creen claves de uso exclusivo. Con las APIs, las apps pueden crear o almacenar claves privadas que otras apps no pueden ver ni usar, y se pueden agregar al almacén de claves sin ninguna interacción del usuario.

El proveedor del almacén de claves proporciona los mismos beneficios de seguridad que la API de KeyChain para las credenciales de todo el sistema, como credenciales de vinculación a un dispositivo. Las claves privadas del almacén de claves no se pueden exportar del dispositivo.

Restricción de Setuid desde apps de Android

La partición /system ahora se activa nosuid para los procesos generados por Zygote, lo que evita que las aplicaciones para Android ejecuten programas setuid. Esto reduce la superficie de ataque de raíz y la probabilidad de posibles vulnerabilidades de seguridad.

Nuevas formas de analizar el rendimiento

Systrace utiliza una nueva sintaxis de comandos y te permite recopilar más tipos de datos de generación de perfiles.

Registro de Systrace mejorado

Android 4.3 admite una versión mejorada de la herramienta Systrace que es más fácil de usar y que te da acceso a más tipos de información para generar perfiles del rendimiento de tu app. Ahora puedes recopilar datos de seguimiento de módulos de hardware, funciones de kernel y VM de Dalvik, incluidas la recolección de elementos no utilizados, la carga de recursos y mucho más.

Android 4.3 también incluye nuevas API de seguimiento que puedes usar en tus apps para marcar secciones específicas de código a fin de hacer un seguimiento con los eventos de inicio y finalización de Systrace. Cuando se ejecutan las secciones marcadas del código, el sistema escribe los eventos de inicio y finalización en el registro de seguimiento. El impacto en el rendimiento de tu app es mínimo, por lo que los tiempos informados te brindan una visión precisa de lo que hace tu app.

Puedes visualizar eventos específicos de la app en un cronograma en el archivo de salida de Systrace y analizar los eventos en el contexto de otros datos de seguimiento del kernel y del espacio del usuario. Junto con las etiquetas de Systrace existentes, las secciones de apps personalizadas pueden brindarte nuevas maneras de comprender el rendimiento y el comportamiento de tus apps.

Generación de perfiles de GPU en pantalla en Android 4.3.

Generación de perfiles de GPU en pantalla

Android 4.3 agrega nuevas opciones para desarrolladores que te permiten analizar el rendimiento de tu app y detectar problemas de renderización en cualquier dispositivo o emulador.

En la opción Profile GPU rendering, ahora puedes visualizar la velocidad de fotogramas efectiva de tu app en la pantalla mientras se ejecuta. Puedes elegir mostrar los datos del perfil como gráficos de barras o líneas en pantalla, con colores que indican el tiempo dedicado a crear comandos de dibujo (azul), emitir los comandos (naranja) y esperar a que se completen (amarillo). El sistema actualiza los gráficos en pantalla continuamente y muestra un gráfico para cada actividad visible, incluidas la barra de navegación y la de notificaciones.

Una línea verde destaca el umbral de 16 ms para las operaciones de renderización, por lo que puedes evaluar la velocidad de fotogramas efectiva de la app en relación con un objetivo de 60 FPS (porque 1/60 de segundo equivale a aproximadamente 16 ms). Si ves operaciones que cruzan la línea verde, puedes analizarlas más a fondo con Systrace y otras herramientas.

En dispositivos con Android 4.2 y versiones posteriores, las opciones para desarrolladores están ocultas de forma predeterminada. Puedes revelarlas en cualquier momento. Para ello, presiona 7 veces en Configuración > Acerca del teléfono > Número de compilación en cualquier dispositivo Android compatible.

Advertencia de StrictMode para URI de archivo

La última incorporación a la herramienta StrictMode es una restricción de política que advierte cuando tu app expone un URI file:// al sistema o a otra app. En algunos casos, es posible que la app receptora no tenga acceso a la ruta de URI file://, por lo que, cuando se comparten archivos entre apps, se debe usar un URI content:// (con el permiso adecuado). Esta nueva política te ayuda a detectar y solucionar esos casos. Si buscas una manera conveniente de almacenar y exponer archivos a otras apps, intenta usar el proveedor de contenido FileProvider que está disponible en la Biblioteca de compatibilidad.

Android 4.2

Android 4.2 en teléfonos y tablets

¡Bienvenido a Android 4.2, la versión más reciente de Jelly Bean!

Android 4.2 tiene optimizaciones de rendimiento, una IU del sistema actualizada y excelentes funciones nuevas para usuarios y desarrolladores. En este documento, se ofrece un panorama general de las novedades para los desarrolladores.

Consulta el documento de las APIs de Android 4.2 para obtener un panorama detallado de las nuevas API de desarrollador.

Obtén más información acerca de las nuevas funciones de Jelly Bean para usuarios en www.android.com.

Más rápido, más fluido y con mayor respuesta

Android 4.2 se basa en las mejoras de rendimiento que ya incluía Jelly Bean: sincronización de vsync, triple almacenamiento en búfer, latencia de la pantalla táctil reducida y mejor entrada de CPU, y agrega nuevas optimizaciones que hacen que Android sea aún más rápido.

Las mejoras en el procesador 2D de hardware acelerado hacen que las animaciones comunes, como desplazarse y deslizarse, sean más rápidas y fluidas. En particular, el dibujo está optimizado para capas, recortes y ciertas formas (rectas redondeadas, círculos y óvalos).

Una variedad de optimizaciones de procesamiento de WebView hacen que el desplazamiento de las páginas web sea más fluido y libre de fluctuaciones y retrasos.

El Procesamiento de Renderscript de Android es la primera plataforma de cómputo adaptada para ejecutarse directamente en una GPU de dispositivo móvil. Aprovecha automáticamente los recursos de computación de GPU siempre que es posible y mejora considerablemente el rendimiento del procesamiento de imágenes y gráficos. Cualquier app que use Renderscript en un dispositivo compatible puede beneficiarse inmediatamente de esta integración de GPU sin necesidad de volver a compilar.

IU mejor definida y actualizada

Android 4.2 define mejor la experiencia del usuario de Jelly Bean y ofrece patrones familiares de la IU de Android, como la barra de estado, la barra del sistema y la ventana de notificaciones a todas las tablets.

Todos los tamaños de pantalla ahora cuentan con la barra de estado en la parte superior, con acceso desplegable a las notificaciones y un nuevo menú de Configuración rápida. La conocida barra del sistema aparece en la parte inferior y tiene botones a los que se puede acceder fácilmente con cualquier mano. La bandeja de aplicaciones también está disponible en todos los tamaños de pantalla.

Una tablet, muchos usuarios

Ahora varios usuarios pueden compartir una sola tablet Android y tener cada uno acceso conveniente a un espacio de usuario dedicado. Los usuarios pueden cambiar a sus espacios con un solo toque desde la pantalla de bloqueo.

En un dispositivo multiusuario, Android le proporciona a cada usuario un entorno separado, que incluye el almacenamiento de la tarjeta SD emulado específico del usuario. Los usuarios también tienen sus propias pantallas principales, widgets, cuentas, configuración, archivos y apps, y el sistema los mantiene separados. Todos los usuarios comparten los servicios principales del sistema, pero el sistema garantiza que las aplicaciones y los datos de cada usuario permanezcan aislados. De hecho, cada uno de los múltiples usuarios tiene su propio dispositivo Android.

Los usuarios pueden instalar y desinstalar apps en cualquier momento en sus propios entornos. Para ahorrar espacio de almacenamiento, Google Play descarga un APK solo si no está instalado por otro usuario en el dispositivo. Si la app ya está instalada, Google Play registra la instalación del usuario nuevo de la manera habitual, pero no descarga otra copia de la app. Varios usuarios pueden ejecutar la misma copia de un APK porque el sistema crea una instancia nueva para cada usuario, incluido un directorio de datos específico del usuario.

Para los desarrolladores, la compatibilidad con la función multiusuario es transparente: no es necesario que tus apps realicen ninguna acción especial para ejecutarse normalmente en un entorno multiusuario ni se requieren cambios en los APK existentes o publicados. El sistema administra tu app en cada espacio de usuario tal como lo hace en un entorno de usuario único.

Nuevas formas de atraer a los usuarios

Widget de pantalla bloqueada de calendario

A fin de poder acceder instantáneamente a tu contenido, puedes extender los widgets de la app para que se ejecuten en la pantalla bloqueada.

Widgets de la pantalla bloqueada

En Android 4.2, los usuarios pueden colocar widgets de apps directamente en sus pantallas de bloqueo para acceder de forma instantánea al contenido de su app favorita sin tener que desbloquear el dispositivo. Los usuarios pueden agregar hasta cinco widgets a la pantalla de bloqueo y elegir aquellos que proporcionan las apps instaladas. La pantalla de bloqueo muestra cada widget en su propio panel, lo que permite a los usuarios deslizar el dedo hacia la izquierda y la derecha para ver diferentes paneles y sus widgets.

Al igual que todos los widgets de apps, los widgets de la pantalla de bloqueo pueden mostrar cualquier tipo de contenido y aceptar la interacción directa del usuario. Pueden ser completamente independientes, como un widget que ofrece controles para reproducir música, o pueden permitir que los usuarios salten directamente a una actividad en tu app después de desbloquearla según sea necesario.

Para los desarrolladores, los widgets de la pantalla bloqueada ofrecen una nueva forma de atraer a los usuarios. Te permiten mostrar tu contenido a los usuarios en una ubicación que verán con frecuencia y te brindan más oportunidades de atraerlos directamente a tu app.

Puedes aprovechar esta nueva función compilando un nuevo widget de app o extendiendo un widget de pantalla principal existente. Si tu app ya incluye widgets de la pantalla principal, puedes extenderlos a la pantalla de bloqueo con un cambio mínimo. A fin de brindar una experiencia óptima a los usuarios, puedes actualizar el widget para que use el área de pantalla de bloqueo completa cuando esté disponible y cambie el tamaño cuando sea necesario en pantallas más pequeñas. También puedes agregar funciones a tus widgets que podrían ser especialmente útiles o convenientes en la pantalla de bloqueo.

Daydream

Daydream es un modo de protector de pantalla interactivo que se inicia cuando el dispositivo de un usuario está conectado o se está cargando. En este modo, el sistema inicia un daydream, un servicio de contenido remoto proporcionado por una app instalada, como protector de pantalla del dispositivo. El usuario puede habilitar Daydream desde la app de Configuración y, luego, elegir el protector de pantalla interactivo que se mostrará.

Los Daydream combinan las mejores funciones de los fondos de pantalla animados y los widgets de la pantalla principal, pero son más potentes. Te permiten ofrecer cualquier tipo de contenido en un contexto completamente nuevo, con interacciones del usuario, como pasar fotos, reproducir audio o video, o ir directamente a la app con un solo toque.

Debido a que los daydreams pueden iniciarse automáticamente cuando un dispositivo se está cargando o está en un conector, también le brindan a tu app una excelente manera de admitir nuevos tipos de experiencias del usuario, como el modo Leanback o de exhibición, el modo kiosco o de demostración, y el "modo Atractivo", todo sin necesidad de hardware especial.

Modo de protector de pantalla Daydream

Daydream te permite crear increíbles protectores de pantalla interactivos que muestran cualquier tipo de contenido.

Los Daydream son similares a los objetos Activity y pueden hacer lo mismo que Activity, desde renderizar una jerarquía de IU (sin usar RemoteViews) hasta dibujar directamente con Canvas, OpenGL, SurfaceTexture y mucho más. Pueden reproducir video y audio, y hasta pueden aceptar la interacción directa del usuario. Sin embargo, los daydream no son actividades, por lo que no afectan la pila de actividades ni aparecen en Recientes, y no se pueden iniciar directamente desde tu app.

Implementar un daydream es sencillo y puedes aprovechar los componentes y recursos de la IU que ya creaste para otras partes de la app. Puedes proporcionar varios daydream en tu app y ofrecer contenido y configuraciones de visualización diferentes para cada uno.

Compatibilidad con pantallas externas

Android 4.2 presenta compatibilidad de plataforma para pantallas externas que va mucho más allá de la duplicación: las apps ahora pueden orientar contenido único a una o varias pantallas conectadas a un dispositivo Android. Las apps pueden aprovechar esto para ofrecer nuevos tipos de interacción y experiencias de entretenimiento a los usuarios.

Administrador de pantalla

Las apps interactúan con pantallas mediante de un nuevo servicio del sistema de administrador de pantalla. Tu app puede enumerar las pantallas y verificar las capacidades de cada una, incluidos el tamaño, la densidad, el nombre visible, el ID, la compatibilidad con videos seguros y mucho más. A fin de administrar mejor el contenido en pantallas externas, tu app también puede recibir devoluciones de llamada cuando se agregan o quitan pantallas o cuando cambian sus capacidades.

Ventana de presentación

Para facilitar la visualización de contenido en una pantalla externa, el framework proporciona un nuevo objeto de IU llamado Presentación, un tipo de diálogo que representa una ventana para el contenido de tu app en una pantalla externa específica. Tu app solo proporciona la pantalla que se debe usar, un tema para la ventana y cualquier contenido único para mostrar. Presentación controla el aumento de recursos y procesa tu contenido según las características de la pantalla de destino.

Con Presentación, puedes tomar el control total de dos o más pantallas independientes.

Una presentación le brinda a tu app el control total sobre la ventana de la pantalla remota y su contenido, y te permite administrarla en función de los eventos de entrada del usuario, como pulsaciones de teclas, gestos, eventos de movimiento y mucho más. Puedes usar todas las herramientas normales para crear una IU y renderizar contenido en la presentación, desde crear una jerarquía de vistas arbitraria hasta usar SurfaceView o SurfaceTexture para dibujar directamente en la ventana de contenido transmitido o vistas previas de la cámara.

Selección de pantalla preferida

Cuando hay varias pantallas externas disponibles, puedes crear tantas presentaciones como necesites, y cada una mostrará contenido único en una pantalla específica. En muchos casos, es posible que solo quieras mostrar tu contenido en una pantalla externa, pero siempre en la que sea mejor para el contenido de Presentación. Para ello, el sistema puede ayudar a tu app a elegir la mejor pantalla para usar.

A fin de buscar la mejor pantalla para usar, tu app puede consultar al administrador de pantallas cuál es la pantalla de Presentación preferida del sistema y recibir devoluciones de llamada cuando esa pantalla cambia. Como alternativa, puedes usar el servicio de router de contenido multimedia, extendido en Android 4.2, para recibir notificaciones cuando cambie una ruta de video del sistema. Tu app puede mostrar contenido de forma predeterminada en el objeto Activity principal hasta que se adjunte una pantalla de Presentación preferida, momento en el cual puede cambiar automáticamente al contenido de Presentación en la pantalla preferida. Tus apps también pueden usar MediaRouteActionProvider y MediaRouteButton del router multimedia para ofrecer una IU estándar de selección de pantalla.

Contenido protegido

En el caso de las apps que manejan contenido protegido o encriptado, la API de Display ahora informa las funciones de video seguro de las pantallas adjuntas. Tu app consulta una pantalla para averiguar si ofrece una salida de video segura o proporciona búferes de gráficos protegidos y, luego, elige la transmisión o decodificación de contenido adecuadas para que el contenido sea visible. Para mayor seguridad en los objetos SurfaceView, tu app puede establecer una marca segura para indicar que el contenido nunca debe aparecer en capturas de pantalla ni en una salida de pantalla no segura, incluso cuando se duplica.

Pantalla inalámbrica

A partir de Android 4.2, los usuarios de dispositivos compatibles pueden conectarse a una pantalla externa mediante Wi-Fi, con Pantalla Wi-Fi (una solución de pantalla inalámbrica entre pares que cumple con el programa de certificación MiracastTM). Cuando se conecta una pantalla inalámbrica, los usuarios pueden transmitir cualquier tipo de contenido a la pantalla grande, lo que incluye fotos, juegos, mapas y mucho más.

Las apps pueden aprovechar las pantallas inalámbricas de la misma manera que lo hacen con otras pantallas externas y no se necesita trabajo adicional. El sistema administra la conexión de red y transmite tu Presentación u otro contenido de la app a la pantalla inalámbrica según sea necesario.

Compatibilidad nativa con idiomas de escritura de derecha a izquierda (RTL)

Duplicación de diseño RTL

Los desarrolladores ahora pueden duplicar sus diseños para idiomas con escritura de derecha a izquierda.

Android 4.2 presenta compatibilidad nativa completa para diseños de derecha a izquierda (de derecha a izquierda), incluida la duplicación de diseños. Gracias a la compatibilidad nativa con RTL, puedes ofrecer la misma experiencia de app excelente a todos tus usuarios, ya sea que su idioma utilice una secuencia de comandos que se lea de derecha a izquierda o uno que lea de izquierda a derecha.

Cuando el usuario cambia el idioma del sistema a una secuencia de comandos de derecha a izquierda, el sistema ahora proporciona una duplicación automática de los diseños de la IU de la app y todos los widgets de vista, además de la duplicación bidireccional de elementos de texto para la lectura y la entrada de caracteres.

Tu app puede aprovechar la duplicación del diseño RTL con un mínimo esfuerzo. Si deseas que se duplique la app, solo debes declarar un atributo nuevo en el manifiesto de la app y cambiar todas las propiedades de diseño de "izquierda/derecha" a nuevos equivalentes de "inicio/finalización". Luego, el sistema se encargará de duplicar y mostrar tu IU según corresponda.

Para lograr un control preciso de la IU de tu app, Android 4.2 incluye nuevas APIs que te permiten administrar la dirección del diseño, la dirección del texto, la alineación del texto, la gravedad y la dirección de la configuración regional en los componentes de View. Incluso puedes crear versiones personalizadas de diseños, elementos de diseño y otros recursos para mostrar cuando se use una secuencia de comandos de derecha a izquierda.

Para ayudarte a depurar y optimizar tus diseños personalizados de derecha a izquierda, la herramienta HierarchyViewer ahora te permite ver las propiedades de inicio y fin, la dirección del diseño, la dirección del texto y la alineación del texto para todos los objetos View de la jerarquía.

Mejoras para idiomas internacionales

Android 4.2 incluye una variedad de optimizaciones de fuentes y caracteres para usuarios internacionales:

  • Para los usuarios coreanos, hay una nueva opción de fuente disponible: Nanum (combina
  • Compatibilidad mejorada para el texto vertical japonés que se muestra en WebViews.
  • Interletraje y posicionamiento de fuentes mejorados para fuentes predeterminadas índicas, tailandesas, árabes y hebreas

El teclado predeterminado de Android también incluye un conjunto actualizado de diccionarios:

  • Diccionarios mejorados para francés (compatible con bigrama), inglés y ruso
  • Nuevos diccionarios para danés, griego, finlandés, lituano, letón, polaco, esloveno, serbio, sueco y turco

Nuevas formas de crear una IU atractiva

Fragmentos anidados

Para tener más control sobre tus componentes de la IU y hacerlos más modulares, Android 4.2 te permite anidar fragmentos dentro de fragmentos. En el caso de cualquier fragmento, un nuevo administrador de fragmentos te permite insertar otros fragmentos como nodos secundarios en la jerarquía de vistas.

Puedes usar los fragmentos anidados de varias maneras, pero son especialmente útiles para implementar componentes de IU dinámicos y reutilizables dentro de un componente de la IU que es dinámico y reutilizable. Por ejemplo, si usas ViewPager para crear fragmentos que se deslizan hacia la izquierda y la derecha, ahora puedes insertar fragmentos en cada fragmento del localizador de vistas.

Para que puedas aprovechar los fragmentos anidados de forma más amplia en tu app, esta función se agrega a la versión más reciente de la Biblioteca de compatibilidad de Android.

Accesibilidad

El sistema ahora ayuda a los servicios de accesibilidad a distinguir entre exploración táctil y gestos de accesibilidad mientras está en modo de exploración táctil. Cuando un usuario toca la pantalla, el sistema notifica al servicio que se inició una interacción táctil genérica. Luego, hace un seguimiento de la velocidad de la interacción táctil, determina si es una exploración táctil (lenta) o un gesto de accesibilidad (rápido), y notifica al servicio. Cuando finaliza la interacción táctil, el sistema le notifica al servicio.

El sistema proporciona una nueva opción de accesibilidad global que permite que un servicio de accesibilidad abra el menú Configuración rápida en función de una acción del usuario. También se agregó en Android 4.2 un nuevo tipo de comentarios de accesibilidad para dispositivos braille.

Para proporcionar a los servicios de accesibilidad estadísticas sobre el significado de los objetos View con fines de accesibilidad, el framework proporciona nuevas APIs para asociar una View como etiqueta de otra View. La etiqueta de cada vista está disponible para los servicios de accesibilidad a través de AccessibilityNodeInfo.

Cámara mejorada con HDR

Android 4.2 presenta una nueva interfaz y canalización de hardware de cámara para un mejor rendimiento. En los dispositivos compatibles, las apps pueden usar un nuevo Modo panorámico de cámara HDR para capturar una imagen con técnicas de imágenes de alto rango dinámico.

Además, el framework ahora proporciona una API para permitir que las apps verifiquen si el sonido del obturador de la cámara se puede inhabilitar. Luego, las apps pueden permitir que el usuario inhabilite el sonido o elija un sonido alternativo en lugar del sonido estándar del obturador (recomendado).

Procesamiento de Renderscript

En Android 4.2, el procesamiento de Renderscript presenta nuevas funciones de secuencia de comandos, nuevas optimizaciones e integración directa de GPU para obtener el máximo rendimiento en operaciones de procesamiento.

Filterscript

Filterscript es un subconjunto de Renderscript que se centra en el procesamiento de imágenes optimizado en una amplia gama de chipsets de dispositivos. Los desarrolladores pueden escribir sus operaciones de procesamiento de imágenes en Filterscript con la API de entorno de ejecución de Renderscript estándar, pero con restricciones más estrictas que garantizan una compatibilidad más amplia y una optimización mejorada entre CPU, GPU y DSP.

Filterscript es ideal para operaciones de procesamiento y procesamiento de imágenes simples que aceleran hardware por hardware, como las que se pueden escribir para sombreadores de fragmentos OpenGL ES. Debido a que establece un conjunto relajado de restricciones en el hardware, tus operaciones se optimizan y aceleran en más tipos de chipsets de dispositivos. Cualquier aplicación que se oriente al nivel de API 17, o a un nivel superior, puede usar Filterscript.

Elementos intrínsecos de secuencias de comandos

En Android 4.2, Renderscript agrega compatibilidad con un conjunto de elementos intrínsecos de secuencias de comandos: primitivas de filtrado implementadas previamente que se aceleran para reducir la cantidad de código que debes escribir y para garantizar que tu app obtenga la máxima ganancia de rendimiento posible.

Las funciones intrínsecas están disponibles para mezclas, desenfoque, matriz de color, convolución de 3 x 3 y 5 x 5, tabla de consulta por canal y conversión de un búfer YUV de Android a RGB.

Grupos de secuencias de comandos

Ahora puedes crear grupos de secuencias de comandos de Renderscript y ejecutarlos todos con una sola llamada como si fueran parte de una sola secuencia de comandos. Esto permite que Renderscript optimice la ejecución de las secuencias de comandos de formas que no podría hacerlo si las secuencias de comandos se ejecutaran individualmente.

Gráfico de optimizaciones de Renderscipt

Las comparativas de procesamiento de imágenes de Renderscript se ejecutan en diferentes versiones de la plataforma de Android (Android 4.0, 4.1 y 4.2) solo en CPU de un dispositivo Galaxy Nexus.

Comparativas de procesamiento de imágenes de Renderscript que analizan operaciones ejecutadas con GPU + CPU en comparación con las ejecutadas solo en CPU en el mismo dispositivo Nexus 10.

Si tienes que ejecutar un grafo acíclico dirigido de operaciones Renderscript, puedes usar una clase de compilador para crear un grupo de secuencias de comandos que defina las operaciones. En el tiempo de ejecución, Renderscript optimiza el orden de ejecución y las conexiones entre estas operaciones para obtener el mejor rendimiento.

Mejoras continuas de optimización

Cuando usas Renderscript para operaciones de cálculo, tus apps se benefician de las mejoras continuas de rendimiento y optimización en el propio motor de Renderscript, sin ningún impacto en el código de tu app ni ninguna necesidad de recompilación.

A medida que mejora la optimización, tus operaciones se ejecutan más rápido y en más conjuntos de chips, sin que tengas que realizar ningún trabajo. En el gráfico de la derecha, se destaca la mejora de rendimiento que ofrecen las mejoras continuas de optimización de RenderScript en versiones sucesivas de la plataforma de Android.

Procesamiento de GPU

El procesamiento de Renderscript es la primera plataforma de cómputos adaptada para ejecutarse directamente en una GPU de dispositivo móvil. Ahora aprovecha automáticamente los recursos de computación de GPU siempre que sea posible para mejorar el rendimiento. Con la integración de GPU, incluso los cálculos más complejos para procesamiento de imágenes o gráficos pueden ejecutarse con un rendimiento significativamente mejorado.

Cualquier app que use Renderscript en un dispositivo compatible puede beneficiarse inmediatamente de esta integración de GPU, sin necesidad de volver a compilar. La tablet Nexus 10 es el primer dispositivo que admite esta integración.

Nuevas opciones para desarrolladores integradas

El sistema Android 4.2 incluye una variedad de nuevas opciones para desarrolladores que facilitan la creación de apps de excelente aspecto que funcionan bien. Las nuevas opciones exponen funciones para depurar y generar perfiles de tu app desde cualquier dispositivo o emulador.

En los dispositivos con Android 4.2, las opciones para desarrolladores están ocultas de forma predeterminada, lo que ayuda a crear una mejor experiencia para los usuarios. Puedes revelarlas en cualquier momento. Para ello, presiona 7 veces en Configuración > Acerca del teléfono > Número de compilación en cualquier dispositivo Android compatible.

Las nuevas opciones para desarrolladores te ofrecen más formas de perfilar y depurar en un dispositivo.

Las nuevas opciones para desarrolladores en Android 4.2 incluyen las siguientes:

  • Iniciar informe de errores: Toma inmediatamente una captura de pantalla, vuelca la información del estado del dispositivo en el almacenamiento local de archivos y, luego, la adjunta a un nuevo mensaje de correo electrónico saliente.
  • Informes de errores en el menú de encendido: Agrega una nueva opción al menú de encendido y la configuración rápida del dispositivo para iniciar un informe de errores (ver arriba).
  • Verificar aplicaciones por USB: Te permite inhabilitar las verificaciones de apps para la transferencia de apps por USB, sin dejar de verificar apps de otras fuentes, como el navegador. Esto puede acelerar el proceso de desarrollo y mantener habilitada la función de seguridad.
  • Mostrar actualizaciones de capas de hardware: Las capas de hardware parpadean en color verde cuando se actualizan.
  • Mostrar superposición GPU: Destaca las áreas de superposición de la GPU.
  • Forzar MSAA 4x: Habilita MSAA 4x en apps Open GL ES 2.0.
  • Simular pantallas secundarias: crea una o más ventanas de superposición no seguras en la pantalla actual para usar como pantalla remota simulada. Puedes controlar el tamaño y la densidad de la pantalla simulada.
  • Seguimientos de OpenGL: Te permite hacer un seguimiento de la ejecución de OpenGL con Logcat, Systrace o la pila de llamadas en glGetError.

Nuevas tecnologías de plataforma

Android 4.2 incluye una variedad de nuevas y mejoradas tecnologías de plataforma que permiten admitir casos de uso de comunicaciones innovadoras en una amplia variedad de dispositivos de hardware. En la mayoría de los casos, las nuevas tecnologías y mejoras de la plataforma no afectan directamente a tus apps, por lo que puedes beneficiarte de ellas sin ninguna modificación.

Mejoras de seguridad

Cada versión de Android incluye decenas de mejoras de seguridad para proteger a los usuarios. A continuación, se muestran algunas de las mejoras de Android 4.2:

  • Verificación de aplicaciones: Los usuarios pueden habilitar la opción "Verificar aplicaciones" para que un verificador de aplicaciones controle las aplicaciones antes de la instalación. La verificación de apps puede alertar al usuario si intenta instalar una app que podría ser dañina. Si una aplicación es particularmente mala, puede bloquear la instalación.
  • Mayor control de los SMS premium: Android proporcionará una notificación si una aplicación intenta enviar SMS a un código corto que usa servicios premium que podrían generar cargos adicionales. El usuario puede elegir si permite que la aplicación envíe el mensaje o lo bloquee.
  • VPN siempre activada: La VPN se puede configurar para que las aplicaciones no tengan acceso a la red hasta que se establezca una conexión VPN. Esto evita que las aplicaciones envíen datos a través de otras redes.
  • Fijación de certificados: La implementación de SSL de libcore ahora es compatible con la fijación de certificados. Los dominios fijados recibirán una falla de validación de certificados si el certificado no se encadena a un conjunto de certificados esperados. Esto brinda protección contra posibles compromisos de las autoridades certificadoras.
  • Visualización mejorada de los permisos de Android: Los permisos se organizaron en grupos que los usuarios pueden comprender más fácilmente. Durante la revisión de los permisos, el usuario puede hacer clic en el permiso para ver información más detallada sobre ellos.
  • Endurecimiento instalado: el daemon instalado no se ejecuta como el usuario raíz, lo que reduce la posible superficie de ataque para la elevación de privilegios raíz.
  • Endurecimiento de la secuencia de comandos init: Ahora, las secuencias de comandos init aplican la semántica O_NOFOLLOW para evitar ataques relacionados con symlink.
  • FORTIFY_SOURCE: Android ahora implementa FORTIFY_SOURCE. Las bibliotecas y aplicaciones del sistema lo usan para evitar daños en la memoria.
  • Configuración predeterminada de ContentProvider: Las aplicaciones que se orientan al nivel de API 17 tendrán "exportar" establecido en "falso" de forma predeterminada para cada ContentProvider, lo que reduce la superficie de ataque predeterminada para las aplicaciones.
  • Criptografía: Se modificaron las implementaciones predeterminadas de SecureRandom y Cipher.RSA para usar OpenSSL. Se agregó compatibilidad con SSLSocket para TLSv1.1 y TLSv1.2 mediante OpenSSL 1.0.1.
  • Correcciones de seguridad: Las bibliotecas de código abierto actualizadas con correcciones de seguridad incluyen WebKit, libpng, OpenSSL y LibXML. Android 4.2 también incluye correcciones para las vulnerabilidades específicas de Android. Se proporcionó información sobre estas vulnerabilidades a los miembros de Open Handset Alliance, y las correcciones están disponibles en el Proyecto de código abierto de Android. Para mejorar la seguridad, es posible que algunos dispositivos con versiones anteriores de Android también incluyan estas correcciones.

Nueva pila Bluetooth

Android 4.2 presenta una nueva pila Bluetooth optimizada para su uso con dispositivos Android. La nueva pila Bluetooth desarrollada en colaboración entre Google y Broadcom reemplaza la pila basada en BlueZ y proporciona compatibilidad y confiabilidad mejoradas.

Audio de baja latencia

Android 4.2 mejora la compatibilidad con la reproducción de audio de baja latencia, a partir de las mejoras de la versión de Android 4.1 para la latencia de salida de audio con OpenSL ES, Soundpool y API de generador de tonos. Estas mejoras dependen de la compatibilidad con el hardware. Los dispositivos que ofrecen estas funciones de audio de baja latencia pueden anunciar su compatibilidad con apps a través de una constante de función de hardware. Se proporcionan nuevas APIs de AudioManager para consultar la tasa de muestreo de audio nativa y el tamaño del búfer, para usar en dispositivos que reclaman esta función.

Nueva interfaz de hardware de la cámara

Android 4.2 presenta una nueva implementación de la pila de cámaras. El subsistema de cámara incluye implementaciones para componentes de la canalización de la cámara, como la captura en modo de ráfaga con controles de procesamiento.

Nueva interfaz de hardware para NFC y nueva interfaz de controlador

Android 4.2 presenta compatibilidad con controladores basados en el estándar NCI de NFC Forum. NCI proporciona un protocolo de comunicación estándar entre un controlador NFC (NFCC) y un host del dispositivo, y la nueva pila NFC desarrollada en colaboración entre Google y Broadcom lo admite.

Optimizaciones de tiempo de ejecución de Dalvik

El tiempo de ejecución de Dalvik incluye mejoras de rendimiento y seguridad en una gama más amplia de arquitecturas:

  • Compatibilidad con JIT x86 de Intel y compatibilidad con JIT MIPS de MIPS
  • Parámetros optimizados de recolección de elementos no utilizados para dispositivos con menos de 512 MB
  • Las implementaciones predeterminadas de SecureRandom y Cipher.RSA ahora usan OpenSSL
  • Compatibilidad de SSLSocket con TLSv1.1 y TLSv1.2 mediante OpenSSL 1.0.1
  • Nueva compatibilidad intrínseca para los métodos StrictMath abs, min, max y sqrt
  • BouncyCastle se actualizó a la versión 1.47
  • zlib se actualizó a la versión 1.27
  • dlmalloc se actualizó a la versión 2.8.6

Android 4.1

¡Bienvenido a Android 4.1, la primera versión de Jelly Bean!

Android 4.1 es la versión más rápida y fluida de Android hasta la fecha. Realizamos mejoras en toda la plataforma y agregamos funciones nuevas y geniales para usuarios y desarrolladores. En este documento, se ofrece un panorama general de las novedades para desarrolladores.

Consulta el documento de las API de Android 4.1 para obtener un panorama detallado de las nuevas API de desarrollador.

Obtén más información acerca de las funciones de Jelly Bean para usuarios en www.android.com.

Más rápido, más fluido y con mayor respuesta

Android 4.1 está optimizado para ofrecer el mejor rendimiento de Android y la latencia de la pantalla táctil más baja en una interfaz de usuario intuitiva y sencilla.

A fin de garantizar una velocidad de fotogramas constante, Android 4.1 extiende la sincronización de vsync en todos los dibujos y animaciones realizados por el marco de Android. Todo se ejecuta a la vez con una señal de monitoreo de funcionamiento de vsync de 16 milisegundos como referencia: el procesamiento de aplicaciones, los eventos de la pantalla táctil, la composición de la pantalla y la actualización de la pantalla, de manera que los fotogramas no se atrasan ni se adelantan.

Android 4.1 también agrega triple almacenamiento en búfer en la canalización de gráficos, para una representación más coherente que hace que todo se sienta más fluido, desde el desplazamiento hasta la paginación y las animaciones.

Android 4.1 reduce la latencia de la pantalla táctil no solo mediante la sincronización táctil para la sincronización de vsync, sino también mediante la anticipación de dónde estará tu dedo en el momento de la actualización de la pantalla. De esta manera, se obtiene una respuesta táctil más reactiva y uniforme. Además, después de períodos de inactividad, Android aplica un aumento de entrada de CPU en el próximo evento táctil para asegurarse de que no haya latencia.

Las herramientas pueden ayudarte a obtener el mejor rendimiento en tus apps. Android 4.1 está diseñado para funcionar con una herramienta nueva llamada systrace, que recopila datos directamente del kernel de Linux para producir un panorama general de las actividades del sistema. Los datos se representan como un grupo de gráficos de series temporales apilados verticalmente para ayudar a aislar las interrupciones de procesamiento y otros problemas. La herramienta ya está disponible en el SDK de Android (versión R20 de Herramientas o superior).

Accesibilidad mejorada

Las nuevas API para servicios de accesibilidad te permiten controlar gestos y administrar el enfoque de accesibilidad a medida que el usuario se mueve por los elementos en pantalla y los botones de navegación con gestos de accesibilidad, accesorios y otras entradas. El sistema Talkback y la función Explorar por tacto se rediseñaron para usar el enfoque de accesibilidad a fin de simplificar el uso y ofrecer un conjunto completo de API para desarrolladores.

Los servicios de accesibilidad pueden vincular sus propios tutoriales a la configuración de Accesibilidad con el fin de ayudar a los usuarios a configurar y usar sus servicios.

Las apps que usan componentes View estándar heredan la compatibilidad con las nuevas funciones de accesibilidad automáticamente, sin sufrir ningún cambio en su código. Las apps que usan objetos View personalizados pueden usar las nuevas API de nodo de accesibilidad para indicar las partes del objeto View que son de interés para los servicios de accesibilidad.

Compatibilidad con usuarios internacionales

Compatibilidad con texto bidireccional y otros idiomas

Android 4.1 te ayuda a llegar a más usuarios gracias a la compatibilidad con texto bidireccional en los elementos TextView y EditText. Las apps pueden mostrar texto o controlar la edición de texto en secuencias de comandos de izquierda a derecha o de derecha a izquierda. Además, pueden usar las nuevas configuraciones regionales en árabe y hebreo, y fuentes asociadas.

También se incluyen los siguientes tipos de compatibilidad de idiomas:

  • Idiomas índicos adicionales: canarés, telugu y malabar
  • Los nuevos caracteres de Emoji de la versión 6.0 de Unicode
  • Mejor compatibilidad de glifos para usuarios japoneses (procesa versiones específicas de glifos en japonés cuando el idioma del sistema está configurado en japonés)
  • Glifos árabes optimizados para WebViews además de los glifos árabes para TextViews
  • Compatibilidad con texto vertical en WebViews, que incluye texto ruby y glifos de texto vertical adicionales
  • La negrita sintética ahora está disponible para todas las fuentes que no tienen glifos en negrita dedicados

Mapas de teclas que el usuario puede instalar

La plataforma ahora admite mapas de teclas que el usuario puede instalar, como teclados internacionales adicionales y tipos de diseño especiales. De manera predeterminada, Android 4.1 incluye 27 mapas de teclas internacionales para teclados, incluido Dvorak. Cuando los usuarios conectan un teclado, pueden ir a la app de Configuración y seleccionar uno o más mapas de teclas para usar con ese teclado. Al escribir, los usuarios pueden cambiar entre mapas de teclas con una combinación de teclas (Ctrl + espacio).

Puedes crear una app para publicar mapas de teclas adicionales en el sistema. El APK debería incluir los recursos de diseño del teclado, sobre la base del formato estándar de mapa de teclas de Android. La aplicación puede ofrecer diseños de teclado adicionales para el usuario mediante la declaración de un receptor de emisión adecuado para ACTION_QUERY_KEYBOARD_LAYOUTS en su manifiesto.

Nuevas formas de crear una IU atractiva

Los desarrolladores pueden crear estilos de notificaciones personalizados como los que se muestran en los ejemplos anteriores para mostrar contenido enriquecido y acciones.

Notificaciones expandibles

Las notificaciones han sido durante mucho tiempo una función única y popular en Android. Los desarrolladores pueden usarlas para colocar frente a los usuarios información importante o basada en el tiempo en la barra de notificaciones, fuera de la IU normal de la app.

Android 4.1 incluye una actualización importante en el marco de notificaciones de Android. Ahora las apps pueden mostrar a los usuarios notificaciones más grandes y enriquecidas que se pueden expandir y contraer con un pellizco o deslizamiento. Las notificaciones admiten nuevos tipos de contenido, incluidas fotos, tienen prioridad configurable y hasta pueden incluir múltiples acciones.

Mediante un generador de notificaciones mejorado, las apps pueden crear notificaciones que usen un área más grande, hasta 256 dp de altura. Hay tres estilos de notificación con plantilla disponibles:

  • BigTextStyle: Es una notificación que incluye un objeto TextView de varias líneas.
  • BigInboxStyle: Es una notificación que muestra cualquier tipo de lista, como mensajes, titulares, etc.
  • BigPictureStyle: Es una notificación que muestra contenido visual, como un mapa de bits.

Además de los estilos con plantilla, puedes crear tus propios estilos de notificación con cualquier objeto View remoto.

Las apps pueden agregar hasta tres acciones a una notificación, que se mostrarán debajo del contenido de la notificación. Las acciones permiten a los usuarios responder directamente a la información en la notificación de varias formas, como por correo electrónico o por llamada telefónica, sin visitar la app.

Con notificaciones expandibles, las apps pueden brindar más información al usuario, sin esfuerzo y a pedido. Los usuarios mantienen el control y pueden mantener presionada cualquier notificación para obtener información acerca del remitente y, opcionalmente, inhabilitar otras notificaciones de la app.

Los widgets de apps pueden cambiar de tamaño automáticamente para adaptarse a la pantalla principal y cargar contenido diferente a medida que cambian sus tamaños.

Widgets de apps de tamaño variable

Android 4.1 presenta widgets de apps mejorados que pueden cambiar de tamaño automáticamente, según el lugar en que el usuario los suelte en la pantalla principal, el tamaño al que los expanda y la cantidad de espacio disponible en la pantalla principal. Las nuevas API de widgets de apps te permiten aprovechar esto para optimizar el contenido del widget de tu app a medida que cambia el tamaño de los widgets.

Cuando un widget cambia de tamaño, el sistema notifica al proveedor de widgets de la app host y este puede volver a cargar el contenido en el widget si es necesario. Por ejemplo, un widget podría mostrar gráficos más grandes y enriquecidos, o bien opciones y funcionalidades adicionales. Los desarrolladores siguen teniendo el control sobre los tamaños máximos y mínimos, y pueden actualizar otras opciones de widgets cuando sea necesario.

También puedes proporcionar diseños horizontales y verticales independientes para sus widgets, que el sistema amplía según corresponda cuando cambia la orientación de la pantalla.

Los widgets de apps ahora se pueden mostrar en selectores de terceros y otras apps host a través de un nuevo intent vinculado (AppWidgetManager.ACTION_APPWIDGET_BIND).

Navegación de tareas simplificada

Android 4.1 te facilita la administración de la navegación "hacia arriba" a la que los usuarios pueden acceder desde el interior de tus apps y ayuda a garantizar una experiencia constate para los usuarios.

Puedes definir la navegación hacia arriba prevista para los componentes individuales del objeto Activity de tu IU agregando un nuevo atributo XML al archivo de manifiesto de la app. Durante el tiempo de ejecución, a medida que se inician los objetos Activity, el sistema extrae el árbol de navegación hacia arriba del archivo de manifiesto y crea automáticamente la navegación de prestación hacia arriba en la barra de acción. Los desarrolladores que declaran la navegación hacia arriba en el manifiesto ya no necesitan administrar la navegación mediante devolución de llamada en tiempo de ejecución, aunque también pueden hacerlo si es necesario.

También está disponible una nueva clase TaskStackBuilder que te permite armar rápidamente una pila de tareas sintética para que comience de inmediato o para usarla cuando se inicia un objeto Activity desde un PendingIntent. La creación de una pila de tareas sintética resulta especialmente útil cuando los usuarios inician objetos Activity desde vistas remotas, como desde widgets y notificaciones de la pantalla principal, ya que permite al desarrollador proporcionar una experiencia administrada y coherente en la navegación hacia atrás.

Animaciones sencillas para el inicio de Activity

Puedes usar una nueva clase de ayuda, ActivityOptions, para crear y controlar la animación que se muestra cuando inicias objetos Activity. Con esa clase, puedes especificar recursos de animación personalizados, para usarlos al iniciar la actividad, o solicitar nuevas animaciones de zoom que comiencen desde cualquier rectángulo que especifiques en la pantalla y que, de manera opcional, incluya un mapa de bits en miniatura.

Transiciones a los modos sin luces y de pantalla completa

Los nuevos indicadores de la IU del sistema del objeto View te permiten realizar una transición limpia de una IU normal de la app (con la barra de acción, la barra de navegación y la barra del sistema visibles), al "modo de luces apagadas" (con la barra de estado y la barra de acción ocultas, y la barra de navegación atenuada) o el "modo de pantalla completa" (con la barra de estado, la barra de acción y la barra de navegación ocultas).

Nuevos tipos de objetos View remotos

Los desarrolladores ahora pueden usar las vistas GridLayout y ViewStub en los widgets y notificaciones de la pantalla principal. GridLayout te permite estructurar el contenido de tus vistas remotas y administrar las alineaciones de vistas secundarias con una jerarquía de IU más superficial. ViewStub es un objeto View invisible de tamaño cero que se puede usar para ampliar lentamente los recursos de diseño durante el tiempo de ejecución.

Vista previa del fondo animado

Android 4.1 permite a los usuarios encontrar e instalar fondos de pantalla animados desde apps que los incluyen. Si tu app incluye fondos animados, ahora puedes iniciar una actividad (ACTION_CHANGE_LIVE_WALLPAPER) que muestra al usuario una vista previa del fondo animado desde tu propia app. Desde la vista previa, los usuarios pueden cargar directamente el fondo animado.

Fotos de contacto de mayor resolución

Con Android 4.1, puedes almacenar fotos de contactos de hasta 720 x 720, por lo que los contactos son más enriquecidos y personales. Las apps pueden almacenar y recuperar fotos de contacto en ese tamaño o usar cualquier otro tamaño necesario. El tamaño máximo de las fotos admitido en dispositivos específicos puede variar, por lo que las apps deben consultar al proveedor de contactos integrado en el tiempo de ejecución para obtener el tamaño máximo del dispositivo actual.

Nuevos tipos y funciones de entrada

Obtén información acerca de los dispositivos que se agregaron y se quitaron

Las apps pueden registrarse para recibir una notificación cuando se conectan dispositivos de entrada nuevos mediante USB, Bluetooth o cualquier otro tipo de conexión. Pueden usar esta información para cambiar el estado o las funciones según sea necesario. Por ejemplo, un juego podría recibir una notificación de que hay un nuevo teclado o joystick conectado, lo que indicaría la presencia de un nuevo jugador.

Consulta las funciones de los dispositivos de entrada

Android 4.1 incluye API que permiten que las apps y los juegos aprovechen al máximo todos los dispositivos de entrada que estén conectados y disponibles.

Las apps pueden consultar al administrador de dispositivos para enumerar todos los dispositivos de entrada conectados actualmente y conocer las funciones de cada uno.

Control de vibración en dispositivos de entrada

Entre otras funciones, las apps ahora pueden usar cualquier servicio de vibración asociado con un dispositivo de entrada conectado, como los controladores Rumble Pak.

Animación y gráficos

Vsync para apps

Extender vsync a todo el framework de Android conduce a una velocidad de fotogramas más coherente y a una IU fluida y estable. Para que las apps también se beneficien, Android 4.1 extiende la sincronización de vsync a todos los dibujos y animaciones que inicien las apps. Esto les permite optimizar las operaciones en procesamiento de IU y proporciona una base de tiempo estable para la sincronización.

Las apps pueden aprovechar la sincronización de vsync de forma gratuita gracias al marco de animación de Android. El marco de animación ahora usa la sincronización de vsync para controlar automáticamente la sincronización entre los animadores.

Para usos especializados, las apps pueden acceder a la sincronización de vsync mediante las API expuestas por una nueva clase de Choreographer. Las apps pueden solicitar la invalidación en el próximo marco de vsync, lo cual es una buena manera de programar la animación cuando la app no está usando el marco de animación. Para usos más avanzados, las apps pueden publicar una devolución de llamada que la clase Choreographer ejecutará en el siguiente marco.

Nuevos tipos de transición y acciones de animación

El marco de animación ahora te permite definir acciones de inicio y finalización que se realizan al ejecutar las animaciones de ViewPropertyAnimator, para ayudar a sincronizarlas con otras animaciones o acciones en la aplicación. La acción puede ejecutar cualquier objeto ejecutable. Por ejemplo, el objeto ejecutable podría especificar otra animación para que comience cuando finalice la anterior.

Ahora también puedes especificar que un ViewPropertyAnimator use una capa durante el curso de su animación. Anteriormente, era una práctica recomendada animar vistas complicadas. Para ello, se configuraba una capa antes de comenzar una animación y luego se administraba un evento onAnimationEnd() para quitar la capa al finalizar la animación. Ahora, el método withLayer() en ViewPropertyAnimator simplifica este proceso con una sola llamada al método.

Un nuevo tipo de transición en LayoutTransition te permite automatizar animaciones en respuesta a todos los cambios de diseño en un ViewGroup.

Nuevos tipos de conectividad

Android Beam

Android Beam es una tecnología popular basada en NFC que permite a los usuarios compartir contenido instantáneamente, con solo hacer que dos teléfonos compatibles con NFC se toquen entre sí.

En Android 4.1, Android Beam hace que sea más fácil compartir imágenes, videos u otras cargas útiles al aprovechar Bluetooth para la transferencia de datos. Cuando el usuario activa una transferencia, Android Beam pasa de NFC a Bluetooth, lo que facilita la administración de la transferencia de un archivo de un dispositivo a otro.

Descubrimiento de servicios de red Wi-Fi

Android 4.1 presenta compatibilidad con descubrimiento de servicios basados en DNS multidifusión, que permite que las aplicaciones encuentren servicios ofrecidos por dispositivos similares y se conecten a ellos mediante redes Wi-Fi, incluidos dispositivos móviles, impresoras, cámaras, reproductores multimedia y otros. Los desarrolladores pueden aprovechar el descubrimiento de servicios de red Wi-Fi para crear juegos multiplataforma o multijugador y experiencias de aplicaciones.

Mediante la API de descubrimiento de servicios, las apps pueden crear y registrar cualquier tipo de servicio, para que cualquier otro dispositivo con NSD lo descubra. El servicio se anuncia por multidifusión a través de la red con un identificador de string de lenguaje natural, que permite al usuario identificar más fácilmente el tipo de servicio.

Los dispositivos de consumo pueden usar la API para buscar y descubrir servicios disponibles desde dispositivos conectados a la red Wi-Fi local. Después del descubrimiento, las apps pueden usar la API para resolver el servicio a una dirección IP y un puerto mediante el cual puede establecer una conexión de socket.

Puedes aprovechar esta API para crear nuevas funciones en tus aplicaciones. Por ejemplo, podrías permitir a los usuarios conectarse a una cámara web, una impresora o una app de otro dispositivo móvil que sea compatible con conexiones P2P Wi-Fi.

Descubrimiento de servicios Wi-Fi P2P

Ice Cream Sandwich presentó compatibilidad con Wi-Fi entre pares (P2P), una tecnología que permite a las apps descubrir y sincronizar directamente mediante una conexión entre pares de alto ancho de banda (que cumple con el programa de certificación Wi-Fi DirectTM de Wi-Fi Alliance). P2P Wi-Fi es una forma ideal de compartir contenido multimedia, fotos, archivos y otros tipos de datos y sesiones, incluso cuando no hay una red móvil o Wi-Fi disponible.

Android 4.1 lleva P2P Wi-Fi más allá, y agrega compatibilidad de API para el descubrimiento de servicios asociados previamente. El descubrimiento de servicios asociados previamente permite que tus apps obtengan información más útil de los dispositivos cercanos sobre los servicios que admiten, antes de que intenten conectarse. Las apps pueden iniciar el descubrimiento de un servicio específico y filtrar la lista de dispositivos descubiertos en función de aquellos que realmente admiten el servicio o la aplicación de destino.

Esto significa, por ejemplo, que tu app podría descubrir solo dispositivos que sean "impresoras" o que tengan un juego específico disponible, en lugar de descubrir todos los dispositivos P2P Wi-Fi cercanos. Por otro lado, tu app puede anunciar el servicio que proporciona a otros dispositivos, que pueden descubrirlo y luego negociar una conexión. Esto simplifica enormemente el descubrimiento y la sincronización para los usuarios y permite que las apps aprovechen P2P Wi-Fi de manera más efectiva.

Con el descubrimiento del servicio P2P Wi-Fi, puedes crear apps y juegos multijugador que puedan compartir fotos, videos, juegos, puntuaciones o casi cualquier otro elemento, todo sin requerir ninguna red móvil o de Internet. Tus usuarios pueden conectarse solo con una conexión P2P directa, lo que evita el uso de ancho de banda móvil.

Administración del ancho de banda de red

Android 4.1 ayuda a las apps a administrar el uso de datos de manera adecuada cuando el dispositivo está conectado a una red de uso medido, incluida la conexión mediante dispositivo móvil o una zona móvil. Las aplicaciones pueden consultar si la red actual es de uso medido antes de comenzar una descarga grande que de otro modo podría ser relativamente costosa para el usuario. Con la API, ahora puedes obtener una imagen clara de qué redes tienen en cuenta el uso de datos y administrar tu actividad de red en consecuencia.

Nuevas funciones multimedia

Acceso a códecs multimedia

Android 4.1 proporciona acceso de bajo nivel a los códecs de hardware y software de la plataforma. Las apps pueden consultar el sistema para descubrir qué códecs multimedia de bajo nivel están disponibles en el dispositivo y luego usarlos según sus necesidades. Por ejemplo, ahora puedes crear varias instancias de un códec multimedia, poner en cola búferes de entrada y recibir búferes de salida a cambio. Además, el marco de códec multimedia admite contenido protegido. Las apps pueden consultar un códec disponible que pueda reproducir contenido protegido con una solución DRM disponible en el dispositivo.

Audio USB

La compatibilidad de salida de audio USB permite a los proveedores de hardware crear hardware, como conectores de audio que interactúan con dispositivos Android. Esta funcionalidad también se expone con el kit de desarrollo de accesorios abiertos (ADK) de Android para ofrecer a todos los desarrolladores la oportunidad de crear su propio hardware.

Activación de grabación de audio

Ahora, Android te permite activar la grabación de audio según la finalización de una pista de reproducción de audio, lo cual resulta útil para situaciones como reproducir un tono para indicar a los usuarios que deben comenzar a hablar para grabar sus voces. Esta función te ayuda a sincronizar la grabación para que no se grabe el audio que se está reproduciendo actualmente y evita que las grabaciones comiencen demasiado tarde.

Audio multicanal

Android 4.1 admite el audio multicanal en dispositivos que tienen salida de audio multicanal por hardware mediante el puerto HDMI. El audio multicanal te permite ofrecer experiencias multimedia enriquecidas a los usuarios para aplicaciones como juegos, apps de música y reproductores de video. Para los dispositivos que no cuentan con el hardware compatible, Android mezcla automáticamente el audio para la cantidad de canales admitidos por el dispositivo (generalmente estéreo).

Android 4.1 también agrega compatibilidad incorporada para codificar y decodificar audio AAC 5.1.

Preprocesamiento de audio

Los desarrolladores pueden aplicar efectos de preprocesamiento al audio que se está grabando, como reducción de ruido para mejorar la calidad de grabación de voz, cancelación del eco para el eco acústico y control de ganancia automática para audio con niveles de volumen inconstantes. Las apps que requieren grabación de audio claro y de alta calidad se beneficiarán de estos preprocesadores.

Encadenamiento de audio

MediaPlayer admite el encadenamiento de transmisiones de audio para reproducir archivos de audio sin pausas. Esta función es útil para apps que requieren transiciones perfectas entre archivos de audio, como reproductores de música para reproducir álbumes con pistas o juegos continuos.

Media Router

Las nuevas API de MediaRouter, MediaRouteActionProvider y MediaRouteButton proporcionan IU y mecanismos estándar para elegir dónde reproducir el contenido multimedia. Se incluye compatibilidad integrada con auriculares con cable y auriculares y bocinas Bluetooth a2dp. También puedes agregar tus propias opciones de enrutamiento dentro de tu app.

Procesamiento de Renderscript

Android 4.1 amplía el procesamiento de Renderscript para brindarte más flexibilidad. Ahora puedes hacer un muestreo de texturas en tus secuencias de comandos de procesamiento de Renderscript; también hay nuevos programas disponibles para definir la precisión de punto flotante requerida por tus secuencias de comandos. Esto te permite habilitar instrucciones NEON, como operaciones rápidas de matemáticas de vector en la ruta de la CPU, que de otro modo no serían posibles con el estándar IEEE 754-2008 completo.

Ahora puedes depurar tus secuencias de comandos de procesamiento de Renderscript en emuladores basados en x86 y dispositivos de hardware. También puedes definir múltiples kernels de estilo raíz en un solo archivo de origen de Renderscript.

Navegador y WebView de Android

En Android 4.1, el navegador y los WebViews de Android incluyen las siguientes mejoras:

  • Mejor experiencia del usuario de video HTML5, que incluye tocar para reproducir/pausar y una transición fluida del modo de intercalado al modo de pantalla completa.
  • Velocidad de procesamiento mejorada y uso de memoria reducido para un mejor rendimiento de desplazamiento y zoom.
  • Rendimiento mejorado de animación HTML5/CSS3/Canvas.
  • Entrada de texto mejorada.
  • Motor JavaScript actualizado (V8) para un mejor rendimiento de JavaScript.
  • Compatibilidad con la especificación HTML5 de captura de contenido multimedia actualizada (el atributo "capture" en los elementos de entrada type=file).

API y servicios de Google

Para ampliar aún más las funciones de Android, hay varios servicios nuevos disponibles para Android.

Google Cloud Messaging para Android

Google Cloud Messaging (GCM) es un servicio que permite a los desarrolladores enviar datos en mensajes cortos a sus usuarios de dispositivos Android, sin necesidad de contar con una solución de sincronización propia.

GCM controla todos los aspectos de la colocación de los mensajes en cola y los entrega de manera eficaz a los dispositivos Android específicos. Admite la multidifusión de mensajes y puede llegar a hasta 1,000 dispositivos conectados de manera simultánea con una sola solicitud. También admite cargas útiles de mensajes, lo que significa que, además de enviar mensajes de señales a una app en el dispositivo, los desarrolladores pueden enviar hasta 4,000 de datos.

Google Cloud Messaging es completamente gratuito para todos los desarrolladores y el registro es fácil. Consulta la página de Google Cloud Messaging para ver las descargas, la documentación y el registro.

Encriptación de apps

A partir de Android 4.1, Google Play ayudará a proteger los activos de la aplicación mediante la encriptación de todas las aplicaciones pagadas con una clave específica del dispositivo antes de que se entreguen y almacenen en un dispositivo.

Actualizaciones inteligentes de apps

Las actualizaciones inteligentes de apps son una nueva función de Google Play que ofrece una mejor manera de enviar actualizaciones de apps a los dispositivos. Cuando los desarrolladores publican una actualización, Google Play ahora entrega solo los bits que cambiaron a los dispositivos, en lugar de todo el APK. Esto hace que las actualizaciones sean mucho más livianas en la mayoría de los casos, por lo que son más rápidas de descargar, ahorrar batería y conservar el uso del ancho de banda en el plan de datos móviles de los usuarios. En promedio, una actualización inteligente de app tiene aproximadamente 1/3 del tamaño de una actualización completa de APK.

Servicios de Google Play

Los Servicios de Google Play ayudan a los desarrolladores a integrar los servicios de Google, como la autenticación, en sus apps entregadas mediante Google Play.

Los Servicios de Google Play se aprovisionan automáticamente a los dispositivos de usuario final mediante Google Play, por lo que todo lo que necesitas es una biblioteca de cliente liviano en tus apps.

Debido a que tu app solo contiene la biblioteca de clientes pequeños, puedes aprovechar estos servicios sin un gran aumento en el tamaño de descarga y la huella de almacenamiento. Además, Google Play ofrecerá actualizaciones periódicas de los servicios, sin que los desarrolladores necesiten publicar actualizaciones de la app para aprovecharlas.

Para obtener más información sobre las API incluidas en los Servicios de Google Play, consulta la página del desarrollador de Servicios de Google Play.