Android 2.0, versão 1

Nível da API: 5

O Android 2.0 é uma versão da plataforma principal que pode ser implantada em celulares com Android a partir de novembro de 2009. Ela 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 disponível para download inclui uma biblioteca Android e uma imagem do sistema totalmente compatíveis, além de um conjunto de skins de emulador, aplicativos de exemplo e muito mais. A plataforma para download é totalmente compatível e não inclui bibliotecas externas.

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

Destaques da plataforma

Para uma lista de novos recursos para usuários 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 para desenvolvedores)

Localidades

A imagem do sistema incluída na plataforma para download fornece várias localidades integradas. Em alguns casos, strings específicas da 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, 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, 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 (França) (fr_FR)
  • Francês e Bélgica (fr_BE)
  • Francês (Canadá) (fr_CA)
  • Francês e Suíça (fr_CH)
  • Alemão, Alemanha (de_DE)
  • Alemão, Áustria (de_AT)
  • Alemão, Suíça (de_CH)
  • Alemão e 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 (es_ES)
  • As strings de interface localizadas correspondem às localidades acessíveis nas configurações.

    Aparências 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 aparências do emulador são:

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

    Para mais informações sobre como desenvolver um aplicativo que seja exibido e funcione corretamente em todos os dispositivos com 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 lançamento e depuração. A assinatura do modo de lançamento inclui suporte integrado para otimização do zipalign. Para mais informações, consulte Assinar seus aplicativos.
    • Adiciona o novo sistema de compilação 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 de 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 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 ele antes da instalação.

    Para usar as APIs introduzidas no Android 2.0 no seu 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 níveis 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
    • Anunciar serviços RFCOMM e escutar a conexão RFCOMM de entrada

    Adaptadores de sincronização

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

    Gerente de contas

    • API centralizada de gerenciamento de contas para armazenar e acessar tokens/senhas de autorização com segurança

    Contatos

    • Novas APIs de contatos que permitem dados de várias contas
    • As novas APIs Quick Contact Framework permitem que os desenvolvedores criem selos de contato no app. Clicar no selo 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 mudar.

    Mídia

    • O MediaScanner agora gera miniaturas para todas as imagens quando elas são inseridas no MediaStore.
    • Nova API de miniatura para recuperar miniaturas de imagem e vídeo sob demanda.

    Outro framework

    • Novos temas do sistema em android.R.style para mostrar atividades no 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 Context para permitir que os aplicativos solicitem e definam o plano de fundo do sistema.
    • Novas APIs de serviço 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 efetivamente nenhuma operação. Isso foi substituído por uma nova API, startForeground(), que ajuda (e exige) a associação de uma notificação em andamento ao estado em primeiro plano
    • O MotionEvent agora pode enviar informações de toque simultâneo para dispositivos compatíveis. Até três ponteiros podem ser monitorados simultaneamente.
    • O KeyEvent tem novas APIs de expedição de teclas para ajudar a implementar o comportamento de ação para cima e para manter pressionado, bem como 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 for mostrada e mostre a janela mesmo que ela esteja bloqueada. Isso permite que os aplicativos implementem, de forma mais limpa, coisas 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 uma base para carro ou computador.

    Eventos principais executados na tecla-up

    O Android 2.0 foi projetado para ser executado em dispositivos que usam teclas virtuais para INÍCIO, MENU, BACK e PESQUISA, 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 key-down/key-up, em vez de keydown. Isso ajuda a evitar eventos de botão acidentais e permite que o usuário pressione a área do botão e, em seguida, arraste para fora dela sem gerar um evento.

    Essa mudança de comportamento só vai afetar seu aplicativo se ele interceptar eventos de botão e realizar uma ação na tecla para baixo, e não na tecla para cima. Se o aplicativo estiver interceptando a tecla BACK, verifique se ele está processando os eventos de tecla corretamente.

    Em geral, a interceptação da tecla BACK em um aplicativo não é recomendada. No entanto, se ele estiver fazendo isso e invocar alguma ação de key-down, em vez de key-up, modifique o código.

    Caso seu aplicativo use APIs introduzidas no Android 2.0 (nível 5 da API), 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 na tecla para baixo (usando o novo método startTracking()) e invoque a ação na tecla para cima. Veja 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 no 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 acompanhamento estiver definida. Também convém observar as mudanças de foco e limpar a sinalização de rastreamento ao ganhar/perder o foco.

    Relatório de diferenças de API

    Para ter uma visão detalhada das mudanças da 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.