This app was mentioned in 3 comments, with an average of 4.33 upvotes
Its possible to write the business logic of a mobile app in Go and then ship it on with only the UI written with native APIs. An example of this is Ivy - App Store and Play Store. Its a little cumbersome to pull off right now, but I think it will get easier with Go 1.6 and beyond.
You can find a bunch of cool Go projects at this page - awesome-go. My favourites are
Have you seen this?!
https://play.google.com/store/apps/details?id=org.golang.ivy
It depends.
Android runs a version of the Java virtual machine called "Dalvik". Anything you could ever want to do for most applications is accessible through Dalvik. (this ~~is actually soon to change~~ has changed, but that's beside the point)
That said, some apps, particularly things like high-performance games or hard core data crunching apps, benefit immensely from running on what amounts to bare metal. So, you can use the NDK to program in C/C++, but Google specifically states on the NDK's page that you shouldn't do this just because you are more familiar with C/C++.
Android is running a very strange combination of Linux and their own custom OS software. This is not GNU/Linux. You can mess some serious shit up if you don't have an intimate understanding of Android itself, not just C++.
Now, ~~once the Android Runtime kicks off, it'll be it is a lot easier to move away from Java~~ ART has been released as of 5.0. Oops. It's been a while since I did any Android development. I guess I need to get me a 5.0 phone. Coding in Java is still the norm, but it runs a lot faster.
That said, I would recommend taking a look at Go (Google's own programming language). It seems to me that they might be moving in the direction of directly supporting Go on Android. They recently released the first Go-only app on the Play store: Ivy!