lightbulb_outline Help shape the future of the Google Play Console, Android Studio, and Firebase. Start survey

Acelerar compilações limpas com o cache de compilações

O cache de compilações armazena certas saídas geradas pelo Android Plugin for Gradle ao compilar seu projeto (como AARs não empacotados e dependências remotas pré-dexadas). Suas compilações limpas são muito mais rápidas quando você usa o cache, pois o sistema de compilação pode simplesmente usar os arquivos no cache durante as compilações subsequentes em vez de recriá-los. O cache de compilações também funciona em servidores de integração contínua e ao executar vários processos de compilação em uma só máquina local.

Projetos que usam o Android Plugin 2.3.0 e versões posteriores ativam o cache de compilações por padrão (a não ser que você explicitamente desative o cache de compilações). Entretanto, o plug-in desativará o armazenamento em cache de dependências remotas pré-dexadas se você definir uma das seguintes propriedades de compilação para uma opção diferente da mostrada abaixo. (Essas são as configurações padrão de cada propriedade, portanto, se você não as declarar, o armazenamento em cache de dependências remotas pré-dexadas permanecerá ativado.)

android {
  defaultConfig {
    // If you do enable multidex, you must also set
    // minSdkVersion to 21 or higher.
    multiDexEnabled false
  }
  buildTypes {
    <build-type> {
      minifyEnabled false
    }
  }
  dexOptions {
    preDexLibraries true
  }
  ...
}
...

Observação: se seu projeto usar a versão 2.2.2 ou 2.2.3 do Android Plugin, ele estará usando uma versão experimental do recurso de cache de compilações. Você deve atualizar seu projeto para usar a versão mais recente do Android Plugin.

Se você quiser aprender sobre outras maneiras de agilizar suas compilações, leia Otimizar a velocidade da sua compilação.

Alterar o local do cache de compilações

Por padrão, o Android Plugin salva seu cache em <user-home>/.android/build-cache/. Se você configurar uma das seguintes variáveis de caminho (listadas em prioridade decrescente), o Android Studio usará <path-variable>/.android/build-cache/:

  • ANDROID_SDK_HOME
  • user.home
  • HOME

O Android Plugin usa um local padrão para o cache de compilações para que eles possam salvar os arquivos armazenados em cache entre todos os seus projetos que usam o Android Plugin 2.3.0 ou uma versão superior (e não desativam o cache de compilações). Por exemplo, depois que um de seus projetos compilar e armazenar em cache uma dependência pré-dexada, outros projetos que usem essa dependência poderão evitar uma nova pré-dexação copiando-a do cache de compilações compartilhado.

Se preferir que um projeto crie seu próprio cache (e não compartilhe esse cache com outros projetos), você pode especificar um local exclusivo no arquivo gradle.properties do projeto da seguinte maneira:

// You can specify either an absolute path or a path relative
// to the gradle.properties file.
android.buildCacheDir=<path-to-directory>

Quando terminar de editar o arquivo, clique em Sync Project para criar o novo diretório do cache de compilações.

Observação: evite especificar um diretório para seu cache de compilações que está dentro do diretório <project-root>/build/ ou <project-root>/<module-root>/build/ porque o Gradle exclui esses diretórios sempre que executa a tarefa clean.

Se quiser compartilhar o cache apenas com outros projetos específicos, especifique o mesmo diretório de cache de compilações no arquivo gradle.properties desses projetos.

Limpar o cache de compilações

Semelhante à tarefa clean do Android Plugin que limpa os diretórios build/ do projeto, você pode executar a tarefa cleanBuildCache para limpar o cache de compilações do seu projeto. Se um projeto especificar um diretório não padrão para seu cache de compilações, executar a tarefa desse projeto limpa somente o cache (e não o cache compartilhado no local padrão). Para executar a tarefa, selecione View > Tool Windows > Terminal na barra de menus e use um dos seguintes comandos:

  • No Windows:
    gradlew cleanBuildCache
  • No Mac ou Linux:
    ./gradlew cleanBuildCache

Observação: a tarefa cleanBuildCache não estará disponível se você desativar o cache de compilações.

Desativar o cache de compilações

Como o cache de compilação agiliza suas compilações limpas, não é recomendável que esse recurso seja desativado. Se ainda quiser desativar o cache de compilações para seu projeto, adicione o seguinte em seu arquivo gradle.properties:

// To re-enable the build cache, either delete the following
// line or set the property to 'true'.
android.enableBuildCache=false

Quando terminar de editar o arquivo, clique em Sync Project para aplicar suas alterações.

Observação: após desativar o cache de compilações, o Android Plugin ignorará a propriedade android.buildCacheDir e a tarefa cleanBuildCache não estará mais disponível. Além disso, desativar o cache de compilações não limpa o diretório do cache automaticamente. Isso permite que você mantenha os arquivos armazenados no cache se decidir reativar o cache de compilações.