The Jack & Jill Compiler is introduced with Android SDK 21.1. Jack and Jill form a new compiler toolchain to transform java code into dalvik bytecode. They introduce a new intermediate representation called Jayce. In an actual build, the jill compiler adds a new preprocessing and caching step. Jill shields jack from java bytecode by converting it to intermediate jayce bytecode. Jack converts the java source code and the intermediate bytecode to dalvik bytecode. It includes ProGuard's functionality, reading ProGuard configurations, shrinking and obfuscating the code, and writing out a ProGuard mapping file.