Gradle 3.1.0 特性总结

对Android插件的要求

  • Gradle 4.4 或者更高
  • Build Tools 27.0.3 或者更高

D8编译器的引入

gradle3.1.0 后 加入了新的Dex编译器 D8.
DEX编译是将.class字节码转换为Android Runtime(或Dalvik,适用于旧版Android)的.dex字节码的过程。
相比于之前的Dex编译器,D8编译速度更快,并输出更小的DEX文件,同时具有相同或更好的应用运行时性能。

您可以通过在项目的gradle.properties文件中来临时禁用D8:

android.enableD8=false

行为变化

  • 该插件默认不再为以下ABI生成APK:mips,mips64和armeabi
    如果您想构建以这些ABI为目标的APK,则必须使用NDK r16b或更低版本,并在build.gradle文件中指定ABI,如下所示:
splits {
    abi {
        include 'armeabi', 'mips', 'mips64'
        ...
    }
}
  • InstantRun,Splits 增加 language配置
    如果您的应用程序包含zh-TW或zh-CN语言环境的资源,Gradle将以zh语言配置拆分打包这些资源。您可以通过使用include属性定义您自己的组来覆盖此行为,如下所示:
splits {
    language {
        enable true
        // Each string defines a group of locales that
        // Gradle should package together.
        include "in,id",
                "iw,he",
                "fil,tl,tgl",
                "yue,zh,zh-TW,zh-CN"
    }
}
  • Android插件的构建缓存现在会清除超过30天的缓存条目
  • 将“auto”传递给resConfig不再会自动挑选字符串资源打包到APK中
    如果您继续使用“auto”,则该插件会打包您的应用程序及其依赖项提供的所有字符串资源。因此,您应该指定您希望插件打包到APK中的每个区域设置。
  • 由于本地模块不能依赖于您的应用的测试APK,因此使用androidTestApi配置(而不是androidTestImplementation)将依赖关系添加到测试过的测试中会导致Gradle发出以下警告:
  WARNING: Configuration 'androidTestApi' is obsolete
  and has been replaced with 'androidTestImplementation'

修复Bug

  • 修复了Android Studio无法正确识别组合构建中的依赖关系的问题
  • 修复了在单个构建中多次加载Android插件时出现项目同步错误的问题 - 例如,当多个子项目在其buildscript类路径中包含Android插件时。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值