Nível da API: 5
O Android 2.0 é uma das principais versões que poderá ser implantado em celulares com Android desde novembro de 2009. O lançamento inclui novos recursos para usuários e desenvolvedores, além de mudanças na API de framework do Android.
Para desenvolvedores, a plataforma Android 2.0 está disponível como um componente para download do SDK do Android. A plataforma para download inclui um uma biblioteca Android totalmente compatível e uma imagem do sistema, além de um conjunto de modelos skins, aplicativos de amostra e muito mais. A plataforma para download é totalmente em conformidade e não inclui bibliotecas externas.
Para começar a desenvolver ou testar com a plataforma Android 2.0, use o SDK do Android e a ferramenta AVD Manager para fazer o download da plataforma no SDK.
Destaques da plataforma
Para uma lista de novos recursos do usuário e destaques da plataforma, consulte a página do 2.0 Destaques da plataforma.
Aplicativos integrados
A imagem do sistema incluída na plataforma para download oferece estes aplicativos integrados:
|
|
Localidades
A imagem do sistema incluída na plataforma para download oferece uma variedade de em localidades integradas. Em alguns casos, strings específicas da região estão disponíveis para as localidades. Em outros, é usada uma versão padrão do idioma. Os idiomas disponíveis na imagem do sistema Android 2.0 estão listados abaixo (com o descritor de localidade language_country/region).
|
|
As strings da interface localizadas correspondem às localidades que podem ser acessadas nas Configurações.
Skins do emulador
A plataforma para download inclui um conjunto de aparências de emulador que podem ser usadas para modelar seu aplicativo em diferentes tamanhos e resoluções de tela. As skins do emulador são:
- QVGA (240 x 320, densidade baixa, tela pequena)
- WQVGA (240x400, baixa densidade, tela normal)
- FWQVGA (240 x 432, densidade baixa, tela normal)
- HVGA (320 x 480, densidade média, tela normal)
- WVGA800 (480 x 800, alta densidade, tela normal)
- WVGA854 (480 x 854, alta densidade, tela normal)
Para mais informações sobre como desenvolver um aplicativo que exiba e funcione corretamente em todos os dispositivos com tecnologia Android, consulte Compatibilidade com várias telas.
Recursos para desenvolvedores
As seções abaixo fornecem informações sobre novos recursos ao desenvolvedor oferecidos pelo componente da plataforma Android 2.0 disponível para download.
Suporte do Ant
- Assinatura de aplicativos no modo de depuração e de lançamento. A assinatura do modo de lançamento inclui suporte integrado para a otimização do
zipalign
. Para mais informações, consulte Assinar seus apps. - Adiciona um novo sistema de build do Ant com suporte a projetos de instrumentação do Emma (cobertura de código).
API Framework
As seções abaixo oferecem informações sobre a API do framework do aplicativo fornecida pela plataforma Android 2.0.
Nível da API
A plataforma Android 2.0 oferece uma versão atualizada do framework API. Assim como nas versões anteriores, a API Android 2.0 é atribuída um identificador de número inteiro, 5, que é armazenado no próprio sistema. Esse identificador, chamado de "nível da API", permite que o sistema determine corretamente se um aplicativo é compatível com o sistema antes de instalá-lo.
Para usar as APIs introduzidas no Android 2.0 em seu aplicativo, você precisa
defina o valor adequado, "5", nos atributos da <uses-sdk>
no manifesto do seu aplicativo.
Para mais informações sobre como usar um nível de API, consulte o documento Níveis de API.
Resumo de mudanças na API
Bluetooth
- Ativar/desativar o Bluetooth
- Descoberta de dispositivos e serviços
- Conectar a um dispositivo remoto usando RFCOMM e enviar/receber dados
- Anunciar serviços RFCOMM e ouvir a conexão RFCOMM de entrada
Adaptadores de sincronização
- Novas APIs para adaptadores de sincronização se conectarem a qualquer back-end
Gerente da conta
- API centralizada do gerenciador de contas para armazenar e acessar com segurança tokens/senhas de autenticação
Contatos
- Novas APIs de contato que permitem dados de várias contas
- As novas APIs do framework de contato rápido permitem que os desenvolvedores criem selos de contato nos apps. Clicar no crachá abre uma janela com uma lista de maneiras de entrar em contato com a pessoa com um clique.
WebView
- Classes descontinuadas: UrlInterceptHandler, Plugin, PluginData, PluginList, UrlInterceptRegistry.
Câmera
- Novos parâmetros para efeito de cor, modo de cena, modo de flash, modo de foco, balanço de branco, rotação e outras configurações.
- Nova interface ZoomCallback para realizar ações quando o nível de zoom é alterado.
Mídia
- O MediaScanner agora gera miniaturas para todas as imagens quando elas são inseridas no MediaStore.
- Nova API Thumbnail para recuperar miniaturas de imagens e vídeos sob demanda.
Outra estrutura
- Novos temas do sistema no android.R.style para mostrar atividades com facilidade na parte de cima do plano de fundo do sistema atual ou manter a atividade anterior visível em segundo plano.
- A nova API Plano de fundo substitui e amplia as APIs de plano de fundo que estavam anteriormente no contexto, para permitir que os aplicativos solicitem e definam o plano de fundo do sistema.
- Novas APIs de serviço para ajudar os aplicativos a lidar corretamente com o ciclo de vida do serviço, em especial situações de pouca memória em que um serviço pode ser encerrado enquanto está em execução.
- O método Service.setForeground() foi descontinuado e agora não realiza nenhuma operação. Isso é substituído por uma nova API, startForeground(), que ajuda (e exige) a associação de uma notificação em andamento com o estado em primeiro plano.
- O MotionEvent agora pode relatar informações de toque simultâneo para dispositivos compatíveis. Até três ponteiros podem ser monitorados simultaneamente.
- O KeyEvent tem novas APIs de distribuição de teclas para ajudar a implementar o comportamento de ação ao tocar e manter pressionado, além de um novo mecanismo para cancelar pressionamentos de teclas (para teclas virtuais).
- WindowManager.LayoutParams tem novas constantes que permitem que uma janela ative a tela quando ela é exibida e mostre a janela mesmo que a tela esteja bloqueada. Isso permite que os aplicativos implementem de forma mais limpa coisas como despertadores que devem despertar o dispositivo.
- Novas APIs de intent que transmitem o estado de encaixe do dispositivo e permitem que os aplicativos iniciem atividades especiais quando o dispositivo é colocado em uma base para carro ou desktop.
Eventos de tecla executados ao levantar a tecla
O Android 2.0 foi projetado para ser executado em dispositivos que usam teclas virtuais para INÍCIO, MENU, VOLTAR e PESQUISAR, em vez de teclas físicas. Para oferecer suporte ao melhor usuário nesses dispositivos, a plataforma Android agora executa esses botões key-up, em vez de key-down/key-up, em vez de key-down. Isso ajuda a evitar eventos acidentais do botão e permite que o usuário pressione a área do botão e arraste para fora dele sem gerar um evento.
Essa mudança de comportamento só vai afetar seu app se ele estiver interceptando eventos de botão e realizando uma ação ao pressionar a tecla, em vez de pressionar a tecla. Principalmente se o aplicativo estiver interceptando a tecla BACK, verifique se ele está processando os eventos de tecla corretamente.
Em geral, interceptar a tecla BACK em um aplicativo não é recomendado. No entanto, se o seu aplicativo faz isso e invoca alguma ação no tecla para baixo, em vez de tecla para cima, você deve modificar seu código.
Se o aplicativo usar APIs introduzidas no Android 2.0 (nível 5 da API), aproveite as novas APIs para gerenciar pares de chaves e eventos:
- Se você estiver interceptando a tecla BACK em uma atividade ou caixa de diálogo, apenas
implementar o novo método
onBackPressed()
. - Se você estiver interceptando a tecla BACK em uma visualização, rastreie o evento
de tecla pressionada (pelo novo método
startTracking()
) e invoque a ação na tecla levantada. Aqui está um padrão que você pode usar:
Kotlin
override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean { return when (keyCode) { KeyEvent.KEYCODE_BACK -> { if (event.repeatCount == 0) { event.startTracking() true } else { false } } ... else -> super.onKeyDown(keyCode, event) } } override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean { return when (keyCode) { KeyEvent.KEYCODE_BACK -> { if (event.isTracking && !event.isCanceled) { // *** DO ACTION HERE *** true } else { false } } ... else -> super.onKeyUp(keyCode, event) } }
Java
public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { event.startTracking(); return true; } return super.onKeyDown(keyCode, event); } public boolean onKeyUp(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking() && !event.isCanceled()) { // *** DO ACTION HERE *** return true; } return super.onKeyUp(keyCode, event); }
Se você quiser atualizar um aplicativo legado para que o processamento da tecla BACK funcione corretamente para o Android 2.0 e versões mais antigas da plataforma, use uma abordagem semelhante à mostrada acima. O código pode detectar o evento do botão de destino ao pressionar a tecla, definir uma flag para acompanhar o evento de tecla e detectar o evento ao soltar a tecla, executando a ação desejada se a flag de rastreamento estiver definida. Também é importante observar as mudanças de foco e limpar o rastreamento. ao ganhar/perder o foco.
Relatório de diferenças da API
Para uma visão detalhada das mudanças na API no Android 2.0 (API de nível 5), em comparação com a versão anterior, consulte o Relatório de diferenças da API.