Embora as versões mais recentes do Android costumem oferecer ótimas APIs para seu app, você precisa continuar mantendo-o compatível com as versões anteriores do Android até que mais dispositivos sejam atualizados. Esta lição mostra como aproveitar as APIs mais recentes e, ao mesmo tempo, continuar a oferecer compatibilidade com versões anteriores.
O painel Versões da plataforma é atualizado com frequência para exibir a distribuição de dispositivos ativos com cada versão do Android, com base no número de dispositivos que acessam a Google Play Store. Geralmente, é recomendado oferecer compatibilidade com cerca de 90% dos dispositivos ativos, ao mesmo tempo que direciona seu app para a versão mais recente.
Dica: para oferecer os melhores recursos e funcionalidades em diversas versões do Android, você precisa usar a Biblioteca de Suporte do Android no seu app. Isso permite usar diversas APIs de plataforma recentes em versões anteriores.
Especificar níveis de API mínimos e desejados
O arquivo AndroidManifest.xml
descreve detalhes sobre o app e
identifica com quais versões do Android ele é compatível. Especificamente, os atributos minSdkVersion
e targetSdkVersion
para o elemento <uses-sdk>
identificam o nível mais baixo da API com que o app é compatível e o nível mais alto da API
usado para projetar e testar o app.
Exemplo:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... > <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" /> ... </manifest>
À medida que novas versões do Android são lançadas, alguns estilos e comportamentos podem mudar.
Para permitir que o app aproveite essas mudanças e garantir que ele seja adequado ao estilo do
dispositivo de cada usuário, defina o valor
targetSdkVersion
para corresponder à versão mais recente disponível
do Android.
Verificar versão do sistema em tempo de execução
O Android fornece um código exclusivo para cada versão da plataforma na classe de constantes
Build
. Use esses códigos dentro do app para criar condições para garantir que o código que
depende de níveis mais altos da API seja executado somente quando essas APIs estiverem disponíveis no sistema.
Kotlin
private fun setUpActionBar() { // Make sure we're running on Honeycomb or higher to use ActionBar APIs if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { actionBar.setDisplayHomeAsUpEnabled(true) } }
Java
private void setUpActionBar() { // Make sure we're running on Honeycomb or higher to use ActionBar APIs if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); } }
Observação: ao analisar recursos XML, o Android ignora atributos
XML que não são compatíveis com o dispositivo atual. Portanto, você pode usar atributos XML que
sejam compatíveis apenas com as novas versões com segurança, sem se preocupar com problemas quando versões anteriores
se depararem com o código. Por exemplo, se você definir
targetSdkVersion="11"
, o app incluirá a ActionBar
por padrão
no Android 3.0 e versões mais recentes. Para adicionar itens de menu à barra de ações, defina
android:showAsAction="ifRoom"
no XML de recursos do menu. É seguro fazer isso
em um arquivo XML para várias versões, porque as versões anteriores do Android simplesmente ignoram o atributo
showAsAction
(isto é, você não precisa de uma versão
separada em res/menu-v11/
).
Usar estilos e temas de plataforma
O Android fornece temas de experiência do usuário que dão aos apps a aparência e sensação do sistema operacional subjacente. Esses temas podem ser aplicados ao seu app no arquivo de manifesto. Usando esses estilos e temas integrados, o app terá a aparência e sensação mais recentes do Android naturalmente a cada lançamento.
Para fazer a atividade parecer uma caixa de diálogo:
<activity android:theme="@android:style/Theme.Dialog">
Para fazer a atividade ter um plano de fundo transparente:
<activity android:theme="@android:style/Theme.Translucent">
Para aplicar seu próprio tema personalizado definido em /res/values/styles.xml
:
<activity android:theme="@style/CustomTheme">
Para aplicar um tema ao app inteiro (todas as atividades), adicione o atributo
android:theme
ao elemento <application>
:
<application android:theme="@style/CustomTheme">
Para saber mais sobre a criação e o uso de temas, leia o guia Estilos e temas.