I'm a bit surprised to see Android move to AOT compilation, together with large claimed performance benefits. As far as I know, aside from ART, all state of the art Java Runtimes are using JIT. In theory, JIT should have the advantage of having live profile data, the ability to speculatively do optimization and back off when they're wrong, etc...
The article list a bunch of benefits, but they don't really seem to stand up to scrutiny. Overhead from repeatedly having to JIT the code? Cache it - also removing the battery life argument. AoT having the advantage of seeing all the code and do global optimizations? It's just the opposite!
I could see some advantage of AoT for first-startup, but that isn't even claimed as an advantage, because the AoT happens at install, not at compilation/packaging time.
It's even stranger as modern Android phones have 4 to even 8 cores. That leaves plenty of horsepower to do the JITing in the background and be even faster.
Now, I can see that ART is faster simply because it's a better, second iteration on Dalvik (which wasn't great). Dalvik was 2-3 times slower than standard JITs. ART seems to make up this difference, but that still leaves the question: why did Google choose to go the AoT route instead of JIT?