Android operating system is a stack of software components which is roughly divided into five sections and four main layers as shown below in the Android Architecture diagram. An Android app is a software application running on the Android platform. Because the Android platform is built for mobile devices, a typical Android app is designed for a smartphone or a tablet PC running on the Android OS. Android software development is the process by which new applications are created for the Android operating system. Applications are usually developed in Java programming language using the Android Software Development Kit (SDK), but other development environments are also available.
Image Courtesy: Wikipedia
- The bottom layer of the android operating system is Linux kernel.
- This provides a level of abstraction between the device hardware and it contains all the essential hardware drivers like camera, keypad, display etc.
- For example, consider the Bluetooth function. All devices have a Bluetooth hardware in it. Therefore the kernel must include a Bluetooth driver to communicate with the Bluetooth hardware.
- Linux Kernel provides the basic system functionality such as process management, memory management, and device management.
- On the top of Linux Kernel, another layer called libraries is present.
- This category encompasses those Java-based libraries that are specific to Android development.
- Libraries are java libraries build specific for android operating system.
- SQLite – SQLite is the database engine used in android for data storage purposes.
- SSL – It is used to provide internet security
- OpenGL – Used to render 2D or 3D graphics content to the screen.
- Media framework – It is used to provides different media codecs which allow the recording and playback of different media formats
- Web Kit – It is the browser engine used to display HTML content.
- It is the third component of the android architecture and placed in the second layer from a bottom.
- This section provides a key component called Dalvik Virtual Machine which is a kind of Java Virtual Machine specially designed and optimized for Android.
- Dalvik Virtual Machine is similar to JVM but the only difference is that it is designed and optimized for Android.
- The Android runtime also provides a set of core libraries which enable Android application developers to write Android applications using standard Java programming language.
- It is a 2nd topmost component in android operating system stack.
- These are the blocks that our applications directly interacts with.
- Activity Manager: Manages the activity lifecycle of applications.
- Content Providers: Manage the data sharing between applications.
- Telephony Manager: Manages all voice calls. We use telephony manager if we want to access voice calls in our application.
- Location Manager: Location management, using GPS or cell tower.
- Resource Manager: Manage the various types of resources we use in our Application.
- Applications created by third party users or developer will be installed on the application layer.
- Several standard applications come pre-installed with every device, such as:
- SMS client app
- Web browser
- Contact manager