ANDROID 4.0 PARA DESARROLLADORES (2ª parte)
miércoles, noviembre 16, 2011 at 7:10PM
MayteBG in Noticias Android
En un post anterior vimos las características más importantes de Android 4.0 para usuarios. A continuación vamos a ver las características más importantes del nuevo Android Ice Cream Sandwich para desarrolladores. Es una traducción de la página de desarrolladores de Android. También podéis echar un vistazo a los enlaces que están al final del artículo, todos son interesantes para estar informados de la nueva versión de Android.
INTERFAZ DE USUARIO UNIFICADA PARA TELÉFONOS, TABLETS Y MÁS
Android 4.0 trae un framework para la interfaz de usuario unificado, que permite crear aplicaciones elegantes e innovadoras para teléfonos, tablets y más. Se incluyen todos los elementos de interfaz y APIs que se incluían en Android 3.x, Fragments, Content loaders, notificaciones, widgets para la pantalla de inicio, etc, así como nuevos elementos y APIs.
Para los desarrolladores esto significa nuevas herramientas para la interfaz de usuario, prácticas coherentes de diseño, código y recursos simplificados.
COMUNICACIÓN Y COMPARTIR
Android 4.0 amplía las funciones sociales y para compartir. Google quiere potenciar el elemento social. Andy Rubin lo dijo: "No deberíamos comunicarnos con el teléfono, sino con alguien al otro lado de él".
API SOCIAL
Tenemos un nuevo almacén unificado para contactos, datos de perfil, actualizaciones de estado y fotos. Cualquier aplicación o red social con el permiso del usuario puede aportar raw contacts y hacerlos accesibles a otras aplicaciones y redes. Las aplicaciones que tengan permiso del usuario pueden también leer los datos de perfil y mostrar estos datos en sus aplicaciones.
La API social permite a las aplicaciones almacenar datos estándar de contacto, así como nuevos tipos de contenido para cualquier contacto dado, incluyendo fotos de gran dimensión y actividad de feedback. La actividad reciente de feedback permite etiquetar las acciones más comunes que llevamos a cabo con nuestros contactos, por ejemplo, cuando llamamos a un contacto o enviamos un correo electrónico o un mensaje. Así se puede auto-completar el nombre del contacto o mantener en lo más alto de la lista los contactos más relevantes.
Las aplicaciones pueden permitir establecer una conexión con un contacto desde la aplicación People. Cuando el usuario tiene en pantalla un contacto y pulsa sobre Añadir Conexión, la aplicación envía un intent público que otras aplicaciones pueden manejar, mostrando la interfaz de usuario necesaria para crear la conexión social.
Construyendo sobre la API social, los desarrolladores pueden añadir nuevas interacciones que abarcan múltiples redes sociales y fuentes de contactos.
API CALENDAR
Nuevas APIs facilitan añadir servicios de calendario a nuestras aplicaciones. 
Con permiso del usuario, cualquier aplicación tiene la posibilidad de añadir eventos a la base de datos compartida y administrar fechas, asistentes, alertas y recordatorios. Las aplicaciones pueden también leer entradas de la base de datos, incluyendo eventos aportados por otras aplicaciones y controlar la presentación de alertas y recordatorios. Utilizando el proveedor de calendario, las aplicaciones pueden aprovechar los datos de los diferentes eventos procedentes de las distintas aplicaciones y protocolos, para ofrecer innovadoras formas de visualizar y gestionar los eventos de los usuarios. Las aplicaciones pueden también usar datos de calendario para mejorar la relevancia de su contenido.
Para un acceso más liviano a los servicios de calendario, la aplicación Calendar define un conjunto público de Intents para crear, visualizar y editar eventos. En lugar de implementar una interfaz de usuario para calendario e integrarla directamente en el proveedor de calendario, las aplicaciones pueden simplemente difundir Intents de calendario. Cuando la aplicación Calendar recibe los Intents, se lanza la interfaz de usuario apropiada y almacena los datos del evento introducido. Con los Intents de calendario, por ejemplo, las aplicaciones pueden permitir a los usuarios añadir eventos directamente desde listas, diálogos o widgets de la pantalla de inicio, reservar mesa en un restaurante o quedar con amigos.
ANDROID BEAM
Android Beam es una función basada en NFC que permite a los usuarios compartir información al instante sobre las aplicaciones que se están usando, con sólo tocar dos teléfonos con NFC activado. Cuando los teléfonos están a unos pocos centímetros, el sistema establece una conexión NFC y muestra una interfaz de usuario para compartir lo que están viendo por pantalla, con sólo tocar la pantalla.
Para desarrolladores, Android Beam es una nueva forma de activar casi cualquier tipo de interacción basada en la proximidad. Por ejemplo, permite a los usuarios intercambiar contactos, configurar juegos multijugador, entrar a un chat, video-llamadas, etc. El sistema proporciona soporte de bajo nivel para NFC y la interfaz de usuario, mientras que la aplicación de primer plano ofrece los datos de peso que se deben transferir al otro dispositivo. Los desarrolladores tienen control total sobre los datos que son compartidos y cómo manejarlos, por tanto cualquier interacción es posible. Para cargas más grandes, los desarrolladores pueden incluso usar Android Beam para iniciar una conexión y transferir los datos a través de Bluetooth sin necesidad de sincronización visible para el usuario.
Inluso si los desarrolladores no añaden interacciones personalizadas basadas en Android Bean, pueden todavía beneficiarse de ella ya que está profundamente integrado en Android. Por defecto, el sistema comparte la URL de la aplicación del Android Market, por tanto, es fácil descargar o comprar la aplicación correcta.
WIDGET MODULAR PARA COMPARTIR
La interfaz de usuario incluye un nuevo widget, ShareActionProvider, que permite a los desarrolladores integrar la funcionalidad estándar y la interfaz de usuario en la Action Bar de sus aplicaciones. Los desarrolladores simplemente añaden un ShareActionProvider al menú y establecen un intent que describe la acción que se desee compartir. El sistema se encarga del resto, creando la lista de aplicaciones que pueden manejar el intent compartido y enviando el intent cuando el usuario lo elige desde el menú.
NUEVAS CAPACIDADES MULTIMEDIA
STREAMING MULTIMEDIA DE BAJO NIVEL 
Android 4.0 ofrece una camino directo, eficiente para streaming multimedia de bajo nivel. El nuevo camino es ideal para aplicaciones que necesitan mantener control completo sobre datos multimedia antes de pasar a la plataforma de presentación. Por ejemplo, las aplicaciones multimedia pueden ahora recuperar datos de cualquier fuente, aplicar encriptado/desencriptado y después mandar los datos a la plataforma para la visualización.
Las aplicaciones pueden ahora enviar datos procesados a la plataforma como un flujo de datos multiplexado con contenido de audio/vídeo en formato MPEG-2. La plataforma demultiplexa, decodifica y representa el contenido. La pista de audio se representa en el dispositivo de audio activo, mientras que la pista de vídeo se representa ya sea en una Surface o en una SurfaceTexture. Al representar a una SurfaceTexture, la aplicación puede aplicar efectos gráficos posteriores a cada marco usando OpenGL.
Para apoyar esta transmisión de bajo nivel, la plataforma introduce una nueva API nativa basada en Khronos OpenMAX AL 1.0.1. La API está implementada en los mismos servicios ya existentes como base de la plataforma API OpenSL ES, por tanto, los desarrolladores pueden hacer uso de las dos APIs juntas si es necesario. Las herramientas de soporte para streaming multimedia de bajo nivel estarán disponible en una próxima versión de Android NDK.
NUEVAS CAPACIDADES EN LA CÁMARA
Los desarrolladores pueden aprovecharse de una variedad de funciones nuevas para la cámara. Exposición ZSL, enfoque continuo y zoom de imagen, funciones que permiten a las aplicaciones capturar mejores imágenes fijas y de vídeo. Las aplicaciones tienen la posibilidad de capturar instantáneas de alta resolución durante la grabación de vídeo. Las aplicaciones pueden establecer regiones personalizadas de medición en una previa de la cámara y después manejar el balance de blancos y la exposición dinámicamente para esas regiones. Para facilitar el enfoque y tratamiento de imágenes, un servicio de detección de rostros identifica y compara las caras en una vista previa y devuelve sus coordenadas en la pantalla.
 

EFECTOS DE LA TRANSFORMACIÓN DE IMÁGENES Y DE VÍDEO
Un conjunto de filtros de transformación de alto rendimiento permite a los desarrolladores aplicar ricos efectos a cualquier imagen pasada como una textura de OpenGL ES 2.0. Los desarrolladores pueden ajustar el nivel del color y brillo, cambiar fondos, recortar, rotar, añadir distorsión de lentes y otros efectos. Las transformaciones son procesadas por el GPU, por tanto son suficientemente rápidas para procesar marcos de imagen cargados de disco, cámara o vídeo.
CONTROLES REMOTOS DE AUDIO
Android 4.0 añade una nueva API de control remoto de audio que permite a las aplicaciones multimedia integrarse con los controles de reproducción que se muestran en una vista remota. Las aplicaciones multimedia se pueden integrar con un control de reproducción de música remoto incorporado en la pantalla de bloqueo de la plataforma, permitiendo a los usuarios controlar la selección de canciones y reproducción sin tener que desbloquear y navegar a la aplicación de música.
Usando la API de control remoto de audio, cualquier aplicación de música o multimedia puede registrarse para recibir eventos de botón desde el control remoto y después administrar el estado de la reproducción en consecuencia.  La aplicación puede también proporcionar metadatos al control remoto, como la carátula de un álbum, descripción y número de pista, duración, género y mucho más.
NUEVOS CODECS Y CONTENEDORES MULTIMEDIA
Android 4.0 añade soporte para tipos multimedia adicionales y containers para dar a los desarrolladores acceso a lo que necesitan. Para imágenes comprimidas de alta calidad, el framework multimedia añade soporte para contenido WebP. Para vídeo, el framework ahora soporta transmisión de contenido VP8. Para streaming multimedia el framework soporta protocolo HTTP Live streaming versión 3 y codificación de contenidos ADTS-AAC. Además, los desarrolladores ahora pueden utilizar contenedores Matroska para audio Vorbis y vídeo VP8.
NUEVOS TIPOS DE CONECTIVIDAD 
WI-FI DIRECT
Los desarrolladores pueden usar un framework para descubrir y conectarse directamente a dispositivos cercanos con un rendimiento alto, conexión segura Wi_Fi Direct. No se necesita conexión a Internet ni punto de acceso.
Wi-Fi Direct abre nuevas oportunidades a los desarrolladores para añadir funciones innovadoras a sus aplicaciones. Éstas pueden utilizar Wi-Fi Direct para compartir archivos, fotos u otro contenido multimedia entre dispositivos o entre un ordenador y un dispositivo Android. Las aplicaciones pueden también utilizar Wi-Fi Direct para transmitir contenido multimedia desde un dispositivo emparejado, como una televisión digital o reproductor de audio, conectar un grupo de usuarios para jugar, imprimir archivos y más.
BLUETOOTH HEALTH DEVICE PROFILE (HDP)
Se pueden escribir ahora potentes aplicaciones médicas que utilicen Bluetooth para comunicarse con dispositivos y sensores wireless en hospitales, gimnasios, casa y otros lugares. Las aplicaciones pueden recoger y gestionar datos desde dispositivos HDP y transmitirlos a aplicaciones médicas back-end tales como sistemas de registro, servicios de análisis de datos y otros.
Las aplicaciones pueden usar Bluetooth para descubrir dispositivos cercanos, establecer canales de datos fiables y gestionar la transmisión de datos. Las aplicaciones que siguen el protocolo de interoperabilidad IEEE 11073 pueden recuperar e interpretar datos de dispositivos con certificado Continua como monitores de ritmo cardíaco, medidores de sangre, termómetros, etc. 
NUEVOS COMPONENTES Y CAPACIDADES EN LA INTERFAZ DE USUARIO
MEJORAS DE DISEÑO
El nuevo GridLayout mejora la ejecución de aplicaciones Android, ya que soporta jerarquías de vista más planas que son más rápidas de distribuir y representar. Al ser las jerarquías más planas, los desarrolladores pueden gestionar las alineaciones entre componentes que están relacionados visualmente unos con otros, incluso cuando no están relacionados de manera lógica, para un control preciso de la interfaz de usuario de la aplicación. GridLayout está también diseñado para ser configurado por herramientas de diseño drag-and-drop como el plug-in ADT para Eclipse.
OPENGL ES TEXTURE VIEWS
Un nuevo objeto TextureView permite a los desarrolladores integrar directamente texturas OpenGL ES como la representación de objetivos en una jerarquía de la interfaz de usuario. El objeto permite a los desarrolladores mostrar y manipular la representación OpenGL ES como lo harían con una vista de objeto normal en la jerarquía, incluyendo movimiento, transformación y animación, según sea necesario para la vista. El objeto TextureView facilita a los desarrolladores incorporar vista previa de cámara, vídeo decodificado, escenas de juegos OpenGL y más. TextureView puede ser vista como una versión más potente que la existente SurfaceView, ya que ofrece los mismos beneficios para acceder a la superficie de representación GL, con la ventaja añadida de tener esta superficie participación total en la vista de jerarquía normal.
ACELERACIÓN POR HARDWARE 2D
Todos los dispositivos con Android 4.0 soportan aceleración por hardware 2D. Así se podrán añadir grandes efectos a las interfaces de usuario, manteniendo un rendimiento óptimo en pantallas de alta resolución, incluso en teléfonos.
NUEVOS MÉTODOS DE ENTRADA Y SERVICIOS DE TEXTO
STYLUS INPUT, BUTTON SUPPORT, HOVER EVENT
Android 4.0 incluye soporte completo para nuevos métodos de entrada de eventos, incluyendo inclinación y distancia entre ejes, presión y propiedades relacionadas con el evento de movimiento. Para ayudar a las aplicaciones a distinguir eventos de movimiento entre diferentes fuentes, la plataforma añade distintos tipos de herramientas para el lápiz, dedos, ratón y borrador. Para mejorar la entrada desde dispositivos de señalización multi-botón, la plataforma ofrece distintos botones primarios, secundarios y terciarios, así como botones para el avance y retroceso. También se añaden eventos Hover para la entrada y salida, así se mejora la navegación y accesibilidad. Con estas herramientas se pueden crear aplicaciones con potentes interaciones, tales como dibujo preciso, escritura y reconocimiento de formas, entrada de ratón mejorada y otras.
API DE SERVICIOS DE TEXTOS PARA INTEGRAR CORRECTORES ORTOGRÁFICOS
Android 4.0 permite a las aplicaciones consultar los servicios de texto disponibles, tales como diccionarios y correctores ortográficos para sugerir palabras, correcciones y datos similares. Los servicios de texto son externos al IME activo, por tanto los desarrolladores pueden crear y distribuir diccionarios y motores de sugerencia que se conectan a la plataforma. Cuando una aplicación recibe resultados de un servicio de texto, por ejemplo, sugerencias de palabras, puede mostrarlas en una ventana emergente directamente dentro de la vista de texto, en lugar de confiar en el IME para mostrarlas. Pero ¿qué es el IME? El IME es un método de entrada que implementa un modelo particular de interacción, que permite al usuario generar texto. El sistema se une al método de entrada actual que está en uso, permitiendo que se pueda crear y ejecutar, y le dice cuando se tiene que ocultar y mostrar su interfaz de usuario. Sólo un IME funciona a la vez.
API PARA UNA MEJOR ACCESIBILIDAD
Android 4.0 añade nuevas funciones para la accesibilidad y una API mejorada que permite a los desarrolladores mejorar la experiencia de usuario en sus aplicaciones, especialmente sobre dispositivos que no tienen botones hardware. Para servicios de accesibilidad tales como lectores de pantalla en particular, la plataforma ofrece nuevas APIs para consultar el contenido de la ventana, una navegación más fácil, mejor respuesta e interfaces de usuario más ricas.
API DE ACCESIBILIDAD
Para permitir a las aplicaciones gestionar más eficazmente las interacciones cuando las funciones de accesibilidad están habilitadas, la plataforma añade eventos de accesibilidad para exploración por tacto, desplazamiento y selección de texto. Para estos y otros eventos, la plataforma adjunta un nuevo objeto llamado registro de accesibilidad, que proporciona información extra sobre el contexto del evento.
Usando el registro de actividad y las APIs relacionadas, las aplicaciones pueden ahora acceder a la jerarquía de vistas asociadas con un evento. Las aplicaciones pueden consultar las propiedades clave tales como nodos padres e hijos, estados disponibles, acciones soportadas, posición de pantalla y más. Las aplicaciones pueden también solicitar modificaciones de ciertas propiedades para ayudar a controlar el enfoque y estado seleccionado. Por ejemplo, un servicio de accesibilidad podría usar estas nuevas capacidades para añadir funciones convenientes tales como pantalla de búsqueda por texto.
API TEXT-TO-SPEECH
Un nuevo framework  permite a los desarrolladores escribir motores de texto a voz y ponerlos a disposición de cualquier aplicación que necesite capacidades TTS.
USO EFICIENTE DE LA RED
En Android 4.0 los usuarios pueden consultar la cantidad de datos de red que están utilizando las aplicaciones en ejecución. También se pueden establecer límites en el uso de datos por tipo de red y desactivar el uso de datos secundarios por aplicaciones específicas. En este contexto los desarrolladores necesitan diseñar sus aplicaciones para que se ejecuten eficientemente y seguir las mejores prácticas para el control de la conexión de red. Android 4.0 proporciona APIs que permiten a las aplicaciones conseguir estos objetivos.
Como los usuarios se mueven entre redes o establecen límites sobre los datos de red, la plataforma permite a las aplicaciones consultar el tipo y la disponibilidad de la conexión. Los desarrolladores pueden usar esta información para gestionar dinámicamente las solicitudes de la red y así asegurar la mejor experiencia para los usuarios. También pueden construir una red personalizada y elegir diferentes opciones de uso de datos en sus aplicaciones, a continuación exponerlas a los usuarios directamente desde Settings por medio de un nuevo Intent del sistema.
 

SEGURIDAD PARA APLICACIONES Y CONTENIDO
ADMINISTRACIÓN SEGURA DE CREDENCIALES
Android 4.0 facilita a las aplicaciones gestionar la autenticación y las sesiones seguras. Una nueva Keychain API y el almacenamiento cifrado subyacente permite a las aplicaciones almacenar y recuperar claves privadas y sus cadenas de certificado correspondiente. Cualquier aplicación puede utilizar la Keychain API para instalar y almacenar certificados de usuarios y entidades emisoras de forma segura.
ADDRESS SPACE LAYOUT RANDOMIZATION (Distribución Aleatoria del Espacio de Dirección)
Android 4.0 ahora ofrece ASLR para ayudar a proteger las aplicaciones del sistema y externas, contra ataques que distribuyen de forma aleatoria sus direcciones en la memoria.
MEJORAS PARA LA EMPRESA
CLIENTE DE RED PRIVADA VIRTUAL (VPN) API
Los desarrolladores pueden ahora construir o extender sus propias soluciones VPN sobre la plataforma usando una nueva API VPN para el almacenamiento seguro de credenciales. Con el permiso de los usuarios, las aplicaciones pueden configurar direcciones y reglas de enrutamiento, proceso de paquetes entrantes y salientes, y establecer túneles seguros hacia un servidor remoto. Las empresas pueden también aprovecharse de un cliente estándar VPN construido en la plataforma que proporcione acceso a protocolos L2TP e IPSec.
ADMINISTRACIÓN DE POLÍTICAS DEL DISPOSITIVO PARA LAS CÁMARAS
La plataforma añade una nueva política de control para los administradores que gestionan los dispositivos mediante el Device Policy Manager. Ahora los administradores pueden deshabilitar remotamente la cámara de un dispositivo administrado a los usuarios que trabajan en ambientes sensibles.

 

Article originally appeared on javaHispano (http://www.javahispano.org/).
See website for complete article licensing information.