Nível da API: 8
O Android 2.2 é uma versão secundária da plataforma que inclui recursos de usuário, recursos de desenvolvedor, alterações de API e correções de bugs. Para ver informações sobre os recursos do desenvolvedor e as 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 skins 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 para usuários e destaques da plataforma, consulte o documento Destaques da plataforma Android 2.2.
Nível de API
A plataforma Android 2.2 fornece 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 o sistema 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 da API, consulte o documento Níveis de API.
Mudanças na API Framework
As seções abaixo fornecem informações sobre as mudanças 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 externa do dispositivo (como o cartão SD), como uma alternativa à instalação na memória interna.
Os desenvolvedores podem expressar o local de instalação preferido dos
aplicativos usando 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 app
.apk
de acordo com o local preferido, se possível. Se o
aplicativo tiver solicitado a instalação externa, o sistema o instalará em uma
partição particular criptografada na mídia externa. Depois que um arquivo .apk do 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.
A solicitação de instalação na mídia externa do dispositivo não é adequada para todos os apps, principalmente porque a mídia externa pode ser removível e desmontar/remontar pode interromper a experiência do usuário e as configurações do sistema.
Para mais informações sobre como definir um local de instalação preferido para o 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 lida com 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
- Novas APIs OpenGL ES 2.0 em
android.opengl.GLES20
. - Novas classes
ETC1
,ETC1Util
eETC1Util.ETC1Texture
e métodos utilitários para usar o ETC1 para compactação de textura - Nova classe
ImageFormat
. - Novo
YUV image format API
para permitir a compactação de YUV para JPEG e a manipulação de dados YUV
Mídia
- Novas APIs em
android.media.AudioManager
para gerenciar a seleção de áudio, o controle de transporte, a perda temporária da seleção de áudio e a redução. - Nova intent de transmissão para rotear áudio para o SCO:
ACTION_SCO_AUDIO_STATE_CHANGED
com extras indicando um novo estado. - Novas APIs em
SoundPool
para detectar a conclusão do carregamento de som. - Novas APIs em
SoundPool
para pausa e retomada automáticas - Novas APIs em
MediaRecorder
para especificar configurações de áudio para o número de canais, taxas de codificação e de amostragem e a taxa de amostragem. - Novas APIs para adicionar arquivos ao banco de dados de mídia, para que sejam verificados automaticamente. Consulte
MediaScannerConnection.scanFile
eMediaScannerConnection.OnScanCompletedListener
.
Mecanismos de reconhecimento de fala e de reconhecimento 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 profundamente o reconhecimento de voz a 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 o app do solicitante especifique detalhes como idioma preferido, tamanho mínimo 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 da tela para a câmera (agora pode funcionar 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 outros. - Novo utilitário
thumbnail
para miniaturas de vídeos e imagens. - As novas classes
CamcorderProfile
eCamcorderProfile
permitem que os apps determinem as capacidades da câmera do hardware do dispositivo. - Novo suporte em
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 de dispositivos permitem que os desenvolvedores programem aplicativos de "administrador do dispositivo" que podem controlar os recursos de segurança do dispositivo, como o nível de segurança mínimo da senha, a exclusão permanente de dados etc. Os usuários podem selecionar
os administradores ativados nos dispositivos. Para mais informações, consulte
as classes de android.app.admin
ou o exemplo
de código do aplicativo em DeviceAdminSample.java.
Framework de IU
- Os novos modos "modo carro" e "modo noturno" e
UiModeManager
permitem que os apps 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 de multitoque são informados em objetos
MotionEvent
. - O atributo de layout
fill_parent
foi renomeado comomatch_parent
. Isso afeta o código XML e Java (consulteViewGroup.LayoutParams
). A plataforma continuará a respeitar os usos defill_parent
em aplicativos legados. - Os novos atributos de layout
tabStripEnabled
,tabStripRight
etabStripLeft
permitem que os desenvolvedores personalizem a faixa de baixo de TabWidgets. - Melhor compatibilidade com caixas de diálogo gerenciadas em "Atividade".
Contas e sincronização
- O novo método
AddPeriodicSync()
permite programar uma sincronização periódica com uma conta, autoridade e extras específicos na frequência especificada.
Novos elementos e atributos do manifesto
- Para especificar o local de instalação preferido do app (consulte Instalação do app em mídia de armazenamento externa acima):
- Novo atributo
android:installLocation
do elemento<manifest>
. Especifica o local de instalação padrão definido por um app.
- Novo atributo
- 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 o backup seja aparentemente de uma versão mais recente do aplicativo que está instalada no dispositivo atualmente.
- Novo atributo
- 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.
- Novo atributo
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 ligue parakillBackgroundProcesses(String)
.android.permission.BIND_WALLPAPER
: qualquerWallpaperService
precisa exigir essa permissão para garantir que apenas 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 (nível 8 da API), consulte o Relatório de diferenças da API.