NDK code can only produce shared objects, which are loaded into the Java application processes.
The so called Native Activity is just a Java wrapper with a pre-defined set of methods, like touch events that map into a set of pre-defined export symbols.
The so called native activities run on their own thread and get the Java events, like touch, over an UNIX domain socket.
3D graphics programming is one of the few blessed NDK APIs. Even 2D is not accessible to the NDK in a developer friendly way, except for a bare-bones framebuffer, even though Android UI makes use of SKIA.
Outside 3D graphics, sound and partial POSIX support there isn't that much available in the NDK world without interop to Java APIs (sensors are actually JNI wrappers).
It will be nice to have Go available, but most likely the Android team will keep the same cage for Go code.
This is impossible, unless the device was rooted.
NDK code can only produce shared objects, which are loaded into the Java application processes.
The so called Native Activity is just a Java wrapper with a pre-defined set of methods, like touch events that map into a set of pre-defined export symbols.
The so called native activities run on their own thread and get the Java events, like touch, over an UNIX domain socket.
3D graphics programming is one of the few blessed NDK APIs. Even 2D is not accessible to the NDK in a developer friendly way, except for a bare-bones framebuffer, even though Android UI makes use of SKIA.
Outside 3D graphics, sound and partial POSIX support there isn't that much available in the NDK world without interop to Java APIs (sensors are actually JNI wrappers).
It will be nice to have Go available, but most likely the Android team will keep the same cage for Go code.