Android is an operating system based on the Linux kernel. The Android system supports background processing, provides a rich user interface library, supports 2-D and 3-D graphics, File System Access and inbuilt SQLite database.
Android system also contains Application Framework to develop Android Apps. Its development framework is based on Java Programming Language.
Android is primiraly developed for touchscreen devices like smartphone and tablate computers. Its smart features, apps availability, low cast and open source behaviour makes it so popular.
Nowadays Android is the most popular mobile technology present in Market with largest market share. Android has lot of free apps and paid apps for general and advanced users. Google Play is the official store to download apps.
A Java developer having good knowledge in Core Java/Java SE can easily develop Android applications/Apps.The most recent version of Android is KitKat (Android4.4). The project responsible for developing the Android system is called the Android Open Source Project (AOSP) and is primarily lead by Google.
Android Platform Architecture:
Android Platform is categorized in four major layers:
1. Applications: AOSP Conains various inbuilt applications like Camera, Contact, Music, Gallary, Phone, Browser even more. It is used by developer during apps development.
2. Application Framework: An API which allows high-level interactions with the Android system from Android applications. It is also used by developers. Its different options are described in below diagram.
3. Libraries and Runtime: This layer contains internal inbuilt libraries to access different functions related to graphics, data storage etc. It also contains Delvik runtime libraries including Core Java(Java SE) libraries required to run android app.
4. Linux Kernel: Communication layer for the underlying hardware. Kernal is responsible for processing system calls in central processing unit(CPU). It is managing system calls and system resources. Most of the driver applications are involved to interact with hardware system.