I think there is little bit confusion about what exactly native code is among you guys.
Let me clear this thing just a bit.
Simply native means using frameworks, libraries of the operating system, regardless any language or tools. One thing just to make sure in native code, user experience is 100% aligned with default OS device experience.
Native code means code that is translated into the native assembly code for the CPU. CPU’s don’t understand Java, C#, C++ etc. They only understand their own assembly language. Therefore all code must eventually be either translated (compiled) to assembly language, or be interpreted by an assembly language program.
For instance, C++ is compiled into native assembly code. Java is compiled into byte code, and the byte code is then interpreted by a Java Virtual Machine (JVM). The JVM is also compiled into assembly language. The JVM loads the Java byte code, and interprets it, and compiles parts of it into assembly language too.
Thanks my friend Jakob Jenkov for this explanation.