Plug-in do Android para Gradle, revisão 1.5.0 (novembro de 2015)

Dependências:
  • Gradle 2.2.1 ou mais recente
  • Build Tools 21.1.1 ou versões mais recentes
Observações gerais:
  • O plug-in Data Binding foi integrado ao plug-in do Android para Gradle. Para ativá-lo, adicione o seguinte código a cada arquivo build.gradle de projeto que use o plug-in:
  • android {
        dataBinding {
            enabled = true
        }
    }
            
    android {
        dataBinding {
            enabled = true
        }
    }
            
  • Foi adicionada uma nova API Transform para permitir que plug-ins de terceiros manipulem arquivos .class compilados antes de serem convertidos em arquivos .dex. A API Transform simplifica a injeção de manipulações de classe personalizadas, oferecendo mais flexibilidade em relação ao que você pode manipular. Para inserir uma Transform em um build, crie uma nova classe implementando uma das interfaces Transform e registre-a em android.registerTransform(theTransform) ou android.registerTransform(theTransform, dependencies). Não é necessário conectar as tarefas. Observe o seguinte sobre a API Transform:
    • Uma transformação pode ser aplicada a um ou mais dos seguintes itens: projeto atual, subprojetos e bibliotecas externas.
    • Uma Transform precisa ser registrada globalmente, o que a aplica a todas as variantes.
    • O processamento interno de código, por meio da Java Code Coverage Library (JaCoCo), do ProGuard e do MultiDex, agora usa a API Transform. No entanto, o Java Android Compiler Kit (Jack) não usa essa API: apenas o caminho do código javac/dx usa.
    • O Gradle executa as Transforms nesta ordem: JaCoCo, plug-ins de terceiros, ProGuard. A ordem de execução para plug-ins de terceiros corresponde à ordem em que as Transforms são adicionadas pelos plug-ins. Desenvolvedores de plug-ins de terceiros não podem controlar a ordem de execução das Transforms com uma API.
  • O getter dex da classe ApplicationVariant foi descontinuado. Não é mais possível acessar a tarefa Dex pela API Variant porque agora isso é feito usando uma Transform. Atualmente, não há substituto para controlar o processo de dex.
  • Corrigido suporte incremental com recursos.
  • O suporte ao MultiDex foi aprimorado, tornando-o disponível para projetos de teste, e agora os testes têm automaticamente a dependência com.android.support:multidex-instrumentation.
  • Agora um build do Gradle pode falhar corretamente e informar a causa do erro subjacente quando o build do Gradle invoca tarefas assíncronas e ocorre um erro no processo do worker.
  • Foi adicionado suporte à configuração de uma Interface binária do aplicativo (ABI) específica em variantes que contenham várias ABIs.
  • Adicionado suporte a uma lista separada por vírgulas de números de série do dispositivo na variável de ambiente ANDROID_SERIAL ao instalar ou executar testes.
  • Corrigida uma falha de instalação em dispositivos com o Android 5.0 (nível 20 da API) e versões mais recentes quando o nome do APK contém um espaço.
  • Correção de vários problemas relacionados à saída de erro da Android Asset Packaging Tool (AAPT).
  • Inclusão de compatibilidade com instrumentação incremental de JaCoCo para builds incrementais mais rápidos. O Plug-in do Android para Gradle agora invoca o instrumentador JaCoCo diretamente. Para forçar uma versão mais recente do instrumentador JaCoCo, é preciso adicioná-la como uma dependência de script de build.
  • O suporte a JaCoCo foi corrigido para ignorar arquivos que não são classes.
  • Adicionado suporte ao drawable vetorial para gerar PNGs durante o build e oferecer compatibilidade com versões anteriores. O plug-in do Android para Gradle gera PNGs para cada drawable vetorial encontrado em um diretório de recursos que não especifique uma versão da API ou que especifique um atributo android:minSdkVersion de valor 20 ou menos no elemento <uses-sdk> do manifesto do app. Você pode configurar densidades de PNG usando a propriedade generatedDensities nas seções defaultConfig ou productFlavor de um arquivo build.gradle.
  • Adicionado o compartilhamento do android.jar simulado, que o plug-in gera apenas uma vez e usa para o teste de unidade. Vários módulos, como app e lib, agora o compartilham. Exclua $rootDir/build para gerá-lo novamente.
  • O processamento de recursos Java foi mudado para ocorrer antes das tarefas de ofuscação, e não durante o empacotamento do APK. Essa mudança permite que as tarefas de ofuscação tenham a chance de adaptar os recursos Java após a ofuscação de pacotes.
  • Correção de um problema com o uso do código da interface nativa do Java (JNI, na sigla em inglês) no plug-in da biblioteca experimental.
  • Inclusão da capacidade de definir a versão da plataforma separadamente do atributo android:compileSdkVersion no plug-in da biblioteca experimental.