Android 2.0, versão 1

Nível da API: 5

O Android 2.0 é uma versão de plataforma principal implantável em celulares com tecnologia Android a partir de novembro de 2009. Ela inclui novos recursos para usuários e desenvolvedores, bem como 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 uma biblioteca Android e uma imagem do sistema totalmente compatíveis, além de um conjunto de skins do emulador, aplicativos de exemplo e muito mais. A plataforma para download está em total conformidade e não inclui bibliotecas externas.

Para começar a desenvolver ou testar na plataforma Android 2.0, use o SDK do Android e a ferramenta AVD Manager para fazer o download da plataforma no seu SDK.

Destaques da plataforma

Para ver uma lista de novos recursos do usuário e destaques da plataforma, consulte o documento Destaques da plataforma Android 2.0.

Aplicativos integrados

A imagem do sistema incluída na plataforma para download fornece estes aplicativos integrados:

  • Despertador
  • Navegador
  • Calculadora
  • Filmadora
  • Câmera
  • Contatos
  • Localidade personalizada (app do desenvolvedor)
  • Ferramentas para desenvolvedores (app para desenvolvedores)
  • Discador
  • E-mail
  • Galeria
  • Criador de gestos
  • IME para entrada de texto em japonês
  • Mensagens
  • Música
  • Configurações
  • Peças de reposição (app do desenvolvedor)

Localidades

A imagem do sistema incluída na plataforma para download oferece várias localidades integradas. Em alguns casos, strings específicas de região estão disponíveis para as localidades. Em outros casos, é 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).

  • Chinês, RPC (zh_CN)
  • Chinês e Taiwan (zh_TW)
  • Tcheco (cs_CZ)
  • Holandês, Países Baixos (nl_NL)
  • Holandês, Bélgica (nl_BE)
  • Inglês e EUA (en_US)
  • Inglês e Grã-Bretanha (en_GB)
  • Inglês e Canadá (en_CA)
  • Inglês, Austrália (en_AU)
  • Inglês e Nova Zelândia (en_NZ)
  • Inglês e Singapura(en_SG)
  • Francês e França (fr_FR)
  • Francês da Bélgica (fr_BE)
  • Francês (Canadá) (fr_CA)
  • Francês, Suíça (fr_CH)
  • Alemão, Alemanha (de_DE)
  • Alemão, Áustria (de_AT)
  • Alemão, Suíça (de_CH)
  • Alemão, Liechtenstein (de_LI)
  • Italiano, Itália (it_IT)
  • Italiano, Suíça (it_CH)
  • Japonês (ja_JP)
  • Coreano (ko_KR)
  • Polonês (pl_PL)
  • Russo (ru_RU)
  • Espanhol (pt_BR)
  • As strings de interface localizadas correspondem às localidades acessíveis nas configurações.

    Skins do emulador

    A plataforma disponível para download inclui um conjunto de aparências de emulador que podem ser usadas para modelar o aplicativo em diferentes tamanhos e resoluções de tela. As aparências do emulador são estas:

    • QVGA (240 x 320, baixa densidade, tela pequena)
    • WQVGA (240 x 400, densidade baixa, 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 de alta densidade, tela normal)

    Para mais informações sobre como desenvolver um aplicativo que seja exibido e funcione corretamente em todos os dispositivos com tecnologia Android, consulte Suporte a várias telas.

    Recursos do desenvolvedor

    As seções abaixo fornecem informações sobre novos recursos para desenvolvedores oferecidos pelo componente da plataforma Android 2.0 para download.

    Suporte a formigas

    • Assinatura de aplicativos no modo de depuração e lançamento. A assinatura do modo de lançamento inclui suporte integrado à otimização de zipalign. Para saber mais, consulte Assinar seus aplicativos.
    • Adiciona o novo sistema de compilação do Ant com suporte para projetos de instrumentação Emma (cobertura de código).

    API Framework

    As seções abaixo fornecem informações sobre a API da estrutura do aplicativo fornecida pela plataforma Android 2.0.

    Nível da API

    A plataforma Android 2.0 oferece uma versão atualizada da API do framework. Assim como nas versões anteriores, a API do Android 2.0 recebe um identificador de números inteiros (5) que é armazenado no próprio sistema. Esse identificador, chamado de "nível de API", permite que o sistema determine corretamente se um aplicativo é compatível com ele antes de instalá-lo.

    Para usar as APIs introduzidas no Android 2.0 no aplicativo, é necessário definir o valor adequado, "5", nos atributos do elemento <uses-sdk> no manifesto do aplicativo.

    Para mais informações sobre como usar o nível de API, consulte o documento Níveis de API.

    Resumo das mudanças na API

    Bluetooth

    • Ativar/desativar o Bluetooth
    • Descoberta de dispositivos e serviços
    • Conectar-se a um dispositivo remoto usando RFCOMM e enviar/receber dados
    • Anuncie serviços RFCOMM e detecte a conexão RFCOMM recebida

    Adaptadores de sincronização

    • Novas APIs para adaptadores de sincronização se conectarem a qualquer back-end

    Gerente de contas

    • API do gerenciador de contas centralizada para armazenar e acessar tokens/senhas de autenticação com segurança

    Contatos

    • Novas APIs de contatos que permitem acessar dados de várias contas
    • As novas APIs da estrutura de contato rápido permitem que os desenvolvedores criem selos de contato nos apps. Ao clicar no selo, uma janela aparece 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 do 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 muda.

    Mídia

    • O MediaScanner agora gera miniaturas para todas as imagens quando elas são inseridas na MediaStore.
    • Nova API Miniatura para recuperar miniaturas de imagens e vídeos sob demanda.

    Outro framework

    • Novos temas do sistema no android.R.style para mostrar facilmente atividades por cima do plano de fundo atual do sistema ou manter a atividade anterior visível em segundo plano.
    • A nova API WallpaperManager substitui e estende 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ços para ajudar os aplicativos a processar corretamente o ciclo de vida do serviço, em situações específicas de pouca memória em que um serviço pode ser encerrado enquanto está em execução.
      • Service.setForeground() foi descontinuado e agora não executa nenhuma operação efetivamente Ela é substituída por uma nova API, startForeground(), que ajuda (e exige) a associação de uma notificação em andamento ao estado de primeiro plano
    • O MotionEvent agora pode relatar informações de toque simultâneo para dispositivos compatíveis. É possível monitorar até três ponteiros simultaneamente.
    • O KeyEvent tem novas APIs de envio de teclas para ajudar a implementar o comportamento de ação de abrir e tocar e manter pressionado, bem como um novo mecanismo para cancelar pressionamentos de tecla (para teclas virtuais).
    • WindowManager.LayoutParams tem novas constantes que permitem que uma janela ative a tela quando ela é mostrada e mostre a janela mesmo que ela esteja bloqueada. Isso permite que os aplicativos implementem de maneira mais limpa itens como despertadores que devem despertar o dispositivo.
    • Novas APIs Intent que transmitem o estado de encaixe do dispositivo e permitem que os aplicativos iniciem atividades especiais quando o dispositivo é colocado em um dock de computador ou carro.

    Eventos principais executados no key-up

    O Android 2.0 foi projetado para ser executado em dispositivos que usam chaves virtuais para as funções HOME, MENU, BACK e SEARCH, em vez de teclas físicas. Para oferecer a melhor experiência do usuário nesses dispositivos, a Plataforma Android agora executa esses botões na key-up para um par de teclas para baixo/para cima, em vez de tecla para baixo. Isso ajuda a evitar eventos acidentais do botão e permite que o usuário pressione a área do botão e o arraste para fora dela sem gerar um evento.

    Essa mudança de comportamento só vai afetar seu aplicativo se ele estiver interceptando eventos de botão e executando uma ação de pressionamento de tecla, e não de key-up. Especialmente se o aplicativo estiver interceptando a tecla BACK, verifique se ele está processando os eventos de teclas corretamente.

    Em geral, não é recomendável interceptar a tecla BACK em um aplicativo, no entanto, se o aplicativo estiver fazendo isso e invocar alguma ação de tecla para baixo, em vez de teclar para cima, modifique o código.

    Caso seu aplicativo use APIs introduzidas no Android 2.0 (API de nível 5), você pode aproveitar as novas APIs para gerenciar pares de eventos de tecla:

    • Se você estiver interceptando a tecla BACK em uma atividade ou caixa de diálogo, basta implementar o novo método onBackPressed().
    • Se você estiver interceptando a tecla BACK em uma visualização, rastreie o evento de tecla ao pressionar a tecla para baixo (usando o novo método startTracking()) e, em seguida, invoque a ação na tecla para cima. Veja um padrão que pode ser usado:
    • 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. Seu código pode capturar o evento do botão de destino na tecla para baixo, definir uma flag para rastrear o evento de tecla e também capturar o evento na tecla para cima, executando a ação desejada se a flag de rastreamento estiver definida. Fique de olho nas mudanças de foco e limpe a sinalização de rastreamento ao ganhar/perder o foco.

    Relatório de diferenças da API

    Para ter uma visão detalhada das mudanças na API no Android 2.0 (nível 5 da API), em comparação com a versão anterior, consulte o Relatório de diferenças da API.