<uses-sdk>

O Google Play usa a <uses-sdk> atributos declarados no manifesto do app para filtrá-lo de dispositivos que não atendem aos requisitos de versão da plataforma. Antes de definir esses atributos, é necessário entender os filtros do Google Play.

Sintaxe:
<uses-sdk android:minSdkVersion="integer"
          android:targetSdkVersion="integer"
          android:maxSdkVersion="integer" />
contido em:
<manifest>
descrição:

Permite expressar a compatibilidade de um aplicativo com uma ou mais versões da plataforma Android por meio de um número inteiro de nível de API. O nível de API expresso por um aplicativo é comparado ao Nível da API de um determinado sistema Android, que pode variar entre diferentes dispositivos Android.

Apesar do nome, esse elemento é usado para especificar o nível da API, e não o número da versão do kit de desenvolvimento de software (SDK) ou da plataforma Android. O nível da API é sempre um número inteiro. Não é possível derivar o nível da API o número da versão do Android associada. Por exemplo, não é o mesmo que versão principal ou a soma das versões principal e secundária.

Leia também o documento sobre controle de versões dos seus aplicativos.

atributos:
android:minSdkVersion
Um número inteiro designando o nível mínimo de API necessário para a execução do aplicativo. O sistema Android impede que o usuário instale o aplicativo se o nível da API do sistema for inferior ao valor especificado esse atributo. Sempre declare esse atributo.

Atenção:se você não declarar essa atributo, o sistema assume um valor padrão de "1", que indica que o seu aplicativo é compatível com todas as versões do Android. Se não é, e você não declarou o minSdkVersion adequado, e, quando instalado em um sistema com um nível de API incompatível, falha durante a execução ao tentar acessar as APIs indisponíveis. Para esse motivo, não deixe de declarar o nível adequado da API no minSdkVersion.

android:targetSdkVersion
Um número inteiro que indica o nível da API de destino do aplicativo. Se não for definido, o valor padrão é o mesmo determinado em minSdkVersion.

Esse atributo informa ao sistema que você testou a versão de destino e a o sistema não ativa nenhum comportamento de compatibilidade para manter a compatibilidade com versões futuras do seu app com a versão de destino. O aplicativo ainda pode ser executado em versões anteriores (até minSdkVersion).

À medida que o Android evolui para novas versões, alguns comportamentos, e até mesmo aparências, podem mudar. No entanto, se o nível da API da plataforma for maior que a versão declarada pela targetSdkVersion do app, o sistema poderá ativar comportamentos de compatibilidade para que o app. continue a funcionar da maneira que você espera. Você pode desativar esses comportamentos especificando uma targetSdkVersion correspondente ao nível de API da plataforma em que o aplicativo é executado.

Por exemplo, definir esse valor como "11" ou superior permite que o sistema aplique o tema padrão Holo ao app quando ele for executado no Android 3.0 ou e também desativa a tela o modo de compatibilidade quando executado em telas maiores, porque o suporte para o nível 11 da API implicitamente é compatível com telas maiores.

Há muitos comportamentos de compatibilidade que o sistema pode ativar com base no valor definido para este atributo. Vários desses comportamentos são descritos pelas versões correspondentes da plataforma na referência Build.VERSION_CODES.

Para manter seu aplicativo junto com cada versão do Android, aumente o valor desse atributo para corresponder ao nível mais recente da API e, em seguida, testar exaustivamente o aplicativo no a versão da plataforma correspondente.

Introduzido no: API de nível 4

android:maxSdkVersion
Um número inteiro que define o nível máximo da API em que o aplicativo será projetada para ser executada.

No Android 1.5, 1.6, 2.0 e 2.0.1, o sistema confere o valor desse atributo ao instalar e revalidar um aplicativo após uma atualização do sistema. Em ambos os casos, se a interface de usuário O atributo maxSdkVersion é menor que o nível de API usado por o próprio sistema, ele não permitirá que o aplicativo seja instalado. Se há uma revalidação depois de uma atualização do sistema, o aplicativo é removido do dispositivo.

Para mostrar como esse atributo pode afetar o aplicativo após atualizações do sistema, considere o exemplo a seguir:

Um aplicativo declarando maxSdkVersion="5" no próprio manifesto é publicado no Google Play. Um usuário com um dispositivo que usa o Android A versão 1.6 (nível 4 da API) faz o download e instala o app. Depois de algumas semanas, o usuário recebe uma atualização OTA do sistema para o Android 2.0 (API de nível 5). Após a instalação da atualização, o sistema confere o maxSdkVersion do aplicativo e faz a revalidação.

O aplicativo funciona normalmente. No entanto, algum tempo depois, o dispositivo recebe outra atualização do sistema, desta vez para o Android 2.0.1 (API de nível 6). Após o for atualizado, o sistema não poderá mais revalidar o aplicativo porque nível de API (6) agora é maior do que o máximo aceito pelo aplicativo (5) O sistema evita que o aplicativo fique visível para o usuário, e é removido do dispositivo.

Aviso:não recomendamos a declaração . Primeiro, não há necessidade de definir o atributo como forma de bloquear implantação do aplicativo em novas versões da plataforma Android à medida que são lançados. Por projeto, as novas versões da plataforma são totalmente compatíveis com versões anteriores. Seu aplicativo funciona corretamente em novas versões, desde que use apenas APIs padrão e siga as práticas recomendadas de desenvolvimento. Segundo, em alguns casos, declarar o atributo pode resultar o aplicativo sendo removido das contas após um sistema atualizar para um nível de API mais recente. A maioria dos dispositivos em que o aplicativo seja instalada e receba atualizações over the air (OTA) periódicas do sistema. considerar o efeito dele no aplicativo antes de definir .

Introduzido no: API de nível 4

Algumas versões do Android (além do 2.0.1) não verificar ou aplicar o atributo maxSdkVersion durante ou revalidação. O Google Play continua usando o atributo como filtro, no entanto, ao apresentar aos usuários aplicativos disponíveis para download.
introduzido em:
Nível 1 da API

O que é o nível da API?

O nível da API é um valor inteiro que identifica exclusivamente a API do framework revisão oferecida por uma versão da plataforma Android.

A plataforma Android oferece uma API de framework que pode ser usada pelos aplicativos para interagir com o sistema Android. A API de framework consiste em:

  • Um conjunto principal de pacotes e classes
  • Um conjunto de elementos e atributos XML para declarar um arquivo de manifesto
  • Um conjunto de elementos e atributos XML para declarar e acessar recursos
  • Um conjunto de intents
  • Um conjunto de permissões que podem ser solicitadas pelos aplicativos, bem como a aplicação das permissões incluídas no sistema

Cada versão sucessiva da plataforma Android pode conter atualizações para a API do framework de aplicativos Android que fornece.

As atualizações da API de framework são projetadas de forma a manter a compatibilidade da nova API com as versões anteriores. Ou seja, a maioria das mudanças na API são incrementais e introduzem funcionalidades novas ou atualizadas. Como partes da API forem atualizadas, as partes substituídas são descontinuadas, mas não serão removidas. para que os aplicativos atuais ainda possam usá-las.

Em um número muito pequeno de casos, partes da API são modificadas ou removidas, embora normalmente essas mudanças sejam só é necessária para dar suporte à robustez da API e à segurança do sistema ou de aplicativos. Todas as outras partes da API de revisões anteriores são propagadas sem modificação.

A API de framework que uma plataforma Android oferece é especificada usando uma um identificador de números inteiros chamado nível da API. Cada versão da plataforma Android oferece suporte exatamente um nível de API, embora o suporte seja implícito para todos os níveis de API anteriores (até o nível 1 da API). A versão inicial da plataforma Android forneceu O nível da API 1 e as versões subsequentes incrementaram esse nível.

A tabela a seguir especifica o nível de API compatível com cada versão do Plataforma Android. Para informações sobre os números relativos de dispositivos que estão executando cada versão, consulte o Painel de distribuição.

Versão da plataformaNível da APIVERSION_CODEObservações
Android 15 35 VANILLA_ICE_CREAM Destaques da plataforma
Android 14 34 UPSIDE_DOWN_CAKE Destaques da plataforma
Android 13 33 TIRAMISU Destaques da plataforma
Android 12 32 S_V2 Destaques da plataforma
31 S Destaques da plataforma
Android 11 30 R Destaques da plataforma
Android 10 29 Q Destaques da plataforma
Android 9 28 P Destaques da plataforma
Android 8.1 27 O_MR1 Destaques da plataforma
Android 8.0 26 O Destaques da plataforma
Android 7.1.1
Android 7.1
25 N_MR1 Destaques da plataforma
Android 7.0 24 N Destaques da plataforma
Android 6.0 23 M Destaques da plataforma
Android 5.1 22 LOLLIPOP_MR1 Destaques da plataforma
Android 5.0 21 LOLLIPOP
Android 4.4W 20 KITKAT_WATCH KitKat somente para wearables
Android 4.4 19 KITKAT Destaques da plataforma
Android 4.3 18 JELLY_BEAN_MR2 Destaques da plataforma
Android 4.2, 4.2.2 17 JELLY_BEAN_MR1 Destaques da plataforma
Android 4.1, 4.1.1 16 JELLY_BEAN Destaques da plataforma
Android 4.0.3, 4.0.4 15 ICE_CREAM_SANDWICH_MR1 Destaques da plataforma
Android 4.0, 4.0.1, 4.0.2 14 ICE_CREAM_SANDWICH
Android 3.2 13 HONEYCOMB_MR2
Android 3.1.x 12 HONEYCOMB_MR1 Destaques da plataforma
Android 3.0.x 11 HONEYCOMB Destaques da plataforma
Android 2.3.4
Android 2.3.3
10 GINGERBREAD_MR1 Destaques da plataforma
Android 2.3.2
Android 2.3.1
Android 2.3
9 GINGERBREAD
Android 2.2.x 8 FROYO Destaques da plataforma
Android 2.1.x 7 ECLAIR_MR1 Destaques da plataforma
Android 2.0.1 6 ECLAIR_0_1
Android 2.0 5 ECLAIR
Android 1.6 4 DONUT Destaques da plataforma
Android 1.5 3 CUPCAKE Destaques da plataforma
Android 1.1 2 BASE_1_1
Android 1.0 1 BASE

Usos do nível da API no Android

O identificador de nível de API desempenha um papel fundamental para ajudar a garantir possível para usuários e desenvolvedores de aplicativos:

  • Permite que a plataforma Android descreva a revisão máxima da API do framework que ele suporta.
  • Permite que os aplicativos descrevam a revisão de API do framework que precisam.
  • Permite que o sistema negocie a instalação de aplicativos no sistema dispositivo para que os aplicativos com versões incompatíveis não sejam instalados.

Cada versão da plataforma Android armazena seu identificador de nível de API internamente, em pelo próprio sistema Android.

Os aplicativos podem usar um elemento de manifesto fornecido pelo framework API (<uses-sdk>) para descrever a API mínima e máxima em que podem ser executados, bem como o nível de API preferencial que para os quais eles foram criados. O elemento oferece três atributos principais:

  • android:minSdkVersion: o nível mínimo da API. em que o aplicativo pode ser executado. O valor padrão é "1".
  • android:targetSdkVersion: o nível da API. em que o aplicativo foi projetado para ser executado. Em alguns casos, isso permite que usam elementos de manifesto ou comportamentos definidos no arquivo nível da API, em vez de restringir o uso apenas dos para o nível mínimo da API.
  • android:maxSdkVersion: o nível máximo da API. em que o aplicativo pode ser executado. Importante:leia informações sobre este atributo nesta página antes de usá-lo.

Por exemplo, para especificar o nível mínimo da API do sistema que um aplicativo exige para ser executado, o aplicativo inclui em seu manifesto uma Elemento <uses-sdk> com um android:minSdkVersion . O valor de android:minSdkVersion é o número inteiro correspondente ao nível da API da versão mais antiga da plataforma Android onde o aplicativo pode ser executado.

Quando o usuário tentar instalar um aplicativo ou ao revalidar um após uma atualização do sistema, o sistema Android verifica primeiro o atributos <uses-sdk> no manifesto do aplicativo e compara os valores com o próprio nível interno da API. O sistema permite que a instalação só será iniciada se estas condições forem atendidas:

  • Se um atributo android:minSdkVersion for declarado, o valor dele é menor ou igual ao número inteiro do nível da API do sistema. Se não for declarado, o sistema presume que o aplicativo requer o nível 1 da API.
  • Se um atributo android:maxSdkVersion for declarado, o valor dele é igual ou maior que o número inteiro do nível da API do sistema. Se não for declarado, o sistema vai presumir que o aplicativo não tem um nível máximo de API. Leia o description desse atributo para mais informações sobre como o sistema lida com isso.

Quando declarado em um manifesto do aplicativo, um elemento <uses-sdk> pode ter a seguinte aparência:

<manifest>
  <uses-sdk android:minSdkVersion="5" />
  ...
</manifest>

O principal motivo pelo qual um aplicativo declara um nível de API em android:minSdkVersion é informar ao sistema Android que usa APIs que foram introduzidas no nível de API especificado.

Se o de alguma forma é instalado em uma plataforma com um nível de API mais baixo, ele falha durante a execução quando tenta acessar APIs que não existem. O sistema evita esse resultado não permitindo que o aplicativo instalar se o nível de API mais baixo necessário for maior que o da e a versão da plataforma no dispositivo de destino.

Considerações de desenvolvimento

As seções a seguir oferecem informações relacionadas ao nível da API que você precisa: considerar ao desenvolver seu aplicativo.

Compatibilidade com versões futuras

Normalmente, os aplicativos Android são compatíveis com versões futuras da plataforma Android.

Como quase todas as mudanças na API do framework são cumulativas, um Android aplicativo desenvolvido usando qualquer versão da API, conforme especificado por nível de API, é compatível com versões futuras da plataforma Android e níveis mais altos de API. O aplicativo pode ser executado em todas as versões posteriores da plataforma Android, exceto em casos isolados em que o aplicativo usa uma parte da API que é removida posteriormente por algum motivo.

A compatibilidade com versões futuras é importante porque muitos dispositivos Android recebem atualizações do sistema over the air (OTA). O usuário pode instalar aplicativo e usá-lo com sucesso e, em seguida, receber uma atualização OTA para um novo mais recente da plataforma Android. Depois que a atualização é instalada, é executado em uma nova versão de ambiente de execução do ambiente, mas que ainda tenha a API e os recursos do sistema necessários para o aplicativo.

Alterações abaixo da API, como as da API pode afetar seu aplicativo quando ele for executado na nova de nuvem. Como o aplicativo desenvolvedor, para entender a aparência e o comportamento do aplicativo em cada sistema de nuvem.

Para ajudar você a testar seu aplicativo em várias versões da plataforma Android, o SDK do Android inclui várias plataformas para download. Cada plataforma inclui uma imagem de sistema compatível que pode ser executada em um AVD para e testar seu aplicativo.

Compatibilidade com versões anteriores

Os aplicativos Android não são necessariamente compatíveis com as versões anteriores do a plataforma Android mais antiga que a versão usada para a compilação.

Cada versão nova da plataforma Android pode conter novas APIs de framework, como as que permitem que aplicativos acessem os novos recursos da plataforma ou as que substituem partes de APIs existentes. As novas APIs podem ser acessadas pelos aplicativos quando executados em na nova plataforma e também ao executar em versões posteriores do plataforma, conforme especificado pelo nível da API. Mas, como as versões anteriores a plataforma não incluírem as novas APIs, os aplicativos que usarem as novas APIs não poderão são executados nessas plataformas.

Embora seja pouco provável que faça downgrade de um dispositivo Android para uma versão anterior da plataforma, é importante perceber que existem provavelmente há muitos dispositivos da área que executam versões anteriores do de plataforma. Mesmo entre dispositivos que recebem atualizações OTA, alguns podem demorar a ser atualizados e é possível que não recebam a atualização por um período considerável.

Selecione uma versão de plataforma e um nível de API

Ao desenvolver seu aplicativo, você escolhe a versão da plataforma em que você compila o aplicativo. Em geral, compile seu aplicativo com a menor versão da plataforma com suporte do aplicativo.

Você pode determinar a menor versão da plataforma possível compilando o aplicativo para builds sucessivamente menores. Depois de determinar versão mais antiga, crie um AVD usando a plataforma correspondente versão e nível da API e testar totalmente o aplicativo. Não deixe de declarar um o atributo android:minSdkVersion no manifesto do aplicativo e Defina o valor como o nível da API da versão da plataforma.

Declarar um nível mínimo de API

Se você criar um aplicativo que usa APIs ou recursos de sistema introduzidos no a versão mais recente da plataforma, defina android:minSdkVersion ao nível da API da versão mais recente. uma versão da plataforma. Dessa forma, os usuários só podem instalar se os dispositivos estiverem executando uma versão compatível do Android de plataforma. Por sua vez, isso ajuda a garantir que seu aplicativo funcione corretamente os dispositivos delas.

Se seu aplicativo usa APIs introduzidas na versão mais recente da plataforma, mas não declarar um atributo android:minSdkVersion, ele será executado corretamente em dispositivos com a versão mais recente da plataforma, não em dispositivos com versões anteriores da plataforma. No segundo caso caso, o aplicativo falha em tempo de execução quando tenta usar APIs que não existem nas versões anteriores.

Testar em níveis mais altos da API

Depois de compilar o aplicativo, teste-o no plataforma especificada no arquivo android:minSdkVersion . Para isso, crie um AVD que use a versão da plataforma exigida pelo aplicativo. Além disso, para verificar a compatibilidade com versões futuras, execute e testar o aplicativo em todas as plataformas que usam uma API de nível superior usados por seu aplicativo.

O SDK do Android contém várias versões da plataforma que você pode usar, incluindo a versão mais recente, e fornece uma ferramenta de atualização que pode ser usada para fazer o download de outras versões da plataforma, se necessário.

Para acessar o atualizador, use a ferramenta de linha de comando android, localizada no diretório <sdk>/tools. É possível abrir o atualizador do SDK executando android sdk. Você pode Clique duas vezes no arquivo android.bat (Windows) ou android (OS X/Linux).

Para executar o aplicativo em diferentes versões da plataforma no emulador, crie um AVD para cada versão da plataforma que vai ser testada. Para mais Para mais informações sobre AVDs, consulte Criar e gerenciar dispositivos virtuais. Se Se você está usando um dispositivo físico para testes, verifique se você conhece o nível da API da plataforma Android em que ele executa. Consulte a tabela neste documento para uma lista de versões de plataforma e seus níveis de API.

Filtrar a documentação de referência por nível de API

As páginas de documentação de referência da plataforma Android oferecem uma "Nível da API" na área superior esquerda de cada página. Você pode usar o controle para mostrar a documentação apenas de partes da API que são acessíveis ao seu aplicativo, com base no nível da API que ele especifica em o atributo android:minSdkVersion do arquivo de manifesto.

Para usar a filtragem, selecione a API especificado pelo aplicativo no menu. APIs introduzidas em um futuro O nível da API fica esmaecido e seu conteúdo fica oculto, já que acessíveis ao seu aplicativo.

A filtragem por nível de API na documentação não fornece uma visualização. de tudo o que é novo ou introduzido em cada nível da API. Ele oferece uma maneira para conferir toda a API associada a um determinado nível, excluindo a API introduzidos em níveis posteriores da API.

Para voltar a visualizar a documentação completa, Selecione REL na parte de cima do menu do nível da API. Por padrão, a filtragem no nível da API é desativada para que seja possível visualizar toda a API do framework, independente do nível da API.

A documentação de referência para elementos individuais da API especifica o nível da API em que cada elemento é introduzido. Nível da API para pacotes e classes é especificado como "Adicionado no nível da API" em no canto superior direito da área de conteúdo em cada página da documentação. Nível da API para membros da classe é especificado nos cabeçalhos de descrição detalhada, na margem direita.