Qual é a diferença entre a versão SDK do min/versão SDK do alvo vs. versão SDK do compile SDK?

Quais são as diferenças entre" min sdk version/target sdk version "e"compile sdk version"?

Eu sei o que significa min e SDK alvo, mas o que significa a versão sdk do compile? No eclipse eu tenho min / max e alvo sdk mas no android studio há estas três configurações.

Author: Mridang Agarwalla, 2014-07-01

4 answers

Para desenvolver a resposta de @anuraagy:

min sdk version é o primeiro lançamento do Android SDK que a sua aplicação pode executar. Geralmente isso é por causa de um problema com as APIs anteriores, falta de funcionalidade, ou algum outro problema comportamental.

versão sdk alvo {[5] } a versão da sua aplicação foi alvo para executar. Idealmente isto é devido a algum tipo de condições de execução ótimas. Se você fosse "fazer o seu aplicativo para a versão 19" é aqui que isso seria especificado. Ele pode ser executado em lançamentos anteriores ou posteriores, mas isso é o que você estava procurando. Isto é principalmente para indicar como atual sua aplicação é para uso no mercado, etc.

compile sdk version a versão do android seu IDE (ou outros meios de compilação, suponho) usa para fazer o seu aplicativo quando você publica um .ficheiro apk. Isto é útil para testar a sua aplicação, uma vez que é uma necessidade comum de compilar o seu aplicativo à medida que o desenvolve. Como esta será a versão para compilar para um APK, será naturalmente a versão de seu lançamento. Da mesma forma, é aconselhável ter esta correspondência com a versão sdk alvo.

Não queria roubar a resposta de outra pessoa, mas espero que isto esclareça a distinção destes três termos.
 173
Author: Matt, 2015-11-23 11:13:57
Boa Pergunta!

Min sdk version é a versão mínima do sistema operacional Android necessária para executar a sua aplicação.

A versão sdk do Alvo é a versão do Android que o seu aplicativo foi criado para executar.

Compile sdk version é a versão do Android que o build tools usa para compilar e compilar a aplicação, a fim de lançar, executar ou depurar.

normalmente a versão sdk de compilação e a a versão sdk do alvo é a mesma.

 63
Author: anuraagy, 2014-12-23 22:19:59

A fórmula é

MinSdkVersion

O MinSdkVersion - é um marcador que define uma versão mínima do Android na qual a aplicação será capaz de instalar. Também é usado por cotão para evitar chamar API que não existe. Também tem impacto no tempo de construção. Então você pode usar sabores de construção para substituir o minSdkVersion ao máximo durante o desenvolvimento. Ele vai ajudar a construir mais rápido usando todas as melhorias que o A equipa Android fornece-nos. Por exemplo, algumas funcionalidades Java 8 estão disponíveis apenas a partir de uma versão específica do minSdkVersion.

O TargetSdkVersion - diz que o sistema Android Liga alterações de comportamento específicas.

Bom exemplo são as permissões perigosas (de 23 API). Se você definir o targetSdkVersion para 22, sua aplicação não pede alguma permissão a um usuário em tempo de execução.

Começando no Android 8.0( nível 26 da API), todas as notificações devem ser atribuídas a um canal ou a ele não aparecerá. Em dispositivos rodando Android 7.1 (nível 25 da API) e inferior, os usuários podem gerenciar notificações em uma base por app apenas (efetivamente cada app tem apenas um canal no Android 7.1 e inferior).

CompileSdkVersion - na verdade é a versão de plataforma SDK e diz ao Gradle qual o Android SDK que usa para compilar. Quando você quer usar novas funcionalidades ou depurar .arquivos java do SDK Android você deve cuidar do compileSdkVersion. Mais um fato é o compileSdkVersion > = biblioteca de suporte version

Você pode ler mais sobre isso Aqui . Também eu recomendo que você dê uma olhada no exemplo de migraçãopara Android 8.0

 16
Author: yoAlex5, 2018-03-18 17:26:53

Veja aqui, é melhor especificar em a versão sdk alvo a última versão lançada da API: Qual é a diferença entre o compileSdkVersion e o targetSdkVersion?

 5
Author: David Papirov, 2017-05-23 12:10:29