O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Compatibilidade com diferentes versões da plataforma

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 SO até que mais dispositivos sejam atualizados. Esta lição mostra como aproveitar as APIs mais recentes e, ao mesmo tempo, manter a compatibilidade com versões anteriores.

O painel Versões da plataforma é atualizado com frequência para exibir a distribuição de dispositivos ativos executando cada versão do Android, com base no número de dispositivos que acessam a Google Play Store. Geralmente, é recomendado oferecer compatibilidade com 90% dos dispositivos ativos, mantendo seu app atualizado 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 o uso de 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 de API mais baixo com que o app é compatível e o nível de API mais alto usado para projetar e testar o app.

Por 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 de plataforma na classe das constantes Build. Use esses códigos dentro do app para criar condições para garantir que o código que depende de níveis de API mais altos 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 com segurança atributos XML que sejam compatíveis apenas com as novas versões, 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 na barra de ações, defina android:showAsAction="ifRoom" no XML de recursos do menu. É seguro fazer isso em um arquivo XML entre 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 de usuário que dão aos apps a aparência do sistema operacional subjacente. Esses temas podem ser aplicados ao seu app no arquivo de manifesto. Usando esses estilos e temas integrados, o app acompanhará naturalmente a aparência mais recente do Android 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.