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 incríveis para usuários e desenvolvedores. Este documento oferece um resumo das novidades para desenvolvedores.

Consulte o documento 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, otimização de entrada de CPU e renderização 2D acelerada por hardware) e adiciona novas otimizações que tornam o Android ainda mais rápido.

Para melhorar a performance gráfica, o renderizador 2D acelerado por 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. Para processamento multithread, o renderizador também pode usar processamento de 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 e de forma mais eficiente. As otimizações para texto incluem um desempenho melhor ao usar várias fontes ou conjuntos de glifos complexos (CJK), maior qualidade de renderização ao redimensionar 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 gasto para iniciar a renderização quando você cria uma janela.

Para gráficos de alto desempenho, o Android 4.3 oferece suporte ao OpenGL ES 3.0 e o torna acessível a apps por meio de APIs framework e nativas. Em dispositivos com suporte, 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 gradientes.

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, oferecendo jogos e outros apps com recursos de gráficos 2D e 3D de alto desempenho em dispositivos compatíveis. Você pode aproveitar o OpenGL ES 3.0 e as extensões EGL relacionadas usando APIs de framework ou vinculações de API nativa pelo Kit de desenvolvimento nativo do Android (NDK).

As principais novas funcionalidades fornecidas no OpenGL ES 3.0 incluem a 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 ponto flutuante de 32 bits e inteiro, renderização de textura avançada e tamanho de textura padronizado e formatos de renderização de buffer.

É possível 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, e você pode oferecer suporte a um único formato de compactação de textura padrão nesses dispositivos.

O OpenGL ES 3.0 é um recurso opcional que depende do hardware gráfico subjacente. A compatibilidade já está disponível nos 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 interagem 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 suporte integrado à 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 procurar com eficiência os dispositivos e serviços de interesse. Para cada dispositivo, você pode verificar os 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 forem alteradas.

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

A compatibilidade com Bluetooth Smart já está disponível nos dispositivos Nexus 7 (2013) e Nexus 4 e será ampliada para cada vez mais dispositivos Android nos próximos meses.

Perfil do AVRCP 1.3

O Android 4.3 passa a ser compatível com o Bluetooth AVRCP 1.3, para que seus apps possam ter interações mais ricas com dispositivos de streaming de mídia remoto. Aplicativos 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 de exibir controles de reprodução nos dispositivos remotos conectados por Bluetooth, os apps agora podem transmitir metadados como nome da faixa, compositor e outros tipos de metadados de mídia.

A compatibilidade com plataforma para o AVRCP 1.3 foi integrada na pilha Bluedroid Bluetooth lançada pelo Google e pela Broadcom no Android 4.2. A compatibilidade está disponível imediatamente nos dispositivos Nexus e em outros dispositivos compatíveis com Android que oferecem recursos 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ários para tablets com perfis restritos, uma nova maneira de gerenciar usuários e os respectivos recursos em um único dispositivo. Com os perfis restritos, os proprietários de tablets podem configurar ambientes separados para cada usuário de forma rápida, 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 pontos 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. Diferentemente dos usuários, os perfis são criados a partir do ambiente do proprietário do tablet, com base nos apps instalados e nas contas do sistema. O proprietário controla quais apps instalados são ativados no novo perfil, e o acesso às contas do proprietário é desativado por padrão.

Os apps que precisam acessar as contas do proprietário (para login, preferências ou outros usos) podem ativar o acesso declarando um atributo de manifesto, e o proprietário pode revisar e gerenciar esses apps a partir das configurações de configuração do perfil.

Para desenvolvedores, os perfis restritos representam uma nova maneira de oferecer mais valor e controle aos usuários. Você pode implementar restrições de apps (controles de recursos ou de conteúdo compatíveis com seu aplicativo) e anunciá-los aos proprietários de tablets nas configurações do perfil.

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

Quando seu app é executado em um perfil, ele pode verificar se há alguma restrição configurada pelo proprietário e aplicá-la adequadamente. Por exemplo, um app de mídia pode oferecer uma restrição para permitir que o proprietário defina uma faixa etária para o perfil. No momento da execução, o app pode verificar a configuração de idade e gerenciar o conteúdo de acordo com a faixa etária escolhida.

Se o app não foi projetado para uso em perfis restritos, você pode desativar esse recurso totalmente 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 avançadas de localização que podem ser usadas em apps. O Android 4.3 otimiza essas APIs em dispositivos compatíveis com 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 executando a computação de localização no hardware do dispositivo, e não no software. Em dispositivos compatíveis com a fronteira geográfica virtual de hardware, as APIs do Google Play Services relacionadas poderão usar essa otimização para economizar bateria enquanto o dispositivo estiver em movimento.

O modo de somente busca por Wi-Fi é uma nova otimização de plataforma que permite aos usuários fazer a busca por Wi-Fi sem se conectar a uma rede Wi-Fi, a fim de melhorar a precisão da localização e economizar bateria. Os apps que dependem do Wi-Fi para serviços de localização agora podem solicitar que os usuários ativem o modo de 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 desenvolvedores de jogos detectem a rotação do dispositivo sem precisar se preocupar com interferências magnéticas. Os sensores de giroscópio não calibrado e magnetômetro não calibrado relatam medições brutas, bem como tendências estimadas para os apps.

Os novos recursos de hardware já estão disponíveis nos dispositivos Nexus 7 (2013) e Nexus 4, e qualquer fabricante de dispositivo ou fornecedor de chipset pode integrá-los aos 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 um framework modular de DRM que permite que os desenvolvedores de aplicativos de mídia integrem o DRM aos próprios protocolos de streaming, como o 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, a framework de DRM de mídia oferece um conjunto integrado de serviços para gerenciar licenciamento e provisionamento, acessar codecs de baixo nível e decodificar dados de mídia criptografados. Uma nova API MediaExtractor permite receber metadados PSSH para mídia DASH. Os apps que usam a framework de DRM de mídia gerenciam a comunicação de rede com um servidor de licenças e processam o streaming de dados criptografados de uma biblioteca de conteúdo.

Codificador VP8

O Android 4.3 introduz suporte integrado à codificação VP8, acessível a partir de APIs de framework e 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 de VP8. O suporte à codificação VP8 inclui configurações para taxa de bits de destino, controle de taxa, taxa de quadros, 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 uma variedade de formatos para que você possa aproveitar o melhor formato para seu conteúdo.

A codificação VP8 está disponível em software para todos os dispositivos compatíveis que executam o Android 4.3. Para ter o melhor desempenho, a plataforma também oferece compatibilidade com a 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, você pode 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 de um buffer para outro.

Multiplexador de mídia

Os apps podem usar novas APIs de multiplexador de mídia para combinar streams de áudio e vídeo básicos 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 desmultiplexador de mídia introduzidas no Android 4.2.

Progresso da reprodução e arraste do marcador de mídia em 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, bem como receber comandos para ir a uma posição específica da mídia.

Novas formas de criar aplicativos bonitos

Acesso a notificações

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

Você pode acessar notificações por meio de novas APIs que permitem registrar um listener de notificações e, com a permissão do usuário, receber notificações à medida que são exibidas na barra de status. As notificações são enviadas a você na íntegra, com todos os detalhes sobre o app de origem, o horário de envio, a visualização e o estilo do conteúdo e a prioridade. Você pode avaliar os campos de interesse nas notificações, processar ou adicionar contexto do seu app e encaminhar para exibição da maneira que preferir.

A nova API fornece callbacks quando uma notificação é adicionada, atualizada e removida (seja porque o usuário a dispensou, seja porque o app de origem a removeu). Você poderá iniciar quaisquer intents associados à notificação ou às ações dela, além de dispensá-los a partir 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, eles podem consultar as configurações para ver quais apps têm acesso às notificações e ativar ou desativar o acesso, conforme necessário. O acesso à notificação é desativado por padrão. Os apps podem usar uma nova intent para levar o usuário diretamente para as 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 da visualização.

Modo de layout de limites ópticos

Um novo modo de layout permite que você gerencie o posicionamento de Views dentro de ViewGroups de acordo com os limites ópticos delas, e não com os limites de corte. 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 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. Você pode definir as propriedades da janela para ativar saltos, transições ou rotação padrão de janela. O sistema usa os tipos personalizados de animação 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 Activities para garantir que elas sejam exibidas na orientação adequada 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 um novo intent público 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. Seu 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) e a mensagem em si.

Compatibilidade com usuários internacionais

Mais partes do Android 4.3 foram otimizadas para idiomas RTL.

Melhorias de RTL

O Android 4.3 inclui aprimoramentos de desempenho de RTL e maior compatibilidade com RTL em widgets de interface de framework, incluindo ProgressBar/Spinner e ExpandableListView. Mais informações de depuração são visíveis pela ferramenta uiautomatorviewer. Além disso, agora há mais componentes de IU do sistema que reconhecem RTL, como notificações, barra de navegação e barra de ação.

Para oferecer uma melhor experiência em todo o sistema em scripts RTL, mais apps do 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 interfaces localizadas. Uma nova classe BidiFormatter fornece uma API simples para agrupar strings Unicode, para que os dados de script RTL sejam exibidos como pretendido em mensagens para localidades LTR e vice-versa. Para permitir que você use esse utilitário de maneira mais ampla nos seus apps, a API BidiFormatter também está disponível agora para as versões anteriores da plataforma por meio do Support Package no SDK do Android.

Para ajudar a gerenciar a formatação de datas entre 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 fornecer uma experiência mais localizada para os usuários.

Para ajudar a testar seu app com mais facilidade em outras localidades, o Android 4.3 apresenta as pseudolocalidades como uma nova opção do desenvolvedor. As pseudolocalidades simulam o idioma, o script e as características de exibição associados a uma localidade ou grupo de idiomas. Atualmente, você pode testar com uma pseudolocalidade para Inglês acentuado, que permite ver como sua IU 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, como processar atalhos de teclado ou fornecer paridade de navegação com entradas de gesto. O serviço recebe os eventos e pode processá-los conforme necessário antes de serem transmitidos para o sistema ou 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 da plataforma usam. Por exemplo, eles podem declarar a capacidade de filtrar eventos de tecla, recuperar o conteúdo da janela, ativar o reconhecimento 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 aceitação para os usuários, para que possam conferir e aceitar os recursos antes do lançamento.

Com base na estrutura de acessibilidade do Android 4.3, um novo framework de automação de IU permite que os testes interajam com a IU do dispositivo simulando ações do usuário e analisando o conteúdo da tela. Com o framework de automação de IU, você pode executar operações básicas, definir a rotação da tela, gerar eventos de entrada, fazer capturas de tela e muito mais. É uma maneira poderosa de automatizar os 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

Os apps agora podem configurar as credenciais de Wi-Fi necessárias para conexões com pontos de acesso corporativos WPA2. 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. Os apps com permissão para acessar e alterar 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) do kernel do Linux para ampliar 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 confiável 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. Ao usar 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 oferece para credenciais do sistema, como a vinculação de credenciais 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 é montada nosuid para processos gerados por zigotos, impedindo que os 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 oferece acesso a mais tipos de informações para criar um perfil de desempenho do seu app. Agora é possível coletar dados de rastreamento de módulos de hardware, funções do kernel, VM Dalvik, incluindo coleta de lixo, carregamento de recursos e muito mais.

O Android 4.3 também inclui novas APIs Trace que você pode usar nos seus apps para marcar seções de código específicas 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 sobre o desempenho do app é mínimo, por isso, os tempos relatados oferecem uma visualização precisa do que seu 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 do Systrace, as seções personalizadas de apps podem oferecer novas maneiras de entender o desempenho e o comportamento dos seus apps.

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 a analisar o desempenho dos apps e identificar problemas de renderização em qualquer dispositivo ou emulador.

Na opção Classificar renderização de GPU, agora é possível visualizar a taxa de quadros efetiva do app na tela enquanto ele está em execução. Você pode escolher mostrar dados de criação de perfil como gráficos de barra ou de linha na tela, com cores indicando o tempo gasto na criação de comandos de desenho (azul), emissão dos comandos (laranja) e espera pela conclusão dos comandos (amarelo). O sistema atualiza os gráficos na tela continuamente, exibindo um gráfico para cada atividade visível, incluindo a barra de navegação e a de notificações.

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

Em dispositivos com Android 4.2 e versões mais recentes, as opções do desenvolvedor ficam ocultas por padrão. É possível exibir essas opções 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 o 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, é preciso usar um URI content:// (com a permissão apropriada). Essa nova política ajuda você a identificar e corrigir esses casos. Se você está procurando uma maneira conveniente de armazenar e expor arquivos para 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 tem otimizações de desempenho, uma IU de sistema atualizada e novos recursos incríveis para usuários e desenvolvedores. Este documento oferece um resumo das novidades para 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 (tempo de vsync, buffer triplo, latência de toque reduzida e otimização de entrada de CPU) e adiciona novas otimizações que tornam o Android ainda mais rápido.

Melhorias no renderizador 2D acelerado por hardware tornam as animações comuns, como rolagem e deslizamento, mais rápidas e suaves. Em particular, o desenho é otimizado para camadas, recortes e certas formas (retângulos arredondados, círculos e formas 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 usa automaticamente os recursos de computação de GPU sempre que possível, melhorando drasticamente o desempenho de gráficos e processamento de imagens. Qualquer app que use o Renderscript em um dispositivo compatível 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 oferece os padrões familiares da interface do Android, 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 apresentam 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 familiar aparece na parte de baixo, com botões facilmente acessíveis com 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, com acesso conveniente a um espaço dedicado para cada usuário . Os usuários podem alternar para os espaços deles com um único toque na tela de bloqueio.

Em um dispositivo multiusuário, o Android oferece a cada um deles 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, que são mantidos separados pelo sistema. Todos os usuários compartilham os principais serviços do sistema, mas o sistema garante que os aplicativos e dados de cada um permaneçam isolados. Na prática, é como se cada um dos vários usuários tivesse 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 fará o download de um APK somente se ele ainda não tiver sido 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 normal, 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ífico.

Para desenvolvedores, o suporte multiusuário é transparente: seus apps não precisam fazer nada especial para serem executados normalmente em um ambiente multiusuário, e não é preciso fazer alterações nos seus APKs existentes ou publicados. O sistema gerencia seu app em cada espaço de usuário, assim como faz 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 aplicativos favoritos sem precisar desbloquear o dispositivo. Os usuários podem adicionar até cinco widgets na tela de bloqueio, escolhendo entre 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 visualizar 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 aceitar interação direta do usuário. Eles podem ser totalmente autônomos, como um widget que oferece controles para tocar música, ou podem permitir que os usuários acessem diretamente uma Activity no app, depois de desbloquear o dispositivo, se 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 veem com frequência e oferecem mais oportunidades de levar os usuários diretamente ao seu aplicativo.

Você pode aproveitar esse novo recurso criando um novo widget de app ou estendendo um widget da tela inicial existente. Se o app já inclui widgets da tela inicial, você pode estendê-los à tela de bloqueio com poucas alterações. Para oferecer aos usuários uma experiência otimizada, você pode atualizar o widget para usar toda a área da tela de bloqueio quando disponível e redimensionar para telas menores, quando necessário. Você também pode adicionar recursos aos seus widgets que podem ser especialmente úteis ou convenientes na tela de bloqueio.

Daydream

O Daydream é um modo de proteção de tela interativo que é iniciado quando o dispositivo de um usuário está ancorado ou em carregamento. 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 conteúdo a ser exibido.

Os daydreams combinam os melhores recursos de planos de fundo interativos e widgets da tela inicial, mas são mais poderosos. Eles permitem que você ofereça qualquer tipo de conteúdo em um contexto completamente novo, com interações do usuário, como ver fotos, abrir áudio ou vídeo ou ir direto para seu aplicativo com um único toque.

Como os daydreams podem ser iniciados automaticamente quando um dispositivo está carregando ou ancorado, eles também oferecem uma ótima maneira de apoiar novos tipos de experiências do usuário, como modo de exibição ou leanback, modo de demonstração ou quiosque e "modo de atração", sem necessidade 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 Activities e podem fazer qualquer coisa que a Activity pode fazer, desde renderizar uma hierarquia de IU (sem usar as RemoteViews) até desenhar diretamente usando o Canvas, OpenGL, SurfaceTexture e muito mais. Eles podem abrir vídeo e áudio e até aceitar interação direta com o usuário. No entanto, os daydreams não são Activities, por isso não afetam a backstack nem aparecem em "Recentes" e não podem ser iniciados diretamente do app.

A implementação de um daydream é direta e você pode aproveitar os componentes e recursos de interface que já criou para outras partes do app. Você pode disponibilizar vários daydreams no app e oferecer conteúdo e configurações de exibição diferentes para cada um deles.

Compatibilidade com tela externa

O Android 4.2 introduz suporte de plataforma para telas externas que vai muito além do espelhamento. Agora, os apps podem direcionar conteúdo exclusivo para uma ou várias telas conectadas a um dispositivo Android. Os apps podem aproveitar isso 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. O app pode enumerar as telas e verificar os recursos de cada uma, incluindo tamanho, densidade, nome de exibição, ID, suporte a vídeo seguro e muito mais. Seu app também pode receber callbacks quando telas são adicionadas ou removidas ou quando os recursos delas são alterados, para gerenciar melhor seu 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 Presentation, um tipo de caixa de diálogo que representa uma janela para o conteúdo do seu app em uma tela externa específica. Seu app fornece apenas a tela a ser usada, um tema para a janela e qualquer conteúdo exclusivo a ser mostrado. A Presentation lida com recursos inflados 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 concede ao seu app controle total sobre a janela de exibição remota e o conteúdo dela, além de permitir gerenciá-lo com base em eventos de entrada do usuário, como pressionamentos de teclas, gestos, eventos de movimento, entre outros. 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 de stream ou visualizações da câmera.

Seleção de tela preferencial

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

Para encontrar a melhor tela, seu app pode consultar o gerenciador de telas sobre a tela preferida da apresentação do sistema e receber callbacks quando essa tela for alterada. 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 for alterada. Seu app pode mostrar conteúdo por padrão na atividade principal até que uma tela de apresentação preferida seja anexada, momento em que ele pode alternar automaticamente para o conteúdo da apresentação na tela preferida. Seus apps também podem usar MediaRouteActionProvider e MediaRouteButton do roteador de mídia para oferecer a interface padrão de seleção de telas.

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. Seu 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 apropriado para tornar o conteúdo visível. Para mais segurança em objetos SurfaceView, seu app pode definir uma flag segura para indicar que o conteúdo nunca deve 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 compatíveis podem se conectar a uma tela externa via 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 Miracast™. Quando um display sem fio é conectado, os usuários podem transmitir qualquer tipo de conteúdo para a tela grande, incluindo fotos, jogos e mapas, entre outros itens.

Os apps podem usar as telas sem fio da mesma forma que fazem com outras telas externas, e não são necessárias outras ações. O sistema gerencia a conexão de rede e transmite sua 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 compatibilidade nativa completa para layouts RTL (da direita para a esquerda), incluindo o espelhamento de layout. Com o suporte nativo para RTL, você pode oferecer a mesma experiência do app a todos os usuários, independentemente de o idioma deles usar um script com leitura da direita para a esquerda ou da esquerda para a direita.

Quando o usuário alterna o idioma do sistema para um script da direita para a esquerda, o sistema agora oferece o espelhamento automático dos layouts de IU do app e de todos os widgets de visualização, além do espelhamento bidirecional 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 lida com o espelhamento e a exibição da IU conforme necessário.

Para um controle preciso da IU do 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 do local nos componentes de View. Você pode até criar versões personalizadas de layout, drawables e outros recursos para exibição quando um script da direita para a esquerda estiver em uso.

Para ajudar a depurar e otimizar seus layouts personalizados da direita para a esquerda, a ferramenta HierarchyViewer agora permite que você veja as propriedades de início/fim, a direção do layout, a direção do texto e o alinhamento de texto para todas as Views 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 (나눔 글꼴) Gothic, uma fonte unicode projetada especialmente para o script de idioma coreano.
  • Compatibilidade aprimorada com textos verticais japoneses exibidos em WebViews.
  • Melhoria do kerning e posicionamento para as fontes padrão índicas, tailandesas, árabes e hebraicas.

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

  • Dicionários aprimorados para francês (com compatibilidade com 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 interface do usuário e torná-los mais modulares, o Android 4.2 permite aninhar Fragments dentro de Fragments. Um novo gerenciador de fragmentos permite inserir outros fragmentos como nós filhos na hierarquia de visualização.

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

Para aproveitar ao máximo os Fragments 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 diferenciar a exploração por toque dos gestos de acessibilidade enquanto estão 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 genérica por toque foi iniciada. Em seguida, ele rastreia a velocidade da interação por toque e 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.2 um novo tipo de feedback sobre acessibilidade para dispositivos em braille.

Para oferecer informações aos serviços de acessibilidade sobre o significado das Views para fins de acessibilidade, o framework fornece novas APIs para associar uma View como rótulo de outra. O rótulo de cada View está disponível para serviços de acessibilidade por meio de 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 High Dynamic Range.

Além disso, o framework passou a fornecer 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 uma alternativa para o som padrão do obturador, o que é recomendado.

Computação Renderscript

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

Filterscript

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

O Filterscript é ideal para operações de processamento simples de imagens e computação com aceleração de hardware, como aquelas que podem ser gravadas para os sombreadores de fragmentos OpenGL ES. Como ele impõe um conjunto moderado de restrições ao hardware, as 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 passa a ser compatível com um conjunto de intrínsecos de script, que são primitivos de filtragem pré-implementados e acelerados para reduzir a quantidade de código que você precisa escrever e para garantir que o app tenha o máximo ganho de desempenho possível.

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

Grupos de scripts

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

Gráfico de otimizações do RenderScript

Comparativos de processamento de imagem Renderscript são executados 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 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 um desempenho melhor.

Melhorias contínuas de otimização

Quando você usa o Renderscript para operações de computação, seus aplicativos se beneficiam de melhorias contínuas de desempenho e otimização no próprio mecanismo 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 de forma mais rápida e em mais chipsets, sem nenhum trabalho para você. 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 com Renderscript é a primeira plataforma computacional adaptada para ser executada diretamente em uma GPU de dispositivo móvel. Agora, ele usa automaticamente os recursos de computação de GPU sempre que possível para melhorar o desempenho. Com a integração da GPU, até mesmo as computações mais complexas para processamento de gráficos ou imagens podem ser executadas com um desempenho muito melhor.

Qualquer app que use o Renderscript em um dispositivo compatível 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 várias novas opções de desenvolvedor que facilitam a criação de aplicativos com boa 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. É possível mostrar as opções do desenvolvedor a qualquer momento tocando sete vezes em Configurações > Sobre o telefone > 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:

  • Obter relatório de bugs: faz uma captura de tela imediatamente, envia informações sobre o estado do dispositivo para o armazenamento de arquivos local e as anexa a uma nova mensagem de e-mail de saída.
  • Relatórios de bugs do menu de energia: 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 o sideload por USB, mantendo a verificação de outras fontes, como o navegador. Isso pode acelerar o processo de desenvolvimento e ao mesmo tempo manter o recurso de segurança ativado.
  • Mostrar 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 rastream. OpenGL: permite rastrear a execução de 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ções inovadores em uma ampla gama de dispositivos de hardware. Na maioria dos casos, as novas tecnologias de plataforma e as melhorias não afetam diretamente seus apps, para que você possa se beneficiar deles 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 ativar a verificação de apps para que eles sejam filtrados por um verificador antes da instalação. A verificação de apps pode alertar o usuário se ele tentar instalar um app que possa ser perigoso. Se um aplicativo for especialmente nocivo, ela poderá bloquear a instalação.
  • Mais controle de SMS premium: o Android vai enviar uma notificação se um aplicativo tentar enviar um 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 encadear um conjunto de certificados esperados. Isso protege contra possíveis comprometimentos de autoridades de certificação.
  • Exibição aprimorada de permissões do Android: as permissões foram organizadas em grupos que são compreendidos com mais facilidade pelos usuários. Durante a análise das permissões, o usuário pode clicar na permissão para conferir informações mais detalhadas sobre ela.
  • Aumento da proteção do installd: o daemon installd não é executado como usuário raiz, reduzindo a possível superfície de ataque para escalonamento de privilégios de raiz.
  • Aumento da proteção do script init: os 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. Ele é usado por bibliotecas e aplicativos do sistema para evitar corrupção de memória.
  • Configuração padrão do ContentProvider: os aplicativos voltados ao nível de API 17 terão "export" definido como "false" por padrão para cada ContentProvider, reduzindo a superfície de ataque padrão dos aplicativos.
  • Criptografia: modificação das implementações padrão de SecureRandom e Cipher.RSA para usar o OpenSSL. Agora, há compatibilidade com SSLSocket para TLSv1.1 e TLSv1.2 que usem 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 de vulnerabilidades específicas do Android. Foram fornecidas informações sobre essas vulnerabilidades aos membros do 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 introduz 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 pelas melhorias feitas na versão do Android 4.1 para a latência de saída de áudio usando o OpenSL ES, as APIs Soundpool e Tone Generator. Essas melhorias dependem do suporte ao hardware. Os dispositivos que oferecem esses recursos de áudio de baixa latência podem anunciar o suporte a 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 a captura no modo de fotos em sequência com controles de processamento.

Nova interface de hardware NFC e interface do controlador

O Android 4.2 introduz suporte para 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 é compatível com 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 gama 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
  • As 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 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 ao 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 desenvolvido 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 exibir 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 uma 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 widget de apps permitem que você use 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.

Agora, os widgets do app podem ser exibidos em telas de início de terceiros e outros apps host por meio de um novo intent de vinculação (AppWidgetManager.ACTION_APPWIDGET_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 é possível iniciar uma Activity (ACTION_CHANGE_LIVE_WALLPAPER) que mostra ao usuário uma visualização do plano de fundo interativo do próprio app. A partir da visualização, os usuários podem carregar diretamente o plano de fundo interativo.

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 compatível em dispositivos específicos pode variar. Por isso, os apps devem consultar o provedor de contatos integrado no tempo de execução para descobrir 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

A extensão do vsync em todo o framework do Android leva a uma taxa de quadros mais consistente e a uma interface de usuário suave e estável. Para que os aplicativos também sejam beneficiados, 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 gratuitamente 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

A Ice Cream Sandwich introduziu o suporte a Wi-Fi ponto a ponto (P2P, na sigla em inglês), uma tecnologia que permite que os apps descubram e façam pareamento diretamente, por meio de uma conexão ponto a ponto com largura de banda alta (em conformidade com o programa de certificação Wi-Fi Direct™ da Alliance). 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 Android Open Accessory Development Kit (ADK) 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 que você ative as instruções NEON, como operações matemáticas de vetor rápido no caminho da CPU, que não seriam possíveis 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 é compatível com o multicast de mensagens e pode alcançar até mil dispositivos conectados simultaneamente a uma única solicitação. Ele também é compatível com payloads de mensagens, o que significa que, além de enviar mensagens de tickle para um app no dispositivo, os desenvolvedores podem enviar até 4K de dados.

O Google Cloud Messaging é totalmente gratuito 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. Quando os desenvolvedores publicam uma atualização, o Google Play agora envia apenas os bits que foram alterados para os dispositivos, em vez do APK inteiro. Isso torna as atualizações muito mais leves na maioria dos casos, o que acelera o download, economiza a bateria do dispositivo e conserva o uso da largura de banda no plano de dados móveis dos usuários. Geralmente, uma atualização de aplicativo 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.