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

依赖项:
  • Gradle 2.2.1 或更高版本。
  • Build Tools 21.1.1 或更高版本。
一般说明:
  • 已将数据绑定插件集成到 Android Plugin for Gradle 中。如需启用该插件,请将以下代码添加到各个使用它的项目级 build.gradle 文件中:
  • android {
        dataBinding {
            enabled = true
        }
    }
            
    android {
        dataBinding {
            enabled = true
        }
    }
            
  • 添加了新的 Transform API,以允许第三方插件在经过编译的 .class 文件转换为 .dex 文件之前对其进行操纵。Transform API 可简化注入自定义类操纵的过程,同时为您可以操纵的内容提供了更大的灵活性。如需将转换插入到 build 中,请创建一个新类来实现其中一个 Transform 接口,并使用 android.registerTransform(theTransform)android.registerTransform(theTransform, dependencies) 注册该接口。您无需将任务连接在一起。另外,请注意以下关于 Transform API 的信息:
    • 转换可应用于以下一个或多个对象:当前项目、子项目和外部库。
    • 必须对转换进行全局注册,将其应用于所有变体。
    • 现在,内部代码处理(通过 Java 代码覆盖库 (JaCoCo)、ProGuard 和 MultiDex)会使用 Transform API。不过,Java Android 编译器套件 (Jack) 不使用此 API:只有 javac/dx 代码路径才使用此 API。
    • Gradle 会按以下顺序执行转换:JaCoCo、第三方插件、ProGuard。 第三方插件的执行顺序与第三方插件添加转换的顺序一致;第三方插件开发者无法通过 API 控制转换的执行顺序。
  • 废弃了 ApplicationVariant 类中的 dex getter。 您现在无法再通过 Variant API 访问 Dex 任务,因为它现在是通过转换来完成的。目前没有用于控制 dex 进程的替代进程。
  • 修复了对资产的增量支持。
  • 通过让 MultiDex 可用于测试项目,改进了对 MultiDex 的支持。现在,测试会自动拥有 com.android.support:multidex-instrumentation 依赖项。
  • 添加了以下功能:在 Gradle build 调用异步任务且工作器进程中出现失败情况时,让 Gradle build 正常失败,并报告根本的错误原因。
  • 添加了对在包含多个 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 属性来设置平台版本的功能。