Android Plugin for Gradle,修订版 1.5.0(2015 年 11 月)

依赖项:
最低版本 默认版本 备注
Gradle 2.2.1 2.2.1 如需了解详情,请参阅更新 Gradle
SDK Build Tools 21.1.1 21.1.1 安装配置 SDK Build Tools。
一般说明:
  • 已将数据绑定插件集成到 Android Plugin for Gradle 中。如需启用该插件,请将以下代码添加到各个使用它的项目级 build.gradle 文件中:
  • android {
        dataBinding {
            enabled = true
        }
    }
            
    android {
        dataBinding {
            enabled = true
        }
    }
            
  • 添加了新的 Transform API,以允许第三方插件在经过编译的 .class 文件转换为 .dex 文件之前对其进行操纵。Transform API 简化了自定义类注入流程,同时为您提供了更灵活的操作空间。如需在构建过程中插入转换,只需创建一个新类来实现其中一个 Transform 接口,并使用 android.registerTransform(theTransform)android.registerTransform(theTransform, dependencies) 注册该接口。无需手动关联任务。关于 Transform API,请注意以下事项:
    • 转换可应用于以下一个或多个对象:当前项目、子项目和外部库。
    • 必须对转换进行全局注册,将其应用于所有变体。
    • 借助 Java 代码覆盖率库 (JaCoCo)、ProGuard 和 MultiDex 实现的内部代码处理现已采用 Transform API。不过,Java Android 编译器套件 (Jack) 不支持此 API:只有 javac/dx 代码路径可以使用。
    • Gradle 会按以下顺序执行转换:JaCoCo、第三方插件、ProGuard。 第三方插件的执行顺序与第三方插件添加转换的顺序一致;第三方插件开发者无法通过 API 控制转换的执行顺序。
  • 废弃了 ApplicationVariant 类中的 dex getter。 您现在无法再通过变体 API 访问 Dex 任务,因为它现在是通过转换来完成的。目前暂无替代方案用于控制 dex 处理流程。
  • 修复了资源文件的增量构建支持问题。
  • 增强了 MultiDex 支持,测试项目现已可使用该功能,且测试会自动包含 com.android.support:multidex-instrumentation 依赖项。
  • 新增了构建失败处理机制:当 Gradle 构建调用异步任务且 worker 进程出现故障时,将正常终止构建并报告根本错误原因。
  • 新增了二进制接口 (ABI) 配置支持,可在包含多个 ABI 的变体中指定特定 ABI。
  • 新增了设备序列号配置支持,在安装或运行测试时,可通过环境变量 ANDROID_SERIAL 传入以逗号分隔的多个设备序列号。
  • 修复了以下问题:如果 APK 名称包含空格,则无法在搭载 Android 5.0(API 级别 20)及更高版本的设备上安装。
  • 修复了与 Android 资源打包工具 (AAPT) 错误输出相关的各种问题。
  • 添加了 JaCoCo 增量插桩支持,以加快增量构建的速度。Android Plugin for Gradle 现在会直接调用 JaCoCo 插桩工具。如需强制调用新版 JaCoCo 插桩工具,您需要将其添加为构建脚本依赖项。
  • 优化了 JaCoCo 支持,使其忽略非类文件。
  • 添加了对矢量可绘制对象的支持,可在构建时生成 PNG 以实现向后兼容性。如果资源目录未指定 API 版本,或在应用清单的 <uses-sdk> 元素中将 android:minSdkVersion 属性指定为 20 或更低,那么 Android Plugin for Gradle 会针对在该资源目录中找到的每个矢量可绘制对象生成 PNG。您可以在 build.gradle 文件的 defaultConfigproductFlavor 部分中使用 generatedDensities 属性设置 PNG 密度。
  • 新增了可共享的模拟 android.jar 文件支持,插件仅生成一次该文件并会将其用于单元测试。现在,applib 等多个模块可共享使用该文件。删除 $rootDir/build 便可重新生成该文件。
  • 调整了 Java 资源的处理时机,将其从 APK 打包阶段提前至混淆任务之前。此项变更使混淆任务能够在软件包名混淆后适配 Java 资源。
  • 修复了在实验性库插件中使用 Java 原生接口 (JNI) 代码的问题。
  • 新增了平台版本独立配置功能,在实验性库插件中可单独设置平台版本,无需与 android:compileSdkVersion 属性保持一致。