從 android build tools v.21 開(kāi)始,加了一套新的工具鏈:Jack。
過(guò)去 Java 代碼要經(jīng)過(guò) javac 編譯成 .class 字節(jié)碼兢卵,然后 jar 打包成 .jar蜈首,再丟給 dex 命令轉(zhuǎn)成 .dex,中間可能還會(huì)用到 ProGuard 做代碼混淆和瘦身肃晚。
Jack 命令集這些功能于一身锚贱,可以一步完成:.java+.jack => jack => .dex 。
現(xiàn)有的 .jar 关串,則可以通過(guò)工具鏈中的 jill 命令轉(zhuǎn)成 .jack 格式的庫(kù)拧廊。
有趣的是,如果想在 Android N 應(yīng)用里啟用 Java8晋修,必須使用 jack 工具鏈吧碾,需要在 AS 里手工修改 build.gradle 啟用:
android {
...
defaultConfig {
...
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}