The problem with the NDK is not calling the NDK, it's more a problem with exporting native symbols in the binary's symbol table the JNI can call.
Even if you build a binding using cgo with a home-made C library which calls the Android APIs by JNI, will be a time in the code where the Java code or you library must say "hi, run your code, bitch!" to your go code, and I don't think that cgo enable that.
Even if you build a binding using cgo with a home-made C library which calls the Android APIs by JNI, will be a time in the code where the Java code or you library must say "hi, run your code, bitch!" to your go code, and I don't think that cgo enable that.