Jelly Bean

Android 4.3

Android 4.3 em smartphone e tablet

Este é o Android 4.3, uma versão ainda melhor do Jelly Bean.

O Android 4.3 inclui otimizações de desempenho e novos recursos excelentes para usuários e desenvolvedores. Este documento oferece uma visão geral das novidades para os desenvolvedores.

Consulte o documento das APIs do Android 4.3 para uma visão detalhada das novas APIs para desenvolvedores.

Saiba mais sobre os novos recursos do Jelly Bean para os usuários em www.android.com.

Mais rápido, mais suave, mais responsivo

O Android 4.3 se baseia nas melhorias de desempenho já incluídas no Jelly Bean (tempo de vsync, buffer triplo, latência de toque reduzida, aumento de entrada da CPU e renderização 2D acelerada por hardware) e adiciona novas otimizações que tornam o Android ainda mais rápido.

Para melhorar o desempenho gráfico, o renderizador 2D com aceleração de hardware agora otimiza o fluxo de comandos de desenho, transformando-o em um formato de GPU mais eficiente ao reorganizar e mesclar operações de desenho. O renderizador também pode usar várias linhas de execução em vários núcleos de CPU para executar determinadas tarefas.

O Android 4.3 também melhora a renderização de formas e texto. Formas como círculos e retângulos arredondados agora são renderizadas com maior qualidade de maneira mais eficiente. As otimizações de texto incluem maior desempenho ao usar várias fontes ou conjuntos de glifos complexos (CJK), maior qualidade de renderização ao dimensionar texto e renderização mais rápida de sombras projetadas.

A alocação de buffer de janela aprimorada resulta em uma alocação de buffer de imagem mais rápida para seus apps, reduzindo o tempo necessário para iniciar a renderização ao criar uma janela.

Para gráficos de melhor desempenho, o Android 4.3 introduz compatibilidade com OpenGL ES 3.0 e o torna acessível a apps por meio de APIs nativas e de framework. Em dispositivos compatíveis, o mecanismo de renderização 2D acelerado por hardware aproveita o OpenGL ES 3.0 para otimizar o gerenciamento de texturas e aumentar a fidelidade de renderização de gradiente.

OpenGL ES 3.0 para gráficos de alto desempenho

O Android 4.3 introduz compatibilidade com plataforma para o Khronos OpenGL ES 3.0, fornecendo jogos e outros apps com recursos de gráficos 2D e 3D de maior desempenho em dispositivos com suporte. Você pode aproveitar o OpenGL ES 3.0 e as extensões EGL relacionadas usando APIs do framework ou vinculações de API nativas por meio do Kit de desenvolvimento nativo do Android (NDK, na sigla em inglês).

As principais novas funcionalidades oferecidas no OpenGL ES 3.0 incluem aceleração de efeitos visuais avançados, compactação de textura ETC2/EAC de alta qualidade como um recurso padrão, uma nova versão da linguagem de sombreamento GLSL ES com suporte a números inteiros e pontos flutuantes de 32 bits, renderização avançada de texturas, tamanho padronizado de textura e formatos de buffer de renderização.

Você pode usar as APIs OpenGL ES 3.0 para criar gráficos altamente complexos e eficientes que são executados em vários dispositivos Android compatíveis. Você também pode oferecer suporte a um único formato padrão de compactação de textura nesses dispositivos.

O OpenGL ES 3.0 é um recurso opcional que depende do hardware gráfico subjacente. A compatibilidade já está disponível em dispositivos Nexus 7 (2013), Nexus 4 e Nexus 10.

Conectividade Bluetooth aprimorada

Conectividade com dispositivos e sensores Bluetooth Smart

Agora você pode projetar e criar apps que interajam com a última geração de dispositivos e sensores pequenos e com baixo consumo de energia que usam a tecnologia Bluetooth Smart.

O Android 4.3 oferece uma API padrão para interação com dispositivos Bluetooth Smart.

O Android 4.3 introduz compatibilidade integrada com plataforma para Bluetooth Smart Ready na função central e oferece um conjunto padrão de APIs que os apps podem usar para descobrir dispositivos próximos, consultar serviços GATT e ler/gravar características.

Com as novas APIs, seus apps podem verificar com eficiência dispositivos e serviços de interesse. Para cada dispositivo, você pode verificar se há serviços GATT compatíveis por UUID e gerenciar conexões por ID do dispositivo e intensidade do sinal. Você pode se conectar a um servidor GATT hospedado no dispositivo e ler ou gravar características, ou registrar um listener para receber notificações sempre que essas características mudarem.

É possível implementar compatibilidade em qualquer perfil do GATT. É possível ler ou gravar características padrão ou adicionar suporte para características personalizadas conforme necessário. O app pode funcionar como cliente ou servidor e transmitir e receber dados em qualquer um dos modos. As APIs são genéricas, então é possível oferecer suporte a interações com vários dispositivos, como tags de proximidade, relógios, medidores de condicionamento físico, controles de jogos, controles remotos, dispositivos de saúde e muito mais.

O suporte ao Bluetooth Smart Ready já está disponível no Nexus 7 (2013) e no Nexus 4 e será oferecido em um número crescente de dispositivos compatíveis com Android nos próximos meses.

Perfil do AVRCP 1.3

O Android 4.3 oferece suporte integrado ao Bluetooth AVRCP 1.3, para que seus apps possam aceitar interações mais ricas com dispositivos de streaming de mídia remoto. Apps como players de mídia podem aproveitar o AVRCP 1.3 por meio das APIs de cliente de controle remoto introduzidas no Android 4.0. Além da exposição de controles de reprodução nos dispositivos remotos conectados por Bluetooth, os apps agora podem transmitir metadados como o nome da faixa, o compositor e outros tipos de metadados de mídia.

O suporte da plataforma para o AVRCP 1.3 é baseado na pilha Bluedroid Bluetooth lançada pelo Google e pela Broadcom no Android 4.2. O suporte está disponível imediatamente em dispositivos Nexus e outros dispositivos compatíveis com Android que oferecem capacidade de A2DP/AVRCP.

Compatibilidade com perfis restritos

Configuração de um perfil restrito

O proprietário de um tablet pode configurar um ou mais perfis restritos nas configurações e gerenciá-los de forma independente.

Configuração de restrições em um perfil

Seu aplicativo pode oferecer restrições para permitir que os proprietários gerenciem o conteúdo do aplicativo quando ele estiver sendo executado em um perfil.

O Android 4.3 estende o recurso multiusuário para tablets com perfis restritos, uma nova maneira de gerenciar usuários e os recursos deles em um único dispositivo. Com perfis restritos, os proprietários de tablets podem configurar rapidamente ambientes separados para cada usuário, com a capacidade de gerenciar restrições mais refinadas nos apps disponíveis nesses ambientes. Perfis restritos são ideais para amigos e familiares, usuários convidados, quiosques, dispositivos de ponto de venda e muito mais.

Cada perfil restrito oferece um espaço isolado e seguro com o próprio armazenamento local, telas iniciais, widgets e configurações. Ao contrário dos usuários, os perfis são criados no ambiente do proprietário do tablet, com base nos apps instalados e nas contas do sistema do proprietário. O proprietário controla quais aplicativos instalados são ativados no novo perfil, e o acesso às contas do proprietário é desativado por padrão.

Apps que precisam acessar as contas do proprietário (para login, preferências ou outros usos) podem ser ativados declarando um atributo de manifesto, e o proprietário pode revisar e gerenciar esses apps nas configurações do perfil.

Para desenvolvedores, os perfis restritos oferecem uma nova maneira de oferecer mais valor e controle aos seus usuários. Você pode implementar restrições de apps, controles de recursos ou conteúdo com suporte no seu app, e anunciá-los aos proprietários de tablets nas configurações do perfil.

É possível adicionar restrições de app diretamente às definições de configuração do perfil usando tipos booleanos, de seleção e de seleção múltipla predefinidos. Caso queira mais flexibilidade, você pode até mesmo iniciar sua própria interface nas configurações do perfil para oferecer qualquer tipo de restrição.

Quando seu app é executado em um perfil, ele pode verificar se há restrições configuradas pelo proprietário e aplicá-las corretamente. Por exemplo, um app de música pode oferecer uma restrição para permitir que o proprietário defina um nível de maturidade para o perfil. No ambiente de execução, o aplicativo pode verificar a configuração de maturidade e gerenciar o conteúdo de acordo com o nível de maturidade preferido.

Se o app não foi projetado para uso em perfis restritos, é possível desativar esse recurso completamente, para que ele não possa ser ativado em nenhum perfil restrito.

Recursos de localização e sensor otimizadas

O Google Play Services oferece APIs de localização avançadas que você pode usar nos seus apps. O Android 4.3 otimiza essas APIs em dispositivos com suporte usando novos recursos de hardware e software que minimizam o uso da bateria.

A fronteira geográfica virtual de hardware otimiza a eficiência de energia ao executar a computação de localização no hardware do dispositivo, e não no software. Em dispositivos com suporte à fronteira geográfica virtual de hardware, as APIs geofence do Google Play Services poderão aproveitar essa otimização para economizar bateria enquanto o dispositivo está em movimento.

O modo de somente busca por Wi-Fi é uma nova otimização da plataforma que permite que os usuários mantenham a busca por Wi-Fi ativada sem se conectar a uma rede Wi-Fi, melhorando a precisão da localização e economizando bateria. Apps que dependem de Wi-Fi para serviços de localização agora podem pedir que os usuários ativem o modo somente busca nas configurações avançadas de Wi-Fi. O modo de somente busca por Wi-Fi não depende do hardware do dispositivo e está disponível como parte da plataforma Android 4.3.

Os aplicativos são capazes de gerenciar melhor as leituras de novos tipos de sensores. Um vetor de rotação de jogos permite que os desenvolvedores de jogos detectem a rotação do dispositivo sem precisar se preocupar com interferências magnéticas. Sensores de giroscópio não calibrado e magnetômetro sem calibração informam medidas brutas, assim como vieses estimados para apps.

Os novos recursos de hardware já estão disponíveis em dispositivos Nexus 7 (2013) e Nexus 4, e qualquer fabricante de dispositivo ou fornecedor de chipset pode incorporá-los aos próprios dispositivos.

Novos recursos de mídia

Framework modular de DRM

Para atender às necessidades da próxima geração de serviços de mídia, o Android 4.3 apresenta uma estrutura de DRM modular (link em inglês), que permite que os desenvolvedores de aplicativos de mídia integrem mais facilmente o DRM nos próprios protocolos de streaming, como MPEG DASH (Dynamic Adaptive Streaming over HTTP, ISO/IEC 23009-1).

Por meio de uma combinação de novas APIs e melhorias em APIs existentes, o framework de DRM de mídia oferece um conjunto integrado de serviços para gerenciar o licenciamento e provisionamento, acessar codecs de baixo nível e decodificar dados de mídia criptografados. Uma nova API MediaExtractor permite receber os metadados PSSH para a mídia DASH. Os apps que usam o framework de DRM de mídia gerenciam a comunicação da rede com um servidor de licença e processam o streaming de dados criptografados de uma biblioteca de conteúdo.

Codificador VP8

O Android 4.3 introduz compatibilidade integrada com a codificação VP8, acessível no framework e em APIs nativas. Para apps que usam APIs nativas, a plataforma inclui cabeçalhos de extensão OpenMAX 1.1.2 para oferecer suporte a perfis e níveis do VP8. O suporte à codificação VP8 inclui configurações para taxa de bits de destino, controle de taxa, frame rate, particionamento de token, resiliência de erros, reconstrução e filtros de loop. A API da plataforma introduz a compatibilidade com o codificador VP8 em vários formatos para que você possa aproveitar o melhor formato para seu conteúdo.

A codificação VP8 está disponível no software em todos os dispositivos compatíveis que executam o Android 4.3. Para conseguir o melhor desempenho, a plataforma também oferece suporte à codificação VP8 acelerada por hardware em dispositivos compatíveis.

Codificação de vídeo de uma superfície

A partir do Android 4.3, é possível usar uma superfície como entrada para um codificador de vídeo. Por exemplo, agora você pode direcionar um stream de uma superfície OpenGL ES para o codificador, em vez de precisar copiar entre buffers.

Multiplexador de mídia

Os apps podem usar as novas APIs de multiplexador de mídia para combinar streams básicos de áudio e vídeo em um único arquivo de saída. Atualmente, os apps podem multiplexar um único stream de áudio MPEG-4 e um único stream de vídeo MPEG-4 em um único arquivo de saída MPEG-4. As novas APIs são equivalentes às APIs de desmuxação de mídia introduzidas no Android 4.2.

Progresso da reprodução e acesso a pontos nos clientes de controle remoto

Desde o Android 4.0, os players de mídia e aplicativos semelhantes podem oferecer controles de reprodução a partir de clientes de controle remoto, como a tela de bloqueio do dispositivo, notificações e dispositivos remotos conectados por Bluetooth. A partir do Android 4.3, esses aplicativos também podem expor o progresso e a velocidade da reprodução por meio dos clientes de controle remoto e receber comandos para pular para uma posição específica da reprodução.

Novas formas de criar aplicativos bonitos

Acesso a notificações

As notificações são um recurso conhecido do Android há muito tempo, porque permitem que os usuários vejam informações e atualizações de todo o sistema em um só lugar. Agora, no Android 4.3, os apps podem observar o fluxo de notificações com a permissão do usuário e exibir as notificações da forma que quiserem, inclusive enviando-as para dispositivos próximos conectados por Bluetooth.

É possível acessar notificações por novas APIs que permitem registrar um serviço de listener de notificações e, com a permissão do usuário, receber notificações à medida que elas são mostradas na barra de status. As notificações são enviados a você na íntegra, com todos os detalhes sobre o app de origem, o horário de postagem, a visualização e o estilo do conteúdo e a prioridade. É possível avaliar os campos de interesse nas notificações, processar ou adicionar contexto do seu app e encaminhá-las para exibição da maneira que você quiser.

A nova API fornece callbacks quando uma notificação é adicionada, atualizada e removida, seja porque o usuário a dispensou ou o app de origem a removeu. Você vai poder iniciar qualquer intent anexada à notificação ou às ações dela, bem como dispensá-la do sistema, permitindo que seu app ofereça uma interface do usuário completa para as notificações.

Os usuários permanecem no controle de quais apps podem receber notificações. A qualquer momento, ele pode conferir as configurações para ver quais apps têm acesso às notificações e ativar ou desativar o acesso, conforme necessário. O acesso a notificações é desativado por padrão. Os apps podem usar uma nova intent para levar o usuário diretamente às configurações para ativar o serviço de listener após a instalação.

Ver sobreposições

Agora você pode criar sobreposições transparentes sobre Views e ViewGroups para renderizar uma hierarquia de View temporária ou efeitos de animação temporários sem alterar a hierarquia de layout subjacente. As sobreposições são particularmente úteis quando você quer criar animações, como deslizar uma visualização para fora do contêiner ou arrastar itens na tela sem afetar a hierarquia de visualização.

Modo de layout de limites ópticos

Um novo modo de layout permite que você gerencie o posicionamento de visualizações dentro de ViewGroups de acordo com os limites ópticos delas, e não com os limites de clipe. Os limites de corte representam o limite externo real de um widget, enquanto os novos limites ópticos descrevem onde o widget parece estar, dentro dos limites de corte. Você pode usar o modo de layout de limites ópticos para alinhar corretamente os widgets que usam efeitos visuais externos, como sombras e brilhos.

Tipos personalizados de animação de rotação

Os apps agora podem definir os tipos de animação de saída e entrada usados em uma janela quando o dispositivo é girado É possível definir as propriedades da janela para ativar saltos, transições ou rotação padrão de janela. O sistema usa os tipos de animação personalizados quando a janela está em tela cheia e não é coberta por outras janelas.

Modos de orientação da tela

Os apps podem definir novos modos de orientação para atividades, garantindo que elas sejam mostradas na orientação correta quando o dispositivo for virado. Além disso, os apps podem usar um novo modo para bloquear a tela na orientação atual. Isso é útil para apps que usam a câmera e querem desativar a rotação durante a gravação de vídeos.

Intent para lidar com respostas rápidas

O Android 4.3 introduz uma nova intent pública que permite que qualquer app processe respostas rápidas, que são mensagens de texto enviadas pelo usuário em resposta a uma chamada recebida, sem precisar atender a chamada ou desbloquear o dispositivo. O app pode detectar a intent e enviar a mensagem ao autor da chamada pelo sistema de mensagens. A intent inclui o destinatário (autor da chamada), bem como a própria mensagem.

Compatibilidade com usuários internacionais

Mais partes do Android 4.3 foram otimizadas para idiomas RTL.

Melhorias de RTL

O Android 4.3 inclui melhorias de desempenho RTL e suporte a RTL mais amplo em widgets de IU do framework, incluindo ProgressBar/Spinner e expansível. Mais informações de depuração são visíveis usando a ferramenta uiautomatorviewer. Além disso, mais componentes de IU do sistema agora reconhecem RTL, como notificações, barra de navegação e barra de ações.

Para oferecer uma melhor experiência em todo o sistema em scripts RTL, mais apps de sistema padrão agora são compatíveis com layouts RTL, incluindo a tela de início, configurações rápidas, telefone, pessoas, Assistente de configuração, Relógio, Downloads e muito mais.

Utilitários para localização

As pseudolocalidades facilitam o teste da localização do aplicativo.

O Android 4.3 também inclui novos utilitários e APIs para criar strings RTL melhores e testar suas IUs localizadas. Uma nova classe BidiFormatter fornece uma API simples para unir strings Unicode, para que os dados de script RTL sejam exibidos conforme pretendido em mensagens de localidade LTR e vice-versa. Para permitir que você use esse utilitário de forma mais ampla nos seus apps, a API BidiFormatter também está disponível para versões anteriores da plataforma por meio do pacote de suporte no SDK do Android.

Para ajudar você a gerenciar a formatação de data em várias localidades, o Android 4.3 inclui um novo método getBestDateTimePattern() que gera automaticamente a melhor forma localizada possível de uma data UTS Unicode para uma localidade especificada. É uma maneira conveniente de oferecer uma experiência mais localizada para seus usuários.

Para ajudar você a testar seu app mais facilmente em outras localidades, o Android 4.3 apresenta as pseudolocalidades como uma nova opção para desenvolvedores. As pseudolocalidades simulam o idioma, o script e as características de exibição associadas a uma localidade ou um grupo de idiomas. Atualmente, você pode testar com uma pseudolocalidade para inglês acentuado, que permite ver como a interface funciona com acentos de script e caracteres usados em vários idiomas europeus.

Acessibilidade e automação de IU

A partir do Android 4.3, os serviços de acessibilidade podem observar e filtrar eventos de tecla, por exemplo, para processar atalhos de teclado ou fornecer paridade de navegação com entrada baseada em gestos. O serviço recebe os eventos e pode processá-los conforme necessário antes de serem transmitidos para o sistema ou para outros apps instalados.

Os serviços de acessibilidade podem declarar novos atributos de recurso para descrever o que os serviços deles podem fazer e quais recursos de plataforma usam. Por exemplo, eles podem declarar a capacidade de filtrar eventos de tecla, extrair conteúdo da janela, ativar a exploração por toque ou recursos de acessibilidade na Web. Em alguns casos, os serviços precisam declarar um atributo de recurso antes de poder acessar os recursos da plataforma relacionados. O sistema usa os atributos de recurso do serviço para gerar uma caixa de diálogo de ativação para os usuários. Assim, eles podem conferir e concordar com os recursos antes do início.

Com base no framework de acessibilidade do Android 4.3, um novo framework de automação de interface permite que os testes interajam com a IU do dispositivo simulando ações do usuário e introspectando o conteúdo da tela. Com o framework de automação da interface, é possível realizar operações básicas, definir a rotação da tela, gerar eventos de entrada, fazer capturas de tela e muito mais. Essa é uma maneira poderosa de automatizar testes em cenários de usuários realistas, incluindo ações ou sequências que abrangem vários apps.

Empresas e segurança

Configuração de Wi-Fi para redes WPA2-Enterprise

Agora, os apps podem configurar as credenciais de Wi-Fi necessárias para conexões com pontos de acesso WPA2 Enterprise. Os desenvolvedores podem usar novas APIs para configurar as credenciais do EAP e Encapsulated EAP (fase 2) para os métodos de autenticação usados na empresa. Apps com permissão para acessar e mudar o Wi-Fi podem configurar credenciais de autenticação para vários métodos de autenticação EAP e Fase 2.

Sandbox Android reforçado com o SELinux

O Android agora usa o SELinux, um sistema de controle de acesso obrigatório (MAC, na sigla em inglês) do kernel do Linux para aumentar o sandbox do aplicativo baseado em UID. Isso protege o sistema operacional contra possíveis vulnerabilidades de segurança.

Melhorias do KeyChain

A API KeyChain agora oferece um método que permite que os aplicativos confirmem que as chaves do sistema estão vinculadas a uma raiz de hardware de confiança para o dispositivo. Isso fornece um local para criar ou armazenar chaves privadas que não podem ser exportadas do dispositivo, mesmo em caso de comprometimento da raiz ou do kernel.

Provedor de armazenamento de chaves do Android

O Android 4.3 introduz um provedor de keystore e APIs que permitem que os aplicativos criem chaves de uso exclusivo. Com as APIs, os apps podem criar ou armazenar chaves privadas que não podem ser vistas ou usadas por outros apps e podem ser adicionadas ao keystore sem nenhuma interação do usuário.

O provedor de keystore oferece os mesmos benefícios de segurança que a API KeyChain fornece para credenciais em todo o sistema, como credenciais de vinculação a um dispositivo. As chaves privadas do keystore não podem ser exportadas do dispositivo.

Restringir o Setuid dos aplicativos Android

A partição /system agora está montada nosuid para processos gerados pelo zigoto, impedindo que aplicativos Android executem programas setuid. Isso reduz a superfície de ataque raiz e a probabilidade de possíveis vulnerabilidades de segurança.

Novas formas de analisar o desempenho

O Systrace usa uma nova sintaxe de comando e permite coletar mais tipos de dados de criação de perfil.

Melhoria na geração de registros do Systrace

O Android 4.3 é compatível com uma versão aprimorada da ferramenta Systrace, que é mais fácil de usar e que oferece acesso a mais tipos de informações para criar um perfil do desempenho do seu app. Agora é possível coletar dados de rastreamento de módulos de hardware, funções de kernel, VM Dalvik, incluindo coleta de lixo, carregamento de recursos e muito mais.

O Android 4.3 também inclui novas APIs Trace que podem ser usadas nos seus aplicativos para marcar seções específicas de código a serem rastreadas usando eventos de início/término do Systrace. Quando as seções de código marcadas são executadas, o sistema grava os eventos de início/término no registro de rastreamento. O impacto no desempenho do app é mínimo. Portanto, os tempos informados fornecem uma visão precisa do que o app está fazendo.

É possível visualizar eventos específicos do app em uma linha do tempo no arquivo de saída do Systrace e analisar os eventos no contexto de outros dados de rastreamento do kernel e do espaço do usuário. Juntamente com as tags existentes do Systrace, as seções personalizadas de apps podem oferecer novas maneiras de entender o desempenho e o comportamento dos seus aplicativos.

Criação de perfil de GPU na tela no Android 4.3.

Criação de perfil de GPU na tela

O Android 4.3 adiciona novas opções do desenvolvedor para ajudar você a analisar o desempenho do app e identificar problemas de renderização em qualquer dispositivo ou emulador.

Na opção Classificar renderização de GPU, você pode conferir o frame rate efetivo do app na tela enquanto ele está em execução. Você pode optar por exibir dados de criação de perfil como gráficos de barra ou linha na tela, com cores indicando o tempo gasto na criação de comandos de desenho (azul), emitindo os comandos (laranja) e aguardando a conclusão dos comandos (amarelo). O sistema atualiza os gráficos na tela continuamente, mostrando um gráfico para cada atividade visível, incluindo a barra de navegação e a barra de notificações.

Uma linha verde destaca o limite de 16 ms para operações de renderização. Assim, você pode avaliar o frame rate efetivo do app em relação a uma meta de 60 QPS (porque 1/60 de segundo equivale a aproximadamente 16 ms). Se você perceber operações que cruzam a linha verde, poderá analisá-las mais a fundo usando o Systrace e outras ferramentas.

Em dispositivos com o Android 4.2 e versões mais recentes, as opções do desenvolvedor ficam ocultas por padrão. É possível exibi-las a qualquer momento tocando sete vezes em Configurações > Sobre o dispositivo > Número da versão em qualquer dispositivo Android compatível.

Aviso StrictMode para URIs de arquivo

A adição mais recente à ferramenta StrictMode é uma restrição de política que avisa quando seu app expõe um URI file:// ao sistema ou a outro app. Em alguns casos, o app de recebimento pode não ter acesso ao caminho de URI file://. Portanto, ao compartilhar arquivos entre apps, um URI content:// precisa ser usado (com a permissão adequada). Essa nova política ajuda você a identificar e corrigir esses casos. Se você está procurando uma maneira conveniente de armazenar e expor arquivos a outros apps, tente usar o provedor de conteúdo FileProvider, disponível na Biblioteca de Suporte.

Android 4.2

Android 4.2 em smartphone e tablet

Este é o Android 4.2, a versão mais recente do Jelly Bean.

O Android 4.2 conta com otimizações de desempenho, uma interface de sistema atualizada e ótimos recursos novos para usuários e desenvolvedores. Este documento oferece uma visão geral das novidades para os desenvolvedores.

Consulte o documento das APIs do Android 4.2 para uma visão detalhada das novas APIs para desenvolvedores.

Saiba mais sobre os novos recursos do Jelly Bean para os usuários em www.android.com.

Mais rápido, mais suave, mais responsivo

O Android 4.2 se baseia nas melhorias de desempenho já incluídas no Jelly Bean, como tempo de vsync, buffer triplo, latência de toque reduzida e aumento de entrada da CPU, e adiciona novas otimizações que tornam o Android ainda mais rápido.

Melhorias no renderizador 2D acelerado por hardware tornam animações comuns, como rolagem e deslizamento, mais rápidas e suaves. Em particular, o desenho é otimizado para camadas, recortes e algumas formas (retângulos arredondados, círculos e ovais).

Uma variedade de otimizações de renderização do WebView torna a rolagem de páginas da Web mais suave, sem instabilidade e atrasos.

O Renderscript Compute do Android é a primeira plataforma de computação adaptada para ser executada diretamente em uma GPU de dispositivo móvel. Ele aproveita automaticamente os recursos de computação de GPU sempre que possível, melhorando significativamente o desempenho do processamento de gráficos e imagens. Qualquer app que use o Renderscript em um dispositivo com suporte pode se beneficiar imediatamente dessa integração da GPU sem precisar recompilar.

Interface de usuário refinada e atualizada

O Android 4.2 refina a experiência do usuário do Jelly Bean e traz padrões de IU do Android familiares, como a barra de status, a barra do sistema e a janela de notificações, para todos os tablets.

Todos os tamanhos de tela agora têm a barra de status na parte de cima, com acesso suspenso a notificações e um novo menu de Configurações rápidas. A barra do sistema conhecida aparece na parte de baixo, com botões facilmente acessíveis de qualquer mão. A bandeja de aplicativos também está disponível em todos os tamanhos de tela.

Um tablet, muitos usuários

Agora, vários usuários podem compartilhar um único tablet Android, e cada um deles tem acesso conveniente a um espaço dedicado do usuário. Os usuários podem alternar para os espaços com um único toque na tela de bloqueio.

Em um dispositivo multiusuário, o Android oferece a cada usuário um ambiente separado, incluindo armazenamento em cartão SD emulado específico do usuário. Os usuários também têm as próprias telas iniciais, widgets, contas, configurações, arquivos e apps, e o sistema os mantém separados. Todos os usuários compartilham os principais serviços do sistema, mas o sistema garante que os aplicativos e dados de cada usuário permaneçam isolados. Na verdade, cada um dos vários usuários tem o próprio dispositivo Android.

Os usuários podem instalar e desinstalar aplicativos a qualquer momento nos ambientes deles. Para economizar espaço de armazenamento, o Google Play faz o download de um APK somente se ele ainda não foi instalado por outro usuário no dispositivo. Se o app já estiver instalado, o Google Play vai registrar a instalação do novo usuário da maneira comum, mas não fará o download de outra cópia do app. Vários usuários podem executar a mesma cópia de um APK, porque o sistema cria uma nova instância para cada usuário, incluindo um diretório de dados específicos.

Para desenvolvedores, o suporte a vários usuários é transparente. Seus apps não precisam fazer nada especial para serem executados normalmente em um ambiente multiusuário e não é necessário fazer mudanças nos APKs existentes ou publicados. O sistema gerencia seu aplicativo em cada espaço de usuário, da mesma forma que em um ambiente de usuário único.

Novas maneiras de envolver os usuários

Widget de bloqueio de tela da Agenda

Você pode estender widgets de aplicativos para que sejam executados na tela de bloqueio, para um acesso instantâneo ao seu conteúdo.

Widgets da tela de bloqueio

No Android 4.2, os usuários podem colocar widgets de apps diretamente nas telas de bloqueio para acesso instantâneo ao conteúdo dos seus apps favoritos sem precisar desbloquear. Os usuários podem adicionar até cinco widgets da tela de bloqueio, escolhendo os widgets fornecidos pelos apps instalados. A tela de bloqueio exibe cada widget no próprio painel, permitindo que os usuários deslizem para a esquerda e para a direita para conferir diferentes painéis e os respectivos widgets.

Como todos os widgets de apps, os da tela de bloqueio podem exibir qualquer tipo de conteúdo e podem aceitar interação direta do usuário. Eles podem ser totalmente independentes, como um widget que oferece controles para tocar música, ou podem permitir que os usuários acessem uma atividade diretamente no app, depois de desbloquear o dispositivo, conforme necessário.

Para os desenvolvedores, os widgets da tela de bloqueio oferecem uma nova maneira incrível de envolver os usuários. Eles permitem que você coloque seu conteúdo na frente dos usuários em um local que eles vão ver com frequência, e oferecem mais oportunidades de trazer usuários diretamente para seu app.

Para aproveitar esse novo recurso, crie um novo widget de app ou amplie um widget de tela inicial existente. Se o app já inclui widgets da tela inicial, eles podem ser estendidos à tela de bloqueio com pequenas mudanças. Para oferecer uma experiência ideal aos usuários, você pode atualizar o widget para usar a área de bloqueio cheia de tela, quando disponível, e redimensionar quando necessário em telas menores. Você também pode adicionar recursos aos seus widgets que possam ser especialmente úteis ou convenientes na tela de bloqueio.

Daydream

O Daydream é um modo de protetor de tela interativo que é iniciado quando o dispositivo de um usuário está encaixado ou carregando. Nesse modo, o sistema inicia um daydream, um serviço de conteúdo remoto fornecido por um app instalado, como o protetor de tela do dispositivo. O usuário pode ativar o Daydream no app Configurações e escolher o daydream a ser exibido.

Os Daydreams combinam os melhores recursos de planos de fundo interativos e widgets da tela inicial, mas são mais potentes. Eles permitem oferecer qualquer tipo de conteúdo em um contexto completamente novo, com interações do usuário, como virar fotos, reproduzir áudio ou vídeo ou pular direto para o app com um único toque.

Como os Daydreams podem ser iniciados automaticamente quando um dispositivo está carregando ou encaixado na base, eles também oferecem ao seu app uma ótima maneira de oferecer suporte a novos tipos de experiências do usuário, como os modos leanback ou exposição, modo de demonstração ou quiosque e "modo de atração", tudo sem precisar de hardware especial.

Modo protetor de tela Daydream

O Daydream permite criar protetores de tela interativos que exibem qualquer tipo de conteúdo.

Os Daydreams são semelhantes às atividades e podem fazer tudo que a Activity faz, desde renderizar uma hierarquia de interface (sem usar RemoteViews) até desenhar diretamente usando Canvas, OpenGL, SurfaceTexture e muito mais. Eles podem reproduzir vídeo e áudio e podem até aceitar interação direta do usuário. No entanto, os daydreams não são atividades. Portanto, eles não afetam a backstack nem aparecem em Recentes e não podem ser iniciados diretamente pelo app.

A implementação de um Daydream é simples, e você pode aproveitar os componentes e recursos de IU que já criou para outras partes do seu app. É possível fornecer vários Daydreams no app e oferecer conteúdo e configurações de exibição diferentes para cada uma delas.

Compatibilidade com tela externa

O Android 4.2 introduz compatibilidade de plataforma com telas externas que vai muito além do espelhamento. Os apps agora podem direcionar conteúdo exclusivo para qualquer uma ou várias telas conectadas a um dispositivo Android. Os apps podem se basear nisso para oferecer novos tipos de interação e experiências de entretenimento aos usuários.

Gerenciador de tela

Os aplicativos interagem com as telas por meio de um novo serviço de sistema gerenciador de tela. Seu app pode enumerar as telas e verificar os recursos de cada uma, incluindo tamanho, densidade, nome de exibição, ID, compatibilidade com vídeo seguro e muito mais. O app também pode receber callbacks quando telas são adicionadas ou removidas ou quando os recursos mudam, para gerenciar melhor o conteúdo em telas externas.

Janela de apresentação

Para facilitar a exibição de conteúdo em uma tela externa, o framework fornece um novo objeto de IU chamado Apresentação, um tipo de caixa de diálogo que representa uma janela para o conteúdo do app em uma tela externa específica. Seu app apenas oferece a tela a ser usada, um tema para a janela e qualquer conteúdo exclusivo para mostrar. A Apresentação processa a inflação de recursos e renderiza seu conteúdo de acordo com as características da tela de destino.

Você pode assumir o controle total de duas ou mais telas independentes usando a Presentation.

Uma apresentação dá ao app controle total sobre a janela de exibição remota e o conteúdo dela, além de permitir que você o gerencie com base em eventos de entrada do usuário, como teclas pressionadas, gestos, eventos de movimento e muito mais. Você pode usar todas as ferramentas normais para criar uma interface e renderizar conteúdo na apresentação, desde a criação de uma hierarquia de visualização arbitrária até o uso de SurfaceView ou SurfaceTexture para desenhar diretamente na janela para conteúdo transmitido ou visualizações de câmera.

Seleção de tela preferencial

Quando várias telas externas estiverem disponíveis, você poderá criar quantas apresentações precisar, cada uma mostrando conteúdo exclusivo em uma tela específica. Em muitos casos, você pode querer mostrar o conteúdo apenas em uma única tela externa, mas sempre na que for melhor para o conteúdo da Apresentação. Para isso, o sistema pode ajudar seu aplicativo a escolher a melhor tela a ser usada.

Para encontrar a melhor tela a ser usada, seu app pode consultar o gerenciador de exibição para a exibição de apresentação preferida do sistema e receber callbacks quando essa tela mudar. Como alternativa, você pode usar o serviço de roteador de mídia, estendido no Android 4.2, para receber notificações quando uma rota de vídeo do sistema mudar. Seu app pode mostrar conteúdo por padrão na atividade principal até que uma tela de apresentação preferida seja conectada. Nesse momento, ele pode alternar automaticamente para o conteúdo da apresentação na tela preferencial. Seus apps também podem usar o MediaRouteActionProvider e o MediaRouteButton do roteador de mídia para oferecer uma interface de seleção de tela padrão.

Conteúdo protegido

Para apps que lidam com conteúdo protegido ou criptografado, a API Display agora informa os recursos de vídeo seguro de telas conectadas. O app consulta uma tela para descobrir se ela oferece uma saída de vídeo segura ou fornece buffers gráficos protegidos e, em seguida, escolhe o stream ou a decodificação de conteúdo adequado para tornar o conteúdo visível. Para aumentar a segurança em objetos SurfaceView, o app pode definir uma flag segura para indicar que o conteúdo nunca pode aparecer em capturas de tela ou em uma saída de tela não segura, mesmo quando espelhada.

Display sem fio

A partir do Android 4.2, os usuários de dispositivos com suporte podem se conectar a uma tela externa por Wi-Fi usando o Display Wi-Fi, uma solução de display sem fio ponto a ponto em conformidade com o programa de certificação MiracastTM. Quando uma tela sem fio está conectada, os usuários podem fazer streaming de qualquer tipo de conteúdo para a tela grande, incluindo fotos, jogos, mapas e muito mais.

Os apps podem aproveitar as telas sem fio da mesma forma que outras telas externas, e não é necessário fazer mais nada. O sistema gerencia a conexão de rede e transmite a apresentação ou outro conteúdo do app para a tela sem fio conforme necessário.

Compatibilidade nativa com RTL

Espelhamento de layout RTL

Os desenvolvedores agora podem espelhar layouts para idiomas RTL.

O Android 4.2 introduz suporte nativo completo para layouts RTL (da direita para a esquerda), incluindo o espelhamento de layout. Com suporte nativo à RTL, você pode oferecer a mesma experiência de app a todos os usuários, quer que o idioma use um script que leia da direita para a esquerda ou da esquerda para a direita.

Quando o usuário muda o idioma do sistema para um script da direita para a esquerda, o sistema agora oferece espelhamento automático dos layouts de interface do app e de todos os widgets de visualização, além do espelhamento Bidi de elementos de texto para leitura e entrada de caracteres.

Seu aplicativo pode aproveitar o espelhamento de layout RTL com o mínimo de esforço. Se você quiser que o app seja espelhado, basta declarar um novo atributo no manifesto do app e mudar todas as propriedades de layout "esquerda/direita" para novos equivalentes "início/fim". Em seguida, o sistema processa o espelhamento e a exibição da interface conforme adequado.

Para um controle preciso sobre a interface do seu app, o Android 4.2 inclui novas APIs que permitem gerenciar a direção do layout, a direção do texto, o alinhamento do texto, a gravidade e a direção da localidade em componentes de visualização. Você pode até criar versões personalizadas de layout, drawables e outros recursos para mostrar quando um script da direita para a esquerda estiver em uso.

Para ajudar a depurar e otimizar layouts personalizados da direita para a esquerda, a ferramenta HierarchyViewer agora permite que você confira as propriedades inicial/final, a direção do layout, a direção do texto e o alinhamento do texto para todas as visualizações na hierarquia.

Melhorias para idiomas internacionais

O Android 4.2 inclui uma variedade de otimizações de fontes e caracteres para usuários internacionais:

  • Para usuários coreanos, uma nova opção de fonte está disponível: Nanum (나눔 글꼴) Gótica, uma fonte Unicode projetada especialmente para o script de idioma coreano.
  • Compatibilidade aprimorada com textos verticais japoneses exibidos em WebViews.
  • Melhoria no kerning e posicionamento de fontes para fontes padrão índica, tailandesa, árabe e hebraica.

O teclado Android padrão também inclui um conjunto atualizado de dicionários:

  • Dicionários aprimorados para francês (com suporte a bigrama), inglês e russo
  • Novos dicionários para dinamarquês, grego, finlandês, lituano, letão, polonês, esloveno, sérvio, sueco e turco

Novas maneiras de criar uma IU bonita

Fragments aninhados

Para ter mais controle sobre seus componentes de IU e torná-los mais modulares, o Android 4.2 permite aninhar fragmentos dentro de Fragments. Para qualquer fragmento, um novo gerenciador de fragmentos permite inserir outros fragmentos como nós filhos na hierarquia de visualização.

Você pode usar fragmentos aninhados de várias maneiras, mas eles são especialmente úteis para implementar componentes de interface dinâmicos e reutilizáveis dentro de um componente de interface que é dinâmico e reutilizável. Por exemplo, se você usa o ViewPager para criar fragmentos que deslizam para a esquerda e para a direita, agora é possível inserir fragmentos em cada fragmento do paginador de visualização.

Para aproveitar ao máximo os fragmentos aninhados no app, esse recurso foi adicionado à versão mais recente da Biblioteca de Suporte do Android.

Acessibilidade

Agora, o sistema ajuda os serviços de acessibilidade a distinguir entre a análise por toque e os gestos de acessibilidade no modo de exploração por toque. Quando um usuário toca na tela, o sistema notifica o serviço de que uma interação de toque genérica foi iniciada. Em seguida, ele rastreia a velocidade da interação por toque, determina se é uma exploração por toque (lenta) ou um gesto de acessibilidade (rápido) e notifica o serviço. Quando a interação por toque termina, o sistema notifica o serviço.

O sistema oferece uma nova opção de acessibilidade global que permite que um serviço de acessibilidade abra o menu "Configurações rápidas" com base em uma ação do usuário. Também foi adicionado ao Android 4 um novo tipo de feedback de acessibilidade para dispositivos em braille.

Para fornecer informações aos serviços de acessibilidade sobre o significado das visualizações para fins de acessibilidade, o framework fornece novas APIs para associar uma visualização como o rótulo de outra. O rótulo de cada visualização está disponível para serviços de acessibilidade usando AccessibilityNodeInfo.

Câmera aprimorada com HDR

O Android 4.2 introduz uma nova interface de hardware de câmera e pipeline para melhorar o desempenho. Em dispositivos compatíveis, os apps podem usar um novo modo de cena de câmera HDR para capturar uma imagem usando técnicas de imagem de alto alcance dinâmico.

Além disso, o framework agora fornece uma API para permitir que os apps verifiquem se o som do obturador da câmera pode ser desativado. Os apps podem permitir que o usuário desative o som ou escolha um som alternativo no lugar do som padrão do obturador, o que é recomendado.

Computação Renderscript

No Android 4.2, a computação Renderscript introduz novos recursos de script, novas otimizações e integração direta de GPU para o melhor desempenho em operações de computação.

Filterscript

O Filterscript é um subconjunto do Renderscript focado no processamento de imagens otimizado em uma ampla variedade de chipsets de dispositivos. Os desenvolvedores podem gravar as operações de processamento de imagens no Filterscript usando a API de tempo de execução Renderscript padrão, mas com restrições mais rigorosas que garantem maior compatibilidade e melhor otimização em CPUs, GPUs e DSPs.

O Filterscript é ideal para acelerar operações de processamento de imagem e computação simples, como aquelas que podem ser programadas para sombreadores de fragmentos do OpenGL ES. Como ele impõe um conjunto moderado de restrições ao hardware, suas operações são otimizadas e aceleradas em mais tipos de chipsets de dispositivos. Qualquer aplicativo voltado à API de nível 17 ou posterior pode usar o Filterscript.

Intrínsecos de script

No Android 4.2, o Renderscript adiciona suporte a um conjunto de intrínsecos de script, primitivos de filtragem pré-implementados que são acelerados para reduzir a quantidade de código que você precisa escrever e garantir que o app tenha o ganho de desempenho máximo possível.

Os intrínsecos estão disponíveis para combinações, desfoque, matriz de cores, convolução 3x3 e 5x5, tabela de consulta por canal e conversão de um buffer YUV do Android em RGB.

Grupos de scripts

Agora, você pode criar grupos de scripts Renderscript e executar todos eles com uma única chamada, como se fizessem parte de um único script. Isso permite que o Renderscript otimize a execução dos scripts de maneiras que não seria possível se os scripts fossem executados individualmente.

Gráfico de otimizações do RenderScript

As comparações de processamento de imagem Renderscript são executadas em diferentes versões da plataforma Android (Android 4.0, 4.1 e 4.2) apenas na CPU em um dispositivo Galaxy Nexus.

Comparativos de processamento de imagem Renderscript entre operações executadas com GPU + CPU e aquelas executadas somente na CPU no mesmo dispositivo Nexus 10.

Se você tiver um gráfico acíclico direcionado de operações Renderscript para executar, poderá usar uma classe de builder para criar um grupo de scripts que defina as operações. No tempo de execução, o Renderscript otimiza a ordem de execução e as conexões entre essas operações para ter o melhor desempenho.

Melhorias contínuas de otimização

Quando você usa o Renderscript para operações de computação, seus apps se beneficiam de melhorias contínuas de desempenho e otimização no próprio mecanismo do RenderScript, sem qualquer impacto no código do app ou necessidade de recompilação.

À medida que a otimização melhora, suas operações são executadas mais rapidamente e em mais chipsets, sem nenhum trabalho da sua parte. O gráfico à direita destaca o ganho de desempenho proporcionado pelas melhorias contínuas de otimização do Renderscript em versões sucessivas da plataforma Android.

Computação em GPU

A computação Renderscript é a primeira plataforma computacional adaptada para ser executada diretamente em uma GPU de dispositivo móvel. Agora, ele aproveita automaticamente os recursos de computação de GPU sempre que possível para melhorar o desempenho. Com a integração de GPU, até mesmo as computações mais complexas para processamento de gráficos ou imagens podem ser executadas com desempenho significativamente aprimorado.

Qualquer app que use o Renderscript em um dispositivo com suporte pode se beneficiar imediatamente dessa integração da GPU, sem precisar recompilar. O tablet Nexus 10 é o primeiro dispositivo compatível com essa integração.

Novas opções do desenvolvedor integradas

O sistema Android 4.2 inclui uma variedade de novas opções para desenvolvedores que facilitam a criação de apps com ótima aparência e desempenho. As novas opções expõem recursos para depurar e criar um perfil no seu app em qualquer dispositivo ou emulador.

Em dispositivos com o Android 4.2, as opções do desenvolvedor ficam ocultas por padrão, ajudando a criar uma experiência melhor para os usuários. Você pode revelar as opções do desenvolvedor a qualquer momento tocando sete vezes em Configurações > Sobre o dispositivo > Número da versão em qualquer dispositivo Android compatível.

As novas opções do desenvolvedor oferecem mais formas de criar um perfil e fazer depuração em um dispositivo.

Veja as novas opções do desenvolvedor no Android 4.2:

  • Criar relatório do bug: faz uma captura de tela imediatamente, despeja informações de estado do dispositivo no armazenamento de arquivos local e as anexa a uma nova mensagem de e-mail de saída.
  • Relatórios de bugs no menu do botão liga/desliga: adiciona uma nova opção ao menu de energia do dispositivo e às configurações rápidas para gerar um relatório de bugs (veja acima).
  • Verificar apps por USB: permite desativar as verificações de apps para sideload por USB, enquanto ainda verifica apps de outras fontes, como o navegador. Isso pode acelerar o processo de desenvolvimento e, ao mesmo tempo, manter o recurso de segurança ativado.
  • Atualizações de camadas de hardware: as camadas de hardware piscam em verde quando são atualizadas.
  • Mostrar overdraw da GPU: destaca as áreas de overdraw da GPU.
  • Forçar 4x MSAA: permite 4x MSAA em apps Open GL ES 2.0.
  • Simular telas secundárias: cria uma ou mais janelas de sobreposição não seguras na tela atual para uso como uma tela remota simulada. Você pode controlar o tamanho e a densidade da tela simulada.
  • Ativar rastros OpenGL: permite rastrear a execução do OpenGL usando Logcat, Systrace ou callstack em glGetError.

Novas tecnologias de plataforma

O Android 4.2 inclui uma variedade de tecnologias de plataforma aprimoradas e novas para oferecer suporte a casos de uso de comunicação inovadores em uma ampla variedade de dispositivos de hardware. Na maioria dos casos, as novas tecnologias e melhorias da plataforma não afetam diretamente seus apps para que você possa aproveitá-las sem qualquer modificação.

Melhorias na segurança

Cada versão do Android inclui dezenas de melhorias de segurança para proteger os usuários. Veja algumas das melhorias no Android 4.2:

  • Verificação de aplicativos: os usuários podem optar por ativar a opção "Verificar apps" para que eles sejam filtrados por um verificador antes da instalação. A verificação de apps poderá alertar o usuário se ele tentar instalar um app que possa ser nocivo. Se um aplicativo for especialmente ruim, ela poderá bloquear a instalação.
  • Mais controle de SMS premium: o Android fornecerá uma notificação se um app tentar enviar SMS para um código curto que usa serviços premium, o que pode gerar cobranças adicionais. O usuário pode escolher se quer permitir que o aplicativo envie a mensagem ou a bloqueie.
  • VPN sempre ativa: a VPN pode ser configurada para que os aplicativos não tenham acesso à rede até que uma conexão VPN seja estabelecida. Isso impede que os aplicativos enviem dados por outras redes.
  • Fixação de certificados: a implementação libcore SSL agora é compatível com a fixação de certificados. Os domínios fixados receberão uma falha na validação do certificado se ele não for encadeado a um conjunto de certificados esperados. Isso protege contra possíveis comprometimentos de autoridades certificados.
  • Exibição aprimorada de permissões do Android: as permissões foram organizadas em grupos que são mais facilmente compreendidos pelos usuários. Durante a revisão, o usuário pode clicar na permissão para ver informações mais detalhadas sobre ela.
  • Hardening instalado: o daemon instalado não é executado como o usuário raiz, reduzindo a superfície de ataque em potencial para o escalonamento do privilégio raiz.
  • Aumento da proteção do script init: scripts init agora aplicam a semântica O_NOFOLLOW para evitar ataques relacionados a links simbólicos.
  • FORTIFY_SOURCE: o Android agora implementa FORTIFY_SOURCE. Isso é usado por bibliotecas e aplicativos do sistema para evitar corrupção da memória.
  • Configuração padrão do ContentProvider: os aplicativos voltados ao nível 17 da API terão "export" definido como "false" por padrão para cada ContentProvider, reduzindo a superfície de ataque padrão deles.
  • Criptografia: modificação das implementações padrão de SecureRandom e Cipher.RSA para usar o OpenSSL. Foi adicionado suporte ao SSLSocket para TLSv1.1 e TLSv1.2 usando o OpenSSL 1.0.1
  • Correções de segurança: as bibliotecas de código aberto atualizadas com correções de segurança incluem WebKit, libpng, OpenSSL e LibXML. O Android 4.2 também inclui correções para vulnerabilidades específicas dele. Informações sobre essas vulnerabilidades foram fornecidas aos membros da Open Handset Alliance, e as correções estão disponíveis no Android Open Source Project. Para melhorar a segurança, alguns dispositivos com versões anteriores do Android também podem incluir essas correções.

Nova pilha Bluetooth

O Android 4.2 apresenta uma nova pilha Bluetooth otimizada para uso com dispositivos Android. A nova pilha Bluetooth desenvolvida em colaboração entre o Google e a Broadcom substitui a pilha com base no BlueZ e oferece compatibilidade e confiabilidade aprimoradas.

Áudio de baixa latência

O Android 4.2 melhora o suporte à reprodução de áudio de baixa latência, começando com as melhorias feitas na versão do Android 4.1 para latência de saída de áudio usando as APIs OpenSL ES, Soundpool e gerador de tons. Essas melhorias dependem do suporte de hardware. Os dispositivos que oferecem esses recursos de áudio de baixa latência podem anunciar a compatibilidade com apps usando uma constante de recurso de hardware. Novas APIs AudioManager são fornecidas para consultar a taxa de amostragem de áudio nativo e o tamanho do buffer para uso em dispositivos que reivindicam esse recurso.

Nova interface de hardware da câmera

O Android 4.2 introduz uma nova implementação da pilha de câmera. O subsistema da câmera inclui as implementações dos componentes no pipeline da câmera, como captura no modo de burst com controles de processamento.

Nova interface de hardware NFC e interface do controlador

O Android 4.2 introduz suporte a controladores com base no padrão NCI do NFC-Forum. O NCI fornece um protocolo de comunicação padrão entre um Controlador NFC (NFCC, na sigla em inglês) e um host de dispositivo, e a nova pilha NFC desenvolvida em colaboração entre o Google e a Broadcom oferece suporte a ele.

Otimizações do ambiente de execução Dalvik

O ambiente de execução Dalvik inclui melhorias de desempenho e segurança em uma ampla variedade de arquiteturas:

  • Compatibilidade com x86 JIT da Intel e com MIPS JIT do MIPS
  • Parâmetros de coleta de lixo otimizados para dispositivos com mais de 512 MB
  • Implementações padrão de SecureRandom e Cipher.RSA agora usam o OpenSSL
  • Compatibilidade com SSLSocket para TLSv1.1 e TLSv1.2 via OpenSSL 1.0.1
  • Nova compatibilidade intrínseca com métodos StrictMath abs, min, max e sqrt
  • BouncyCastle atualizado para 1.47
  • zlib atualizado para 1.27
  • dlmalloc atualizado para 2.8.6

Android 4.1

Este é o Android 4.1, a primeira versão do Jelly Bean.

O Android 4.1 é a versão mais veloz e avançada do Android. Fizemos melhorias em toda a plataforma e adicionamos novos recursos incríveis para usuários e desenvolvedores. Este documento oferece um resumo das novidades para os desenvolvedores.

Veja o documento das APIs do Android 4.1 para uma visão detalhada das novas APIs para desenvolvedores.

Saiba mais sobre os recursos do Jelly Bean para usuários em www.android.com.

Mais rápido, mais suave, mais responsivo

O Android 4.1 foi otimizado para oferecer o melhor desempenho do Android e a menor latência de toque em uma interface de usuário simples e intuitiva.

Para garantir uma taxa de quadros consistente, o Android 4.1 estende o tempo de vsync para todos os desenhos e animações feitos pelo framework do Android. Tudo funciona em sincronia com um sinal de funcionamento de vsync de 16 milissegundos (renderização de aplicativos, eventos de toque, composição de tela e atualização de exibição) para que os quadros não fiquem adiantados ou atrasados.

O Android 4.1 também adiciona buffer triplo ao pipeline de gráficos para uma renderização mais consistente, que faz tudo parecer mais suave, da rolagem à paginação e animações.

O Android 4.1 reduz a latência do toque não apenas sincronizando o toque com o tempo de vsync, mas também prevendo onde seu dedo estará no momento da atualização da tela. Isso resulta em uma resposta de toque mais reativa e uniforme. Além disso, após períodos de inatividade, o Android aplica um aumento de entrada da CPU no próximo evento de toque para garantir que não haja latência.

As ferramentas podem ajudar você a conseguir o melhor desempenho dos aplicativos. O Android 4.1 foi projetado para funcionar com uma nova ferramenta chamada systrace, que coleta dados diretamente do kernel do Linux para produzir uma visão geral das atividades do sistema. Os dados são representados como um grupo de gráficos de séries temporais empilhadas verticalmente para ajudar a isolar interrupções de renderização e outros problemas. A ferramenta já está disponível no SDK do Android (ferramentas R20 ou mais recentes).

Acessibilidade aprimorada

As novas APIs para serviços de acessibilidade permitem lidar com gestos e gerenciar o foco da acessibilidade à medida que o usuário percorre os elementos na tela e os botões de navegação usando gestos de acessibilidade, acessórios e outras entradas. O sistema Talkback e o reconhecimento por toque foram reprojetados para usar o foco de acessibilidade a fim de facilitar o uso e oferecer um conjunto completo de APIs para desenvolvedores.

Os serviços de acessibilidade podem vincular os próprios tutoriais às configurações de acessibilidade para ajudar os usuários a configurar e usar os serviços.

Os aplicativos que usam componentes padrão da View herdam a compatibilidade com os novos recursos de acessibilidade automaticamente, sem nenhuma alteração no código. Os aplicativos que usam Views personalizadas podem usar novas APIs de nó de acessibilidade para indicar as partes da View que são de interesse dos serviços de acessibilidade.

Compatibilidade com usuários internacionais

Compatibilidade com texto bidirecional e outros idiomas

O Android 4.1 ajuda você a alcançar mais usuários por meio da compatibilidade com texto bidirecional nos elementos TextView e EditText. Os aplicativos podem exibir ou editar texto nos scripts da esquerda para a direita ou da direita para a esquerda. Também podem usar novas localidades em árabe e hebraico e fontes associadas.

Veja outros tipos de compatibilidade com novos idiomas:

  • Idiomas índicos adicionais: kannada, telugu e malaiala
  • Os novos caracteres emoji da versão 6.0 do Unicode
  • Melhor compatibilidade com glifos para usuários japoneses (renderiza versões de glifos específicas do japonês quando o idioma do sistema é configurado como japonês)
  • Glifos em árabe otimizados para WebViews, além de glifos em árabe para TextViews
  • Compatibilidade com texto vertical em WebViews, incluindo texto Ruby e glifos de texto vertical adicionais
  • O recurso negrito sintético já está disponível para todas as fontes que não têm glifos em negrito

Keymaps instaláveis pelo usuário

A plataforma agora é compatível com mapas de teclado instaláveis pelo usuário, como teclados internacionais adicionais e tipos especiais de layout. Por padrão, o Android 4.1 inclui 27 keymaps internacionais para teclados, incluindo o Dvorak. Quando os usuários conectam um teclado, eles podem acessar o aplicativo Config. e selecionar um ou mais atalhos de teclado que querem usar. Ao digitar, os usuários podem alternar entre os atalhos de teclado usando um atalho (ctrl-space).

É possível criar um aplicativo para publicar atalhos de teclado adicionais no sistema. O APK pode incluir os recursos de layout de teclado com base no formato de atalhos de teclado padrão do Android. O aplicativo é capaz de oferecer mais layouts de teclado ao usuário declarando um broadcast receiver adequado para ACTION_QUERY_KEYBOARD_LAYOUTS no manifesto.

Novas maneiras de criar uma IU bonita

Os desenvolvedores podem criar estilos de notificação personalizados, como os mostrados nos exemplos acima, para mostrar conteúdo e ações avançados.

Notificações que podem ser abertas

As notificações são um recurso exclusivo e famoso do Android. Os desenvolvedores podem usá-las para mostrar informações importantes ou baseadas em tempo aos usuários na barra de notificações, fora da IU normal do aplicativo.

O Android 4.1 oferece uma atualização importante para o framework de notificações do Android. Os aplicativos agora podem exibir notificações maiores e mais detalhadas para os usuários, que podem ser expandidas e recolhidas com um gesto de pinça ou deslizamento. As notificações são compatíveis com novos tipos de conteúdo, incluindo fotos, têm prioridade configurável e podem até incluir várias ações.

Por meio de um criador de notificações aprimorado, os aplicativos podem criar notificações que usam uma área maior, com até 256 dp de altura. Há três estilos de notificação baseados em modelos disponíveis:

  • BigTextStyle: uma notificação que inclui um objeto TextView de várias linhas.
  • BigInboxStyle: uma notificação que mostra qualquer tipo de lista, como mensagens, títulos e assim por diante.
  • BigPictureStyle: uma notificação que mostra conteúdo visual, como um bitmap.

Além dos estilos baseados em modelos, você pode criar seus próprios estilos de notificação usando qualquer View remota.

Os aplicativos podem adicionar até três ações a uma notificação, que são exibidas abaixo do conteúdo dela. As ações permitem que os usuários respondam diretamente às informações da notificação de maneiras alternativas, como por e-mail ou por telefone, sem abrir o aplicativo.

Com as notificações expansíveis, os aplicativos podem fornecer mais informações ao usuário, sem esforço e sob demanda. Os usuários permanecem no controle e podem tocar em qualquer notificação e mantê-la pressionada para ter informações sobre o remetente e, opcionalmente, desativar outras notificações do aplicativo.

Os widgets de aplicativos podem ser redimensionados automaticamente para caber na tela inicial e carregar conteúdos diferentes conforme os tamanhos são alterados.

Widgets de aplicativos redimensionáveis

O Android 4.1 apresenta widgets de aplicativos aprimorados que podem ser redimensionados automaticamente, com base no local em ficam na tela inicial, no tamanho definido pelo usuário e no espaço disponível na tela inicial. As novas APIs de widgets de apps permitem que você aproveite isso para otimizar o conteúdo do widget do seu app à medida que o tamanho dos widgets muda.

Quando um widget muda de tamanho, o sistema notifica o provedor de widget do aplicativo host, que pode recarregar o conteúdo do widget conforme necessário. Por exemplo, um widget pode exibir imagens maiores e mais avançadas, bem como recursos ou opções adicionais. Os desenvolvedores ainda podem manter o controle sobre os tamanhos máximo e mínimo e podem atualizar outras opções de widget sempre que necessário.

Você também pode fornecer layouts de paisagem e retrato separados para seus widgets, que o sistema insufla conforme apropriado quando a orientação da tela muda.

Os widgets de apps agora podem ser mostrados em telas de início de terceiros e outros apps host por uma nova intent de vinculação (AppWidgetManager.ACTION_APP{/_BIND).

Navegação de tarefas simplificada

O Android 4.1 facilita o gerenciamento da navegação para cima que está disponível para os usuários a partir dos seus aplicativos e ajuda a garantir uma experiência consistente.

Você pode definir a navegação para cima para componentes individuais de Activity da IU adicionando um novo atributo XML ao arquivo de manifesto do aplicativo. No tempo de execução, quando Activities são ativadas, o sistema extrai do arquivo de manifesto a árvore de navegação para cima e cria automaticamente a navegação para cima na barra de ações. Os desenvolvedores que declaram a navegação para cima no manifesto não precisam mais gerenciar a navegação por retorno de chamada no tempo de execução, embora também possam fazê-lo, se necessário.

Também está disponível uma nova classe TaskStackBuilder, que permite montar rapidamente uma pilha de tarefas sintética para inicialização imediata ou para ser usada quando uma Activity é iniciada a partir de um PendingIntent. Criar uma pilha de tarefas sintéticas é especialmente útil quando os usuários iniciam Activities a partir de visualizações remotas, como widgets e notificações na tela inicial, porque permite que o desenvolvedor forneça uma experiência consistente e gerenciada na navegação de retorno.

Animações fáceis para inicialização de Activity

É possível usar uma nova classe auxiliar, ActivityOptions, para criar e controlar a animação exibida quando você inicia suas Activities. Por meio da classe auxiliar, você pode especificar recursos de animação personalizada a serem usados quando a atividade for iniciada ou solicitar novas animações de zoom que iniciem a partir de qualquer retângulo especificado na tela e que opcionalmente inclua um bitmap de miniatura.

Transições para os modos "Luzes apagadas" e "Tela cheia"

Novos sinalizadores de IU do sistema na View permitem a transição limpa de uma IU normal (com barra de ação, barra de navegação e barra do sistema visíveis) para "modo luzes apagadas" (com barra de status e barra de ação ocultas e barra de navegação esmaecida) ou "modo de tela cheia" (com barra de status, barra de ação e barra de navegação todas ocultas).

Novos tipos de Views remotas

Agora os desenvolvedores podem usar visualizações GridLayout e ViewStub nos widgets e notificações da tela inicial. O GridLayout permite que você estruture o conteúdo das suas visualizações remotas e gerencie alinhamentos de visualizações filhas com uma hierarquia de IU mais superficial. ViewStub é uma View invisível, de tamanho zero, que pode ser usada para inflar lentamente recursos de layout no tempo de execução.

Visualização do plano de fundo interativo

O Android 4.1 torna mais fácil para os usuários encontrar e instalar planos de fundo interativos de aplicativos que os incluem. Se o app inclui planos de fundo interativos, agora você pode iniciar uma atividade (ACTION_CHANGE_LIVE_WALLPAPER) que mostra ao usuário uma visualização do plano de fundo interativo. Na visualização, os usuários podem carregar o plano de fundo interativo diretamente.

Fotos de contato de alta resolução

Com o Android 4.1, você pode armazenar fotos de contato com até 720 x 720, tornando os contatos ainda mais ricos e pessoais. Os aplicativos podem armazenar e recuperar fotos de contato nesse tamanho ou usar qualquer outro tamanho necessário. O tamanho máximo de foto permitido em dispositivos específicos pode variar. Por isso, os apps precisam consultar o provedor de contatos integrado no ambiente de execução para saber o tamanho máximo do dispositivo atual.

Novos tipos de entrada e recursos

Saiba mais sobre os dispositivos adicionados e removidos

Aplicativos podem se registrar para serem notificados quando qualquer novo dispositivo de entrada estiver conectado, por USB, Bluetooth ou qualquer outro tipo de conexão. Eles podem usar essas informações para alterar o estado ou os recursos conforme necessário. Por exemplo, um jogo pode receber notificação de que um novo teclado ou joystick foi conectado, indicando a presença de um novo jogador.

Consultar os recursos dos dispositivos de entrada

O Android 4.1 inclui APIs que permitem que aplicativos e jogos aproveitem todos os dispositivos de entrada que estão conectados e disponíveis.

Os aplicativos podem consultar o gerenciador de dispositivos para enumerar todos os dispositivos de entrada conectados no momento e aprender sobre os recursos de cada um deles.

Controlar a vibração em dispositivos de entrada

Entre outros recursos, os aplicativos podem usar qualquer serviço de vibrador associado a um dispositivo de entrada conectado, como os controles com Rumble Pak.

Animação e gráficos

Vsync para aplicativos

Ampliar o vsync em todo o framework do Android leva a um frame rate mais consistente e a uma interface suave e estável. Para que os aplicativos também se beneficiem, o Android 4.1 estende o tempo de vsync para todos os desenhos e animações iniciados pelos aplicativos. Isso permite que eles otimizem as operações na linha de execução de IU e fornece uma base de tempo estável para a sincronização.

Os aplicativos podem aproveitar o tempo de vsync sem custo financeiro por meio do framework de animação do Android. Agora, a estrutura de animação usa o tempo de vsync para gerenciar automaticamente a sincronização entre os animadores.

Para usos especializados, os aplicativos podem acessar o tempo de vsync por meio de APIs expostas pela nova classe Choreographer. Os aplicativos podem solicitar invalidação no próximo quadro de vsync. Essa é uma boa maneira de programar animações quando o aplicativo não estiver usando o framework de animação. Para usos mais avançados, os aplicativos podem publicar um retorno de chamada que a classe Choreographer executará no próximo quadro.

Novas ações de animação e tipos de transição

A estrutura de animação agora permite definir as ações de início e fim a serem executadas nas animações ViewPropertyAnimator, para ajudar a sincronizá-las com outras animações ou ações no aplicativo. A ação pode executar qualquer objeto executável. Por exemplo, o executável pode determinar outra animação para iniciar quando a anterior terminar.

Agora você também pode especificar que um ViewPropertyAnimator use uma camada durante a animação. Anteriormente, a prática recomendada era animar visualizações complicadas configurando uma camada antes de iniciar uma animação e depois manipular um evento onAnimationEnd() para remover a camada quando a animação terminasse. Agora, o método withLayer() no ViewPropertyAnimator simplifica esse processo com uma única chamada de método.

Um novo tipo de transição no LayoutTransition permite automatizar animações em resposta a todas as alterações de layout em um ViewGroup.

Novos tipos de conectividade

Android Beam

O Android Beam é uma tecnologia conhecida baseada em NFC que permite aos usuários compartilhar instantaneamente, apenas aproximando dois telefones com NFC ativada.

No Android 4.1, o Android Beam facilita o compartilhamento de imagens, vídeos ou outros payloads ao usar o Bluetooth para a transferência de dados. Quando o usuário aciona uma transferência, o Android Beam passa da NFC para o Bluetooth, o que facilita muito o gerenciamento da transferência de um arquivo de um dispositivo para outro.

Descoberta de serviços por rede Wi-Fi

O Android 4.1 passa a ser compatível com a descoberta de serviços baseada em DNS multicast, que permite que os aplicativos encontrem e se conectem a serviços oferecidos por dispositivos pares por meio de redes Wi-Fi, incluindo dispositivos móveis, impressoras, câmeras, players de mídia e outros. Os desenvolvedores podem aproveitar a descoberta de serviços por rede Wi-Fi para criar jogos multiplataforma ou jogos e experiências de aplicativos.

Usando a API de descoberta de serviços, os aplicativos podem criar e registrar qualquer tipo de serviço, para que qualquer outro dispositivo com NSD ativado o descubra. O serviço é anunciado por multicast na rede usando um identificador de string legível, que permite ao usuário identificar mais facilmente o tipo de serviço.

Dispositivos de consumo podem usar a API para verificar e descobrir serviços disponíveis em dispositivos conectados à rede Wi-Fi local. Após a descoberta, os aplicativos podem usar a API para resolver o serviço para um endereço IP e uma porta por meio dos quais ele pode estabelecer uma conexão de soquete.

Você pode aproveitar essa API para criar novos recursos nos seus aplicativos. Por exemplo, você pode permitir que os usuários se conectem a uma webcam, impressora ou aplicativo em outro dispositivo móvel compatível com conexões Wi-Fi ponto a ponto.

Descoberta de serviços por Wi-Fi P2P

O Ice Cream Sandwich introduziu suporte ao Wi-Fi ponto a ponto (P2P), uma tecnologia que permite aos apps descobrir e parear diretamente por uma conexão ponto a ponto com alta largura de banda (em conformidade com o programa de certificação Wi-Fi DirectTM da Aliança Wi-Fi). O Wi-Fi P2P é uma maneira ideal de compartilhar mídia, fotos, arquivos e outros tipos de dados e sessões, mesmo quando não há rede celular ou Wi-Fi disponível.

O Android 4.1 leva o Wi-Fi P2P ainda mais longe, acrescentando compatibilidade com a API para descoberta de serviços pré-associados. A descoberta de serviço pré-associados permite que seus aplicativos recebam informações mais úteis de dispositivos próximos sobre os serviços compatíveis antes de tentarem se conectar. Os aplicativos podem iniciar a descoberta de um serviço específico e filtrar a lista de dispositivos detectados para aqueles que realmente são compatíveis com o serviço ou o aplicativo de destino.

Por exemplo, isso significa que seu aplicativo pode descobrir apenas dispositivos que são "impressoras" ou que têm um jogo específico disponível, em vez de descobrir todos os dispositivos P2P Wi-Fi próximos. Por outro lado, seu aplicativo pode anunciar o serviço que fornece para outros dispositivos, que podem descobri-lo e negociar uma conexão. Isso simplifica muito a descoberta e o pareamento para os usuários e permite que os aplicativos aproveitem o Wi-Fi P2P com mais eficiência.

Com a descoberta de serviços por Wi-Fi P2P, você pode criar aplicativos e jogos multijogador que compartilham fotos, vídeos, jogabilidade, placares ou quase tudo, sem precisar de Internet ou rede móvel. Os usuários podem se conectar usando apenas uma conexão P2P direta, o que evita o uso da largura de banda móvel.

Gerenciamento de largura de banda da rede

O Android 4.1 ajuda os aplicativos a gerenciar o uso de dados adequadamente quando o dispositivo está conectado a uma rede limitada, incluindo o tethering a um ponto de acesso móvel. Os aplicativos podem consultar se a rede atual é limitada antes de iniciar um download grande que possa ficar relativamente caro para o usuário. Por meio da API, agora você pode ter uma ideia clara de quais redes são sensíveis ao uso de dados e gerenciar sua atividade de rede de acordo.

Novos recursos de mídia

Acesso ao codec de mídia

O Android 4.1 oferece acesso de baixo nível a codecs de hardware e software da plataforma. Os aplicativos podem consultar o sistema para descobrir quais codecs de mídia de baixo nível estão disponíveis no dispositivo e depois usá-los como necessário. Por exemplo, você pode criar várias instâncias de um codec de mídia, enfileirar buffers de entrada e receber buffers de saída em retorno. Além disso, o framework de codec de mídia é compatível com conteúdo protegido. Os aplicativos podem consultar um codec disponível que seja capaz de abrir conteúdo protegido com uma solução de DRM disponível no dispositivo.

Áudio USB

A compatibilidade com saída de áudio USB permite que os fornecedores de hardware criem hardware, como estações de áudio que tenham interface com dispositivos Android. Essa funcionalidade também é exposta com o Kit de desenvolvimento de acessórios abertos (ADK, na sigla em inglês) do Android para dar a todos os desenvolvedores a chance de criar o próprio hardware.

Ativação de gravação de áudio

O Android agora permite acionar a gravação de áudio com base na conclusão de uma faixa de reprodução de áudio. Isso é útil para situações como tocar um tom para que os usuários comecem a falar para gravar as vozes. Esse recurso ajuda a sincronizar a gravação para não gravar o áudio que está sendo reproduzido no momento e impede que as gravações sejam iniciadas com muito atraso.

Áudio multicanal

O Android 4.1 é compatível com áudio multicanal em dispositivos que têm saída de áudio multicanal por meio da porta HDMI. O áudio multicanal permite que você ofereça experiências de rich media aos usuários para aplicativos como jogos, aplicativos de música e players de vídeo. Para dispositivos que não possuem hardware compatível, o Android automaticamente faz o downmix do áudio para o número de canais aceitos pelo dispositivo (geralmente estéreo).

O Android 4.1 também acrescenta compatibilidade integrada com codificação/decodificação de áudio AAC 5.1.

Pré-processamento de áudio

Os desenvolvedores podem aplicar efeitos de pré-processamento ao áudio que está sendo gravado, como aplicar supressão de ruído para melhorar a qualidade da gravação de voz, cancelamento de eco acústico e controle de ganho automático para áudio com níveis de volume inconsistentes. Aplicativos que exigem alta qualidade e gravação de áudio limpa serão beneficiados por esses pré-processadores.

Encadeamento de áudio

O MediaPlayer é compatível com encadeamento de streams de áudio para que seja possível escutar arquivos de áudio sem pausas. Isso é útil para aplicativos que exigem transições contínuas entre arquivos de áudio, como players de música, para tocar álbuns com faixas ou jogos contínuos.

Media Router

As novas APIs MediaRouter, MediaRouteActionProvider e MediaRouteButton fornecem mecanismos padrão e IU para escolher onde abrir a mídia. A compatibilidade é integrada para fones de ouvido com fio e fones de ouvido e alto-falantes Bluetooth a2dp, e é possível adicionar suas próprias opções de roteamento no seu aplicativo.

Computação Renderscript

O Android 4.1 estende a computação Renderscript para oferecer mais flexibilidade. Agora você pode testar texturas nos seus scripts de computação Renderscript, e novos pragmas estão disponíveis para definir a precisão de ponto flutuante exigida por seus scripts. Isso permite ativar instruções NEON, como operações matemáticas de vetor rápidas no caminho da CPU, o que não seria possível com o padrão IEEE 754-2008 completo.

Agora você pode depurar scripts de computação Renderscript em emuladores e dispositivos de hardware baseados em x86. Você também pode definir vários kernels no estilo raiz em um único arquivo de origem Renderscript.

Android Browser e WebView

No Android 4.1, o Android Browser e as WebViews incluem estas melhorias:

  • Melhor experiência de usuário com vídeo HTML5, incluindo toque para reproduzir/pausar e transição suave do modo inline para o de tela cheia
  • Velocidade de renderização aprimorada e uso reduzido de memória para melhor desempenho de rolagem e zoom
  • Desempenho aprimorado de animação em HTML5/CSS3/Canvas
  • Entrada de texto aprimorada
  • Atualização do JavaScript Engine (V8) para melhorar o desempenho do JavaScript
  • Compatibilidade com a especificação de HTML5 Media Capture atualizada (o atributo “capture” nos elementos input type=file)

APIs e serviços do Google

Para ampliar ainda mais os recursos do Android, vários novos serviços estão disponíveis para o sistema operacional.

Google Cloud Messaging para Android

O Google Cloud Messaging (GCM) é um serviço que permite aos desenvolvedores enviar dados de mensagens curtas aos usuários em dispositivos Android, sem precisar de uma solução de sincronização própria.

O GCM processa todos os detalhes de enfileiramento e entrega de mensagens de maneira eficiente aos dispositivos Android de destino. Ele oferece suporte ao multicast de mensagens e pode alcançar até mil dispositivos conectados simultaneamente com uma única solicitação. Ele também é compatível com payloads de mensagens, o que significa que, além de enviar mensagens de convite para um app no dispositivo, os desenvolvedores podem enviar até 4K de dados.

O Google Cloud Messaging é totalmente sem custo financeiro para todos os desenvolvedores, e a inscrição é fácil. Consulte a página do Google Cloud Messaging para registro, downloads e documentação.

Criptografia de aplicativos

A partir do Android 4.1, o Google Play ajudará a proteger os ativos de aplicativos criptografando todos os aplicativos pagos com uma chave específica do dispositivo antes de serem entregues e armazenados em um dispositivo.

Atualizações inteligentes de aplicativos

As atualizações inteligentes de aplicativos são um novo recurso do Google Play que apresenta uma maneira melhor de fornecer atualizações de aplicativos para dispositivos. Agora, quando os desenvolvedores publicam uma atualização, o Google Play entrega apenas os bits que foram alterados para os dispositivos, e não o APK inteiro. Isso torna as atualizações muito mais leves na maioria dos casos, o que agiliza o download delas, economizam a bateria do dispositivo e economizam o uso da largura de banda no plano de dados móveis dos usuários. Em média, uma atualização de app inteligente tem cerca de 1/3 do tamanho de uma atualização completa do APK.

Google Play Services

O Google Play Services ajuda os desenvolvedores a integrar os serviços do Google, como autenticação, aos aplicativos deles fornecidos pelo Google Play.

O Google Play Services é provisionado automaticamente para dispositivos de usuários finais pelo Google Play, então tudo que você precisa é de uma biblioteca de thin client nos aplicativos.

Como seu aplicativo contém apenas a pequena biblioteca de cliente, você pode aproveitar esses serviços sem grande aumento no tamanho do download e no espaço de armazenamento. Além disso, o Google Play fornecerá atualizações regulares aos serviços, sem que os desenvolvedores precisem publicar atualizações de aplicativos para aproveitá-los.

Para mais informações sobre as APIs incluídas no Google Play Services, consulte a página do desenvolvedor do Google Play Services.