Android 2.0, versão 1

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 do SDK do Android para download. 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 no Android 2.0, use o SDK do Android e a ferramenta AVD Manager para baixe a plataforma no seu 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 essas integrados:

  • Despertador
  • Navegador
  • Calculadora
  • Filmadora
  • Câmera
  • Contatos
  • Localidade personalizada (app para desenvolvedores)
  • Ferramentas para desenvolvedores (app para desenvolvedores)
  • Telefone
  • 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 uma variedade de em localidades integradas. Em alguns casos, as strings específicas da região estão disponíveis para o localidades. Em outros, é usada uma versão padrão do idioma. A idiomas disponíveis no sistema Android 2.0 imagem estão listadas abaixo (com a localidade language_country/region descritor).

  • 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, EUA (en_US)
  • Inglês, Grã-Bretanha (en_GB)
  • Inglês do Canadá (en_CA)
  • Inglês, Austrália (en_AU)
  • Inglês, Nova Zelândia (en_NZ)
  • Inglês, Singapura(en_SG)
  • Francês, França (fr_FR)
  • Francês da Bélgica (fr_BE)
  • Francês do Canadá (fr_CA)
  • Francês da 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 (es_ES)
  • As strings da interface localizadas correspondem às localidades acessíveis em "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 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 (480 x 854 de 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 para formigas

    • 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 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 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 do Android 2.0 recebe um identificador inteiro, 5, que é armazenadas no próprio sistema. Com esse identificador, chamado de "nível de API", é possível para determinar corretamente se um aplicativo é compatível com no sistema antes de instalar o aplicativo.

    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-se a um dispositivo remoto usando RFCOMM e enviar/receber dados
    • Anuncie serviços RFCOMM e detecte conexões RFCOMM recebidas

    Adaptadores de sincronização

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

    Gerente da conta

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

    Contatos

    • Novas APIs de contatos que permitem o acesso a 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 obsoletas: 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 do 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 por cima do plano de fundo atual do sistema ou manter a atividade anterior visível em segundo plano.
    • A nova API BackgroundManager 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ç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.
      • Service.setForeground() foi descontinuado e agora não executa efetivamente nenhuma operação. Ela foi substituída 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 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).
    • O WindowManager.LayoutParams tem novas constantes que permitem que uma janela ative a tela quando ela é exibida, mesmo que a tela esteja bloqueada. Isso permite que os aplicativos implementem de forma mais limpa itens 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 na tecla

    O Android 2.0 foi projetado para executar em dispositivos que usam chaves virtuais para HOME, MENU, BACK e SEARCH, 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 de botão acidentais e permite que o usuário pressione a área do botão e arraste sem gerar um evento.

    Essa mudança de comportamento só vai afetar seu aplicativo se ele for interceptar eventos de botão e realizar uma ação com a tecla para baixo, em vez de apertando a tecla. Especialmente se seu aplicativo estiver interceptando a tecla BACK, você deve verifique se o aplicativo está lidando com 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 com tecla para baixo, e não para cima, você deve modificar seu código.

    Caso seu aplicativo use APIs introduzidas no Android 2.0 (API de nível 5), aproveite as novas APIs para gerenciar os pares de eventos principais:

    • 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, você precisará rastrear a tecla evento quando a tecla for pressionada (pelo novo startTracking()) e invoque a ação quando a tecla for pressionada. 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 gerenciamento do botão BACK funciona corretamente no Android 2.0 e em versões mais antigas da plataforma, pode usar uma abordagem semelhante à mostrada acima. Seu código pode capturar evento do botão de destino ao pressionar a tecla, definir uma sinalização para rastrear o evento principal e e também capturar o evento ao pressionar a tecla, executando a ação desejada se o acompanhamento é definida. Também é bom acompanhar 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.