Android is an operating system based on the Linux Operating System.Android applications consist of different components and can re-use components of other applications. This leads to the concept of a task in Android; an application can re-use other Android components to archive a task.The Android system supports background processing, provides a rich user interface library, supports 2-D and 3-D graphics using the OpenGL libraries, access to the file system and provides an embedded SQLite database.

Android Development Tools

Android SDK

The Android Software Development Kit (Android SDK) contains the necessary tools to create, compile and package Android application. Most of these tools are command line based. he primary way to develop Android applications is based on the Java programming language.The Android SDK also provides an Android device emulator, so that Android applications can be tested without a real Android phone. You can create Android virtual devices (AVD) via the Android SDK, which run in this emulator.

Android Development Tools

The Android Development Tools (ADT) are based on Eclipse to develop Android applications. ADT is a set of components (plug-ins) which extend the Eclipse IDE with Android development capabilities.Google supports an IDE called the Android Studio for creating Android applications. This IDE is based on the IntelliJ IDE.Both tools contains all required functionalities to create, compile, debug and deploy Android applications from the IDE. They also allow the developer to create and start Android virtual devices for testing.

Dalvik Virtual Machine

The Android system uses a special virtual machine, i.e. the Dalvik Virtual Machine to run Java based applications. Dalvik uses an own bytecode format which is different from Java bytecode.Therefore, you cannot directly run Java class files on Android, they need to get converted in the Dalvik bytecode format.