Android is a software stack for mobile devices that includes an operating system, middleware and key applications (platform). The Android Software Development Kit (SDK) provides the tools and Application Programming Interfaces (APIs) necessary to begin developing applications on the Android platform using the Java programming language. The kernel of Android is Linux.
A mobile software application that runs on Android is an Android app. The apps use the extension of .apk
as the installer file extension. There are several popular examples of mobile apps such as Foursquare, Angry Birds, Fruit Ninja, and so on.
Primarily in an Eclipse environment, we use Java, which is then compiled into Dalvik bytecode (not the ordinary Java bytecode). Android provides Dalvik virtual machine (DVM) inside Android (not Java virtual machine JVM). Dalvik VM does not ally with Java SE and Java ME libraries and is built on Apache Harmony java implementation.
Dalvik VM is a register-based architecture, authored by Dan Bornstein. It is being optimized for low memory requirements and the virtual machine was slimmed down to use less space and less power consumption.
API level is an integer value that uniquely identifies the framework API revision offered by a version of the Android platform.
The Android platform provides a framework API that applications can use to interact with the underlying Android system. The framework API consists of:
The latest distribution statistics until May 1, 2013, are shown in the following screenshot. It indicates that Android 2.3.3 has the largest market share; however, Android 4.1.x is gaining momentum and will have the dominant share. It is important to know that if the app is primarily targeted to an Android version, it will not run on the previous version of Android.
For instance, if you are developing an app for Android 2.2 (API level 8), then the application will not run on Android 2.1 (API level 7) and below. However, the app is compatible for Android 2.2 and later.