Android 的新工具链:Jack

从 android build tools v.21 开始,加了一套新的工具链:Jack。

过去 Java 代码要经过 javac 编译成 .class 字节码,然后 jar 打包成 .jar,再丢给 dex 命令转成 .dex,中间可能还会用到 ProGuard 做代码混淆和瘦身。

Jack 命令集这些功能于一身,可以一步完成:.java+.jack => jack => .dex 。

现有的 .jar ,则可以通过工具链中的 jill 命令转成 .jack 格式的库。

有趣的是,如果想在 Android N 应用里启用 Java8,必须使用 jack 工具链,需要在 AS 里手工修改 build.gradle 启用:

android {
  ...
  defaultConfig {
    ...
    jackOptions {
      enabled true
    }
  }
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

你可能感兴趣的:(Android 的新工具链:Jack)