Can anyone elaborate on how JIT is new to 2.2 and how that compares to how <=2.1 handles it? I haven't touched Java in ages, but I thought JIT was a fundamental part of how Java works, so I'm a bit confused.
Android does not have a JVM. While Android applications are written in Java, and initially compiled to Java bytecode, that bytecode is then translated into Davlik bytecode, and saved to a compact .dex executable, and run in the Davlik virtual machine. The Davlik virtual machine is quite different from the JVM. It is optimized for small devices. It is register-based rather than stack-based. It does not (currently) include a JIT compiler.
Yup, seems like a really clever way to give developers a familiar language with a huge library without having to make a deal with Sun (err Oracle) for a JVM license
"I thought JIT was a fundamental part of how Java works, so I'm a bit confused."
Suns JDK has had JIT since 1.2 (J2SE in marketspeak), but it is not a prerequisite for Java. It just speeds things up (after a short pause for compile to native).