versão android estúdio após a atualização para a versão 3.xx, Gradle Então o que mudou?
mudança dependente Gradle
3.0 atrás | após 3,0 | explicação | para o trabalho |
---|---|---|---|
compilar | implementação | Dependência de módulos estão disponíveis em tempo de compilação, e apenas disponível para os consumidores no módulo de tempo de execução. Para a construção de implementação em larga multi-projecto em vez de usar api / compilação pode reduzir significativamente o tempo de construção, porque pode reduzir a quantidade do projeto para construir o sistema precisa de ser recompilados. A maioria dos aplicativos e módulos de teste deve usar esta configuração. | Use implementação dependente maneira de projeto ou biblioteca, a biblioteca em tempo de compilação, apenas para o módulo atual visível, não é visível para o outro módulo. |
compilar | api | Dependência de módulos estão disponíveis em tempo de compilação e tempo de execução também disponível para os consumidores e o módulo em tempo de compilação. Esta configuração é semelhante à compilação comportamento (agora obsoleto), em circunstâncias normais, você só deve usá-lo no módulo de biblioteca. módulo de aplicação deve usar a implementação, a menos que você deseja abrir sua API para os módulos de teste individuais. | Use api maneira de contar projeto ou biblioteca que podem ser visíveis para outro módulo em tempo de compilação e tempo de execução. |
forneceu | compile-Only | Dependência de módulo está disponível apenas em tempo de compilação, e seus consumidores não está disponível na compilação ou tempo de execução. Este comportamento é semelhante à configuração fornecida (agora preterido). | Use compileOnly maneira de depender do projeto ou biblioteca que pode ser utilizada de forma eficaz somente em tempo de compilação. |
apk | runtime-Only | Módulo e suas dependências estão disponíveis para os consumidores só em tempo de execução. Esta configuração se comporta como apk (agora obsoleto). | Use runtimeOnly maneira de contar projeto ou biblioteca, que só está disponível em tempo de execução eficaz. |
3,0 maneira frente-dependente | Depois da forma 3,0-dependente | |
---|---|---|
compilar | IMPLEMENTAÇÃO / api | |
forneceu | compileOnly | |
apk | runtimeOnly | |
testCompile | testImplemention | |
debugompile | debugImplemention | |
releaseCompile | releaseImplemention |
instrução de configuração dependente Gradle
- execução (compilação): isto só no interior do módulo, o que depende do conteúdo do módulo não é exposto ao exterior.
- api (compilação): e compilação
ação, como o módulo atual será exposto a outros conteúdos do módulo em que se baseia. Utilize este método se baseia em bibliotecas estarão envolvidos na compilação e empacotamento. - compileOnly (fornecida): bibliotecas dependentes utilizar este modo válido somente no momento de compilação, que não estão envolvidos na embalagem.
- runtimeOnly (APK): bibliotecas dependentes utilizar este modo para participar apenas quando embalado gerado APK não irá participar em tempo de compilação.
- testImplementation (testCompile): Apenas válida quando a compilação de código de teste e a unidade final, testando APK embalados.
- debugImplementation (debugCompile): Só é válido quando compilar modo de depuração e depurar apk pacote final.
- releaseImplementation (releaseCompile): somente para o modo de lançamento compilação embalados e apk lançamento final.
A diferença entre a implementação e api
- implementação: Esta dependência compila comando, o projeto tem projetos dependentes não terá acesso a qualquer programa que depende da utilização do comando compilado, que está escondido dentro do dependente, não no público externo, não tem um transitivo dependente . construção Gradle mais rápido do que api.
- api: equivalente a compilar a instrução, as modifica comando de operação da interface externa, todos módulo dependente e precisa de módulo a ser recompilados, tendo transitivo dependência. construção Gradle mais lento do que a implementação.
build.gradle projeto
- buildscript: Gradle usado para carregar as necessidades de script para usar seus próprios recursos, incluindo o recurso pode declarar dependências de terceiros plug-ins, o endereço do repositório Maven, etc.
- repositórios para downloads de repositório de código fonte
- jcente é um novo armazém central remoto, compatível depósito central Maven, e melhor desempenho
- Google é o Google Code hospedagem repositório
- dependências são geralmente necessários para executar ferramenta Gradle Gradle
- ferramentas Gradle execução classpath necessários para endereço, números de versão geralmente consistentes com a versão de estúdio
- allproject é a configuração de todo o projecto, tais como a diferença entre repositórios e acima buildscript de allproject em que: o projecto anterior allproject inteiro si é dependente da necessidade, o que é necessário para executar roteiro Gradle dependente (Gradle plug-in), respectivamente, e o correspondente repositório maven plug-dependência
- Quando a tarefa clara limpa prazo Gradle, definida aqui para executar tarefa. A tarefa herdada de apagar, apagar o diretório raiz do diretório de construção.