Notas da versão do Android 1.1

Data: fevereiro de 2009
Nível da API: 2

Este documento fornece notas da versão da imagem do sistema Android 1.1 incluída no SDK.

Visão geral

A imagem do sistema Android 1.1 fornecida no SDK é a contraparte do desenvolvimento da imagem do sistema de produção do Android 1.1, que pode ser implantada em celulares com tecnologia Android a partir de fevereiro de 2009.

A imagem do sistema do Android 1.1 fornece uma versão atualizada da API do framework. Assim como a API do Android 1.0, essa API recebe um identificador de números inteiros (2) 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 o sistema antes de instalá-lo.

Os aplicativos indicam o nível mais baixo da API do sistema com que são compatíveis, adicionando um valor ao atributo android:minSdkVersion. O valor do atributo é um número inteiro correspondente a um identificador de nível de API. Antes de instalar um aplicativo, o sistema verifica o valor de android:minSdkVersion e permite a instalação apenas se o número inteiro referenciado for menor ou igual ao número inteiro do nível de API armazenado no próprio sistema.

Se você usa a imagem do sistema Android 1.1 para criar um aplicativo compatível com dispositivos que executam a plataforma Android 1.1, é necessário definir o atributo android:minSdkVersion como "2" para especificar que o aplicativo é compatível apenas com dispositivos que usam a imagem do sistema Android 1.1 (ou mais recente).

Especificamente, você especifica o atributo android:minSdkVersion em um elemento <uses-sdk> como filho de <manifest> no arquivo de manifesto. Quando definido, o atributo fica assim:

<manifest>
  ...
  <uses-sdk android:minSdkVersion="2" />
  ...
</manifest>

Ao definir android:minSdkVersion dessa maneira, você garante que os usuários só possam instalar seu aplicativo se os dispositivos estiverem executando a plataforma Android 1.1. Por sua vez, isso garante que o aplicativo funcione corretamente nos dispositivos, especialmente se usar APIs introduzidas no Android 1.1.

Se o aplicativo usa APIs introduzidas no Android 1.1, mas não declara <uses-sdk android:minSdkVersion="2" />, ele é executado corretamente em dispositivos Android 1.1, mas não em dispositivos Android 1.0. No último caso, o aplicativo falhará durante a execução quando tentar usar as APIs do Android 1.1.

Se o aplicativo não usa nenhuma nova API introduzida no Android 1.1, você pode indicar a compatibilidade com o Android 1.0 removendo android:minSdkVersion ou definindo o atributo como "1". No entanto, antes de publicar seu aplicativo, você precisa compilá-lo usando a imagem do sistema do Android 1.0 (disponível no SDK do Android 1.0) para garantir que ele seja criado e funcione corretamente para dispositivos Android 1.0. Teste o aplicativo em relação a imagens do sistema correspondentes aos níveis de API com que o aplicativo foi projetado para ser compatível.

Se você tem certeza de que o aplicativo não está usando as APIs do Android 1.1 e não precisa usá-las, pode ser mais fácil continuar trabalhando no SDK do Android 1.0, em vez de migrar para o SDK do Android 1.1 e ter que fazer testes adicionais.

Bibliotecas externas

A imagem do sistema inclui essas bibliotecas externas, que você pode acessar pelo aplicativo adicionando uma <uses-library>.

  • com.google.android.maps: dá ao seu aplicativo acesso aos dados do Google Maps. Para usar dados do Google Maps, é necessária uma chave de API Maps.

Compatibilidade do dispositivo

A imagem do sistema Android 1.1 foi testada quanto à compatibilidade com os dispositivos Android listados abaixo:

  • T-Mobile G1

Aplicativos integrados

A imagem do sistema inclui estes aplicativos integrados:

  • Despertador
  • Demonstrações de API
  • Navegador
  • Calculadora
  • Câmera
  • Contatos
  • Ferramentas para desenvolvedores
  • Discador
  • E-mail
  • Google Maps (e Street View)
  • Mensagens
  • Musical
  • Imagens
  • Configurações

Localizações da IU

A imagem do sistema fornece strings de IU localizadas para os idiomas listados abaixo.

  • Inglês e EUA (en_US)
  • German (de)

As strings de IU localizadas correspondem às localidades que podem ser exibidas no emulador, acessíveis pelo aplicativo Configurações do dispositivo.

Problemas resolvidos

  • O alerta AlarmClock agora toca áudio/vibe diretamente, e não pelo AlarmManager. O alerta AlarmClock começa a tocar áudio/vibe no IntentReceiver, em vez de no início da atividade. Essas mudanças precisam evitar que os alarmes sejam bloqueados por caixas de diálogo modais.
  • Correções no modo de suspensão do dispositivo.
  • O toque único não abre mais o teclado de chamada na chamada. Os usuários agora precisam tocar nele e arrastá-lo.
  • Corrige um bug que fazia com que aproximadamente 1 em 25 mensagens enviadas congelasse a conexão IMAP (com um servidor baseado no Gmail) quando transferida para a pasta Enviados.
  • Remove as entradas automáticas de configuração da conta que estavam corrompidas ou não foram testáveis. Adiciona pequenas correções a algumas das entradas restantes. Faz melhorias nas caixas de diálogo de aviso usadas em alguns casos especiais.
  • O intervalo padrão de verificação de e-mails foi alterado para a cada 15 minutos, em vez de o padrão ser "nunca".
  • Correção de bugs de citação de senhas no IMAP, para que os usuários possam incluir caracteres especiais nas senhas, como espaços.
  • Corrige vários erros na configuração da conta automática e manual.
  • Melhora a geração de relatórios para vários erros de conexão, facilitando o diagnóstico de configurações da conta com falha.
  • Corrige as notificações de novos e-mails para contas POP3.
  • Garante a verificação automática adequada de contas marcadas como "nunca verificar".
  • Agora exibe a data e a hora com base na preferência do usuário (por exemplo, 24 horas vs. AM/PM).
  • Agora mostra cc: na visualização da mensagem.
  • Melhora a recuperação de falhas de conexão POP3.
  • As regras do analisador de POP3 são menores para que o aplicativo funcione com servidores de e-mail incompatíveis.

Novos recursos

  • Maps: adiciona detalhes e avaliações quando um usuário faz uma pesquisa no Maps e clica em uma empresa para conferir os detalhes dela.
  • Telefone: o padrão de tempo limite da tela de chamada agora é maior ao usar o viva-voz.
  • Telefone: adiciona um item "Mostrar teclado" / "Ocultar teclado" ao menu na chamada para facilitar a descoberta do teclado DTMF.
  • Adição de suporte para salvar anexos do MMS
  • Adição de suporte para letreiro em layouts.

Mudanças na API

Visão geral

  • Adição de anotações para sistemas de teste, sem mudanças reais (que não sejam de teste).
  • Adiciona um método para permitir que um processo determine facilmente o UID.
  • Adição de suporte para letreiro em layouts.
  • Adição de novos métodos para determinar o padding nas visualizações. É útil se você estiver escrevendo suas próprias subclasses de View.
  • Adiciona novas permissões que autorizam um aplicativo a transmitir uma mensagem SMS ou WAP Push.
  • Limpeza da API: remove o construtor protegido das imagens do sistema vinculadas ao SDK.

Detalhes da mudança na API

Módulo ou recursoDescrição da mudança
Anotações para sistemas de teste
Anotação LargeTest adicionada.
Anotação MediumTest adicionada.
Anotação SmallTest adicionada.
Permita que um processo identifique facilmente o UID dele.
O método público myUid() foi adicionado à classe android.os.Process
Preenchimento de visualizações
Adição do método público getBottomPaddingOffset() à classe android.view.View.
Adição do método público getLeftPaddingOffset() à classe android.view.View.
Adição do método público getRightPaddingOffset() à classe android.view.View.
Adição do método público getTopPaddingOffset() à classe android.view.View.
Adição do método público isPaddingOffsetRequired() à classe android.view.View.
Suporte a letreiro
O método público setMarqueeRepeatLimit(int) foi adicionado à classe TextView
O campo público android.R.attr.marqueeRepeatLimit foi adicionado
Novas permissões
O campo público android.Manifest.permission.BROADCAST_SMS foi adicionado
O campo público android.Manifest.permission.BROADCAST_WAP_PUSH foi adicionado
Limpeza de APIs
Remoção do construtor protegido java.net.ServerSocket.ServerSocket(java.net.SocketImpl).