Good knowledge of Android foundation requires thorough understanding of the Android architecture. Android can be implemented in the form of a software stack which consists of Linux kernel, runtime environment and its libraries, an application framework and a group of applications. Applications are mostly written in Java and are run within instances of the Dalvik virtual machine. Main goals of the Android architecture are high performance and efficiency.
About the Android software stack
Android has been created in the form of a software stack that is made up of run-time environment, middleware, operating system and several libraries. Each layer of the stack and elements within the layer are integrated tightly and help to provide execution environment for mobile devices. At the bottom of this layer is the Linux kernel.
About the Linux kernel
Being at the bottom of the stack, the Linux kernel provides abstraction between device hardware and upper layers. The kernel is able to provide low level core system services like memory and power management and multitasking. It also provides a network stack and device drivers for hardware like Wi-Fi, audio and display.
The Linux kernel was originally meant to be used in traditional computers as desktops and servers. It is the most widespread software deployed in critical enterprise server environments. Therefore it is not a surprise that Linux remains at the heart of the Android software stack.
The Dalvik Virtual Machine
Each application running on an Android device runs within its own instance of the Dalvik Virtual Machine, as mentioned earlier. There are many advantages of running an application on a virtual machine. Applications become sandboxed, which means that they cannot interfere with the main Operating System or with other applications. Also this level of enforcement makes an application neutral, which means that they cannot be linked to specific hardware.
Android Runtime with Core Libraries
There are a number of libraries being used by Android. They fall into 3 main categories- Dalvik VM specific libraries, Java Interoperability libraries and Android libraries. A summary of the main Android libraries can be obtained easily from the Internet.
Android leads mobile devices in the world when it comes to development. 85% of the smartphone market uses Android. Therefore a developer in this field will always have good scope. If interested, go through Android development courses.