Enquanto que as ultimas versões do Android oferecem excelentes APIs para
seu aplicativo, você deve continuar a suporta versões antigas do Android até
que mais dispositivos sejam atualizados. Nesta postagem mostraremos como você
pode tirar vantagem das ultimas APIs enquanto continua a suportar antigas
versões.
O painel de instrumentos para Versões de Plataforma é atualizada regularmente para mostrar a distribuição de dispositivos
ativos rodando cada versão do Android, baseado no numero de dispositivos que
vistam a loja do Google Play. De modo comum, é uma boa pratica suportar em
torno de 90% dos dispositivos ativos, enquanto direciona seu aplicativo para a
versão mais recente.
Dica: Em ordem de fornecer as
melhores características e funcionalidades através das varias versões do
Android, você deve usar a Biblioteca de Suporte do
Android em seu aplicativo, que permite
você utilizar varias das recentes APIS da plataforma em versões antigas.
Especificar o Mínimo e Direcionar Níveis da API
O arquivo AndroidManifest.xml descreve os detalhes sobre o seu aplicativo e identifica qual versão
do Android que suporta. Especificamente os atributos minSdkVersion e targetSdkVersion para o elemento <uses-sdk identifica o menor nível de API com o qual seu aplicativo é compatível
e o mais alto nível de API com o qual você desenvolveu e testou sua aplicação.
Por exemplo:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... >
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
...
</manifest>
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
...
</manifest>
Conforme novas versões do Android forem liberadas, alguns estilos e
comportamentos podem mudar. Para permitir que seu aplicativo tire vantagem
destas mudanças e assegurar que seu aplicativo se encaixa no estilo de cada
dispositivo dos usuários, você deve definir o valor targetSdkVersion para equivaler com a ultima versão disponível do Android.
Verificar Versão do Sistema Durante Execução
Android fornece um código único para cada versão da plataforma através das
constantes de classe Build. Utilize estes códigos dentro do seu
aplicativo para construir construções que asseguram o código que depende de níveis
altos da API seja executado somente com tais APIs disponíveis no sistema.
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);
}
}
// 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);
}
}
Nota: Quando analisando os recursos
XML, Android ignora os atributos XML que não são suportados pelo dispositivo
atual. Portanto você pode usar sem problemas os atributos XML que serão
suportados apenas pelas versões recentes despreocupado com versões antigas
travarem quando encontrar o código. Por exemplo, se você definir o targetSdkVersion="11", seu aplicativo incluirá a ActionBar por padrão
para o Android 3.0 e superior. Para então adicionar itens do menu na barra de
ação, você precisa definir android:showAsAction="ifRoom" no seu menu de recursos XML. É seguro fazer isto diferentes versões
do arquivo XML, uma vez que versões antigas do Android simplesmente ignoram o
atributo showAsAction (ou seja, você não
precisa separar a versão em res/menu-v11/).
Usando Estilos e Temas da Plataforma
Android provê temas para o usuário experimentar temas que dão ao seu
aplicativo o visual e sensação básica do sistema operacional. Estes temas podem
ser aplicados no seu aplicativo dentro do arquivo manifest. Ao usar tais
definições de estilos e temas, seu aplicativo irá naturalmente utilizar o mais
recente visual de cada nova versão do Android.
Para fazer o visual de sua ação parecido com uma caixa de dialogo:
<activity android:theme="@android:style/Theme.Dialog">
Para fazer sua ação ter um plano de fundo transparente:
<activity android:theme="@android:style/Theme.Translucent">
Para aplicar seu próprio tema modificado defina em /res/values/styles.xml:
<activity android:theme="@style/CustomTheme">
Para aplicar o tema em todo seu aplicativo (todas as ações), adicione o
atributo android:theme ao elemento <application>:
<application android:theme="@style/CustomTheme">
Para mais informações sobre criar e usar temas, leia o guia Estilos e Temas.