According to Wikipedia the full linux 2.6 kernel tree is now around 12 million LOC. So I'd be guessing a good chunk of the 2.8 million lines of C in Android is the kernel. It'd really depend on how many lines the "core" parts of the kernel take up (not that much, I bet) but also how much is left in the Android tree even if it's not really used or even compiled in.
I'm also interested to know what makes up all that XML, though.