APIs do Android 2.2

Nível da API: 8

O Android 2.2 é uma versão secundária da plataforma, incluindo recursos de usuário, recursos de desenvolvedor, mudanças na API e correções de bugs. Para informações sobre os recursos do desenvolvedor e mudanças na API, consulte a seção API Framework.

Para desenvolvedores, a plataforma Android 2.2 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, além de um conjunto de aparências do emulador e muito mais. Para começar a desenvolver ou testar no Android 2.2, use o Android SDK 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.2.

Nível de API

A plataforma Android 2.2 oferece uma versão atualizada da API do framework. A API do Android 2.2 recebe um identificador de números inteiros (8) 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.2 no seu aplicativo, é necessário definir o valor adequado, "8", nos atributos android:minSdkVersion 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.

Mudanças na API do framework

As seções abaixo fornecem informações sobre as alterações feitas na API do framework do aplicativo fornecida pela plataforma Android 2.2.

Instalação do app em mídia de armazenamento externo

A plataforma Android agora permite que os apps solicitem a instalação na mídia de armazenamento externo do dispositivo (como no cartão SD), como uma alternativa à instalação na memória interna do dispositivo.

Os desenvolvedores podem expressar o local de instalação preferido dos aplicativos por meio de um novo atributo de <manifest> no arquivo de manifesto, android:installLocation. O atributo aceita três valores: "internalOnly", "preferExternal" e "auto". No momento da instalação, o sistema verifica o valor de android:installLocation e instala o .apk do app de acordo com o local preferido, se possível. Se o aplicativo solicitou uma instalação externa, o sistema o instalará em uma partição particular criptografada na mídia externa. Depois que um arquivo .apk de aplicativo é instalado externamente, o sistema permite que o usuário mude o local de armazenamento do .apk e mova-o para a memória interna do dispositivo, se necessário (e vice-versa), por meio de "Gerenciar aplicativos" nas configurações do usuário.

Por padrão, o sistema instala todos os aplicativos na memória interna do dispositivo, exceto os que solicitam explicitamente a instalação externa. Isso significa que o sistema sempre vai instalar aplicativos legados na memória interna, já que eles não têm acesso ao atributo android:installLocation. No entanto, é possível configurar e compilar um aplicativo legado para que ele seja instalado internamente em versões mais antigas da plataforma e externamente em plataformas Android 2.2 e mais recentes, se necessário.

Solicitar a instalação na mídia externa do dispositivo não é adequado para todos os apps, principalmente porque a mídia externa pode ser removível e desconectar/remontar pode interromper a experiência do usuário e as configurações do sistema.

Para mais informações sobre como configurar um local de instalação preferido para seu aplicativo, incluindo uma discussão sobre quais tipos de aplicativos devem ou não solicitar instalação externa, leia o documento Local de instalação do app.

Backup de dados

A plataforma agora oferece um serviço de backup generalizado que os aplicativos podem usar para fazer backup e restaurar dados do usuário, para garantir que os usuários possam manter os dados ao trocar de dispositivo ou reinstalar o aplicativo. O Backup Manager processa o trabalho de transportar os dados do aplicativo de e para a área de armazenamento de backup na nuvem. O Backup Manager pode armazenar qualquer tipo de dados, desde dados arbitrários até arquivos, e gerencia operações de backup e restauração de maneira atômica. Para mais informações, consulte Backup de dados.

Gráficos

Mídia

Mecanismos de reconhecimento de fala e de terceiros

  • A plataforma fornece novas APIs de reconhecimento de fala que permitem que os aplicativos tenham uma interação mais rica com o reconhecedor de voz disponível. Por exemplo, as APIs são suficientes para integrar o reconhecimento de voz em um IME.
  • A plataforma também fornece uma classe base RecognitionService, que permite que desenvolvedores terceirizados criem mecanismos de reconhecimento de plug-in.
  • Nova interface RecognitionListener para receber callbacks.
  • Novos extras de RecognizerIntent que permitem que um app do solicitante especifique detalhes como idioma preferido, duração mínima em milissegundos e assim por diante.

Câmera e filmadora

  • Mudanças na API de visualização da câmera para melhorar a eficiência do pipeline de visualização.
  • Nova orientação de tela para a câmera. Agora ela funciona na orientação retrato.
  • Novas APIs em android.hardware.Camera para gerenciar o nível de zoom
  • Novas APIs android.hardware.Camera.Parameters para consultar e definir as configurações da câmera do dispositivo, como distância focal, exposição, nível de zoom, ângulo de visão, entre outras.
  • Novo utilitário thumbnail para miniaturas de vídeo e imagem
  • As novas classes CamcorderProfile e CamcorderProfile permitem que os apps determinem os recursos da câmera do hardware do dispositivo.
  • Novo suporte a android.media.ExifInterface para recuperar o GPS e a distância focal.

Gerenciador de políticas de dispositivos

As novas APIs de gerenciamento de políticas do dispositivo permitem que os desenvolvedores criem aplicativos de "administrador do dispositivo" que podem controlar os recursos de segurança do dispositivo, como o nível mínimo de segurança da senha, a exclusão permanente de dados e assim por diante. Os usuários podem selecionar os administradores ativados nos dispositivos. Para mais informações, consulte as classes android.app.admin ou o exemplo de código do aplicativo em DeviceAdminSample.java.

Framework da interface

  • Os novos modos de interface "modo carro" e "modo noturno" e UiModeManager permitem que os aplicativos ajustem a interface do aplicativo para modos de usuário específicos.
  • Novo ScaleGestureDetector, que permite que as visualizações detectem e processem gestos de transformação que envolvem mais de um ponteiro (multitoque) usando os MotionEvents fornecidos
  • Melhorias na forma como os eventos multitoque são relatados em objetos MotionEvent.
  • O atributo de layout fill_parent foi renomeado como match_parent. Isso afeta os códigos XML e Java (consulte ViewGroup.LayoutParams). A plataforma vai continuar a respeitar os usos de fill_parent em aplicativos legados.
  • Novos atributos de layout tabStripEnabled, tabStripRight e tabStripLeft permitem que os desenvolvedores personalizem a faixa de baixo de TabWidgets.
  • Melhor suporte para caixas de diálogo gerenciadas na Activity

Contas e sincronização

  • O novo método AddPeriodicSync() permite programar uma sincronização periódica com uma conta específica, autoridade e extras na frequência determinada.

Novos elementos e atributos do manifesto

  • Para especificar o local de instalação preferido do aplicativo (consulte Instalação de app em mídia de armazenamento externo acima):
    • Novo atributo android:installLocation do elemento <manifest>. Especifica o local de instalação padrão definido por um app.
  • Para gerenciar o backup de dados do usuário (consulte Gerenciador de backup, acima, para mais informações):
    • Novo atributo android:backupAgent do elemento <application>. Especifica o nome do componente da subclasse do BackupAgent fornecida pelo aplicativo para processar operações de backup/restauração, se houver.
    • Novo atributo android:restoreAnyVersion do elemento <application>. Valor booleano que indica se o aplicativo está preparado para tentar uma restauração de qualquer conjunto de dados salvo em backup, mesmo que pareça que o backup é de uma versão mais recente do aplicativo que está instalada no dispositivo atualmente.
  • Para gerenciar o compilador JIT da plataforma:
    • Novo atributo android:vmSafeMode do elemento <application>. Valor booleano que especifica se as otimizações do compilador JIT serão desativadas ao executar o aplicativo.

Permissões

  • android.permission.BIND_DEVICE_ADMIN: qualquer broadcast receiver de administração de dispositivo precisa exigir essa permissão para garantir que somente o sistema possa interagir com ele.
  • android.permission.KILL_BACKGROUND_PROCESSES: permite que um app chame killBackgroundProcesses(String).
  • android.permission.BIND_WALLPAPER: qualquer WallpaperService precisa exigir essa permissão para garantir que somente o sistema possa interagir com ela.
  • android.permission.SET_TIME: permite que um app defina o horário do sistema.

Relatório de diferenças da API

Para ter uma visão detalhada de todas as mudanças da API no Android 2.2 (API de nível 8), consulte o Relatório de diferenças da API.