Going deeper into the code
When we make developments in a particular technology, we generally program in a high-level language (such as C, C++, or Java) and later compile our code and resources into a file that will be executed in an independent platform. The process of compiling varies between technologies (Java has a different process than C++, since Java will run in a JVM). With more or less difficulty, code that has already been compiled can be "reversed" and accessed from the compiled code, which was generally unreadable, to something more user-friendly.
The following diagram shows how we develop applications in Android:
Here is the explanation for the above:
Initially, we develop our application making use of the Android SDK and external libraries. Eventually, we also use NDK, which follows a different process of development and compiling.
When our application is ready and we want to compile it, it will be compiled to be executed in the Android virtual machine. This will be compiled in...