domingo, 29 de setembro de 2013

Suportando Varias Versões de Plataforma

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>
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);
   
}
}

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.