I just did some further talking with Liam, and it appears that the NDK really just produces an ARM binary which ends up getting linked into the Dalvik VM files (it isn't platform independant as I thought) which means that using LLVM to produce an ARM ASM output is a fine choice. By the sounds of it the NDK is designed to be platform dependant (not independent) so it appears that if any Android system does come out in the future that doesn't use ARM, you would have the same issue with NDK

There still however leaves the problem with what to do with Java, because a proper Android app (not a linux app compiled for ARM) needs to link with Java to interface with Android

On Tue, Aug 10, 2010 at 8:21 PM, Karel Gardas <karel.gardas@centrum.cz> wrote:
On 08/08/10 03:08, Mathew de Detrich wrote:
> Well the other issue is of course that Android being available on a wide
> variety of phones, not all of which run ARM (the phone I am about to get for
> example has a custom built CPU), although I guess one could use a "generic"
> ASM branch for "mobile" devices (if one exists). btw the phone I am about to
> receive is a Samsung Galaxy-S, which has a hummingbird chip (no idea what
> Assembler Instruction set it uses, I believe its a closed chip)

This should be S5PC110 if I google correctly which is "just" yet another
ARM Cortex A8:
http://www.samsung.com/global/business/semiconductor/newsView.do?news_id=1043

Karel