Notas da versão do Android 1.1

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

Este documento fornece notas de versão para a 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 Android a partir de fevereiro de 2009.

A imagem do sistema Android 1.1 oferece uma versão atualizada da API do framework. Assim como a API do Android 1.0, a API do Android 1.1 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 ele antes de instalá-lo.

Os aplicativos indicam o nível mais baixo de API do sistema com que são compatíveis agregando um valor ao atributo android:minSdkVersion. O valor do atributo é um número inteiro correspondente a um identificador de nível da 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 inteiro de 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 versões mais recentes).

Especificamente, você especifica o atributo android:minSdkVersion em um elemento <uses-sdk> como filho de <manifest> no arquivo de manifesto. Depois de 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 funcionará corretamente nos dispositivos, especialmente se ele usar APIs introduzidas no Android 1.1.

Se o aplicativo usar APIs introduzidas no Android 1.1, mas não declarar <uses-sdk android:minSdkVersion="2" />, ele será executado corretamente em dispositivos Android 1.1, mas não em dispositivos Android 1.0. No último caso, o aplicativo falha durante a execução quando tenta 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 na imagem do sistema do Android 1.0 (disponível no SDK do Android 1.0) para garantir que ele seja criado e funcione corretamente em dispositivos com 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 mais testes.

Bibliotecas externas

A imagem do sistema inclui essas bibliotecas externas, que podem ser acessadas no aplicativo adicionando uma <uses-library>.

  • com.google.android.maps: dá ao aplicativo acesso aos dados do Google Maps. Para usar dados do Google Maps, é necessário ter 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
  • Música
  • Imagens
  • Configurações

Localizações da interface

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

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

As strings de interface localizadas correspondem às localidades que podem ser exibidas no emulador, que podem ser acessadas pelo aplicativo de 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, e não no início da atividade. Essas mudanças precisam evitar que os alarmes sejam bloqueados por caixas de diálogo modais.
  • Correções de suspensão do dispositivo.
  • O toque único não abre mais o teclado da chamada. Os usuários agora precisam tocar nele e arrastá-lo.
  • Corrige um bug que faz com que aproximadamente 1 em 25 mensagens de saída congelem a conexão IMAP (com um servidor baseado no Gmail) ao serem transferidas para a pasta "Enviados".
  • Remove as entradas automáticas de configuração da conta que estavam corrompidas ou não foram testáveis. Foram adicionadas pequenas correções a algumas das entradas restantes. Melhorias nas caixas de diálogo de aviso usadas para alguns casos especiais.
  • Altera o intervalo de verificação de e-mails padrão para a cada 15 minutos (em vez de usar "nunca").
  • Correção de bugs de citação de senhas no IMAP, para que os usuários possam incluir caracteres especiais em senhas (por exemplo, espaços).
  • Corrige vários erros na configuração da conta automática e manual
  • Melhora os relatórios de 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 data e hora de acordo com a preferência do usuário (por exemplo, 24 horas vs. AM/PM).
  • Agora mostra "cc:" na visualização de mensagem.
  • Melhora a recuperação de falhas de conexão POP3.
  • As regras do analisador POP3 são mais flexíveis 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.
  • Discador: o padrão de tempo limite da tela de chamada agora é maior ao usar o viva-voz.
  • Discador: adiciona um item "Mostrar teclado" / "Ocultar teclado" ao menu em 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

  • Adiciona 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. Isso é útil se você estiver escrevendo suas próprias subclasses de View.
  • Adiciona novas permissões que permitem que um aplicativo transmita uma mensagem SMS ou WAP Push.
  • Limpeza da API: remove o construtor protegido das imagens do sistema vinculadas ao SDK.

Detalhes de 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 saiba facilmente o UID.
O método público myUid() foi adicionado à classe android.os.Process.
Padding nas visualizações
O método público getBottomPaddingOffset() foi adicionado à classe android.view.View.
O método público getLeftPaddingOffset() foi adicionado à classe android.view.View.
O método público getRightPaddingOffset() foi adicionado à classe android.view.View.
O método público getTopPaddingOffset() foi adicionado à classe android.view.View.
O método público isPaddingOffsetRequired() foi adicionado à 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).