Quais são as diferenças entre "versão min sdk / versão sdk de destino" e "compilar versão sdk"? Eu sei o que min e target sdk significa, mas o que significa compilar a versão sdk?
No Eclipse, tenho min / max e target sdk, mas no android studio existem essas três configurações.
android
android-studio
Tobias
fonte
fonte
Respostas:
A versão min sdk é a versão mais antiga do SDK do Android em que seu aplicativo pode ser executado. Geralmente, isso ocorre devido a um problema com as APIs anteriores, falta de funcionalidade ou algum outro problema comportamental.
A versão sdk de destino é a versão em que seu aplicativo foi direcionado para execução. Idealmente, isso ocorre devido a algum tipo de condições ideais de execução. Se você "criar seu aplicativo para a versão 19", é onde isso seria especificado. Pode ser executado em versões anteriores ou posteriores, mas é para isso que você estava buscando. Isso é principalmente para indicar a atualidade do seu aplicativo para uso no mercado, etc.
A versão compilar sdk é a versão do Android usada pelo IDE (ou outro meio de compilação) para criar seu aplicativo quando você publica um
.apk
arquivo. Isso é útil para testar seu aplicativo, pois é uma necessidade comum compilar seu aplicativo à medida que você o desenvolve. Como essa será a versão a ser compilada em um APK, ela será naturalmente a versão do seu lançamento. Da mesma forma, é aconselhável que essa correspondência seja a sua versão sdk de destino.fonte
A fórmula é
minSdkVersion - é um marcador que define uma versão mínima do Android na qual o aplicativo poderá instalar. Também é usado pelo Lint para impedir a chamada da API que não existe. Também tem impacto no tempo de construção. Portanto, você pode usar os tipos de build para substituir minSdkVersion ao máximo durante o desenvolvimento. Isso ajudará a acelerar a construção usando todas as melhorias que a equipe do Android fornece para nós. Por exemplo, alguns recursos que o Java 8 estão disponíveis apenas a partir de uma versão específica do minSdkVersion.
targetSdkVersion - diz que o sistema Android ativa mudanças específicas de comportamento.
Por exemplo:
A partir do Android 6.0 (nível 23 da API)
Runtime Permissions
foram introduzidos. Se você definirtargetSdkVersion
22 ou menos, seu aplicativo não solicitará permissão ao usuário em tempo de execução.A partir do Android 8.0 (nível 26 da API), todos
notifications
devem ser atribuídos a um canal ou ele não aparecerá. Em dispositivos com Android 7.1 (API nível 25) e inferior, os usuários podem gerenciar notificações apenas por aplicativo (efetivamente, cada aplicativo possui apenas um canal no Android 7.1 e inferior).A partir do Android 9 (nível 28 da API)
Web-based data directories separated by process
,. SetargetSdkVersion
tiver mais de 28 anos e você criar váriosWebView
processos diferentes, receberájava.lang.RuntimeException
compileSdkVersion - na verdade, é a versão da plataforma SDK e informa a Gradle qual SDK do Android usa para compilar. Quando você deseja usar novos recursos ou
.java
arquivos de depuração do Android SDK, deve cuidar da compileSdkVersion. Mais um exemplo é o uso do AndroidX que obriga a usarcompileSdkVersion
- o nível 28.compileSdkVersion
não está incluído no seu APK : é puramente usado emcompile time
. Alterar seu compileSdkVersion não altera o comportamento do tempo de execução. Pode gerar, por exemplo, novos avisos / erros do compilador. Portanto, é altamente recomendável que você sempre compile com o SDK mais recente. Você obterá todos os benefícios das novas verificações de compilação do código existente, evitará novas APIs obsoletas e estará pronto para usar novas APIs. Mais um fato écompileSdkVersion >= Support Library version
Você pode ler mais sobre isso aqui . Também recomendo que você dê uma olhada no exemplo de migração para o Android 8.0.
fonte
A versão min sdk é a versão mínima do sistema operacional Android necessária para executar seu aplicativo.
A versão sdk de destino é a versão do Android em que seu aplicativo foi criado para execução.
A versão compilar sdk é a versão do Android usada pelas ferramentas de compilação para compilar e criar o aplicativo para liberar, executar ou depurar.
Normalmente, a versão compilada sdk e a versão sdk de destino são as mesmas.
fonte
compileSdkVersion : O compileSdkVersion é a versão da API na qual o aplicativo é compilado. Isso significa que você pode usar os recursos da API do Android incluídos nessa versão da API (bem como em todas as versões anteriores, obviamente). Se você tentar usar os recursos da API 16, mas definir compileSdkVersion como 15, receberá um erro de compilação. Se você definir compileSdkVersion como 16, ainda poderá executar o aplicativo em um dispositivo API 15.
minSdkVersion : a versão min sdk é a versão mínima do sistema operacional Android necessária para executar seu aplicativo.
targetSdkVersion : a versão sdk de destino é a versão em que seu aplicativo está direcionado para execução.
fonte