Participe do evento ⁠#Android11: apresentação de lançamento da versão Beta no dia 3 de junho.

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

O cache de compilação armazena determinadas saídas geradas pelo plug-in do Android para Gradle ao criar o 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, já que o sistema de compilação pode simplesmente reutilizar os arquivos armazenados em 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 única máquina local.

Projetos que usam o plug-in do Android 2.3.0 e versões mais recentes ativam o cache de compilações por padrão (a não ser que você desative-o explicitamente). 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. Então, 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: caso seu projeto use a versão 2.2.2 ou 2.2.3 do plug-in do Android, ele estará usando uma versão experimental do recurso de cache de compilação. Você precisa atualizar seu projeto para usar a versão mais recente do plug-in do Android.

Para aprender outras maneiras de agilizar seus builds, leia Otimizar a velocidade da sua compilação.

Mudar 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 plug-in do Android usa um local padrão para o cache de compilações para que ele possa compartilhar os arquivos armazenados em cache entre todos os seus projetos que usam o plug-in do Android 2.3.0 ou versões mais recentes (e que não desativam o cache de compilações). Por exemplo, depois que um dos seus projetos criar e armazenar em cache uma dependência pré-dexada, outros projetos que também 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 o 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 de 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 plug-in do Android 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 o cache de compilações, executar a tarefa desse projeto limpará apenas esse 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ções 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 ao 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 mudanças.

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 limpará o diretório do cache automaticamente. Isso permitirá que você mantenha os arquivos armazenados no cache se decidir reativar o cache de compilações.