It's written in Java and shipped as dex bytecode but Android has full support for compiling that to native code. It can do full ahead-of-time compilation on the device. The default upstream configuration is to start with JIT compilation, with PGO AOT based on that done later on.
The usual optimization level ('speed') doesn't AOT compile one-time initializers or ridiculously long methods (unlike 'everything') and the default PGO mode leaves out any dead code or cold code based on the JIT profiles that were made.
Yeah, I know. It's a very small portion of the overall code though, with the exception of the Chromium WebRTC implementation which is quite large. They need to get a bit better at keeping that up-to-date on a regular basis too.