What is Android ?

Android is a software package and linux based operating system for mobile devices such as tablet computers and smartphones.

It is developed by Google and later the OHA (Open Handset Alliance). Java language is mainly used to write the android code even though other languages can be used.

The goal of android project is to create a successful real-world product that improves the mobile experience for end users.

There are many code names of android such as Lollipop, Kit kat, Jelly Bean, Ice cream Sandwich, Froyo, Ecliar, Donut etc which is covered in next page.

Features of Android

After learning what is android, let’s see the features of android. The important features of android are given below:

1) It is open-source.

2) Anyone can customize the Android Platform.

3) There are a lot of mobile applications that can be chosen by the consumer.

4) It provides many interesting features like weather details, opening screen, live RSS (Really Simple Syndication) feeds etc.

It provides support for messaging services(SMS and MMS), web browser, storage (SQLite), connectivity (GSM, CDMA, Blue Tooth, Wi-Fi etc.), media, handset layout etc.

Categories of Android applications

There are many android applications in the market. The top categories are:

  • Entertainment
  • Tools
  • Communication
  • Productivity
  • Personalization
  • Music and Audio
  • Social
  • Media and Video
  • Travel and Local etc.

History of Android

The history and versions of android are interesting to know. The code names of android ranges from A to J currently, such as AestroBlenderCupcakeDonutEclairFroyoGingerbreadHoneycombIce Cream SandwitchJelly BeanKitKat and Lollipop. Let’s understand the android history in a sequence.

1) Initially, Andy Rubin founded Android Incorporation in Palo Alto, California, United States in October, 2003.

2) In 17th August 2005, Google acquired android Incorporation. Since then, it is in the subsidiary of Google Incorporation.

3) The key employees of Android Incorporation are Andy RubinRich MinerChris White and Nick Sears.

4) Originally intended for camera but shifted to smart phones later because of low market for camera only.

5) Android is the nick name of Andy Rubin given by coworkers because of his love to robots.

6) In 2007, Google announces the development of android OS.

7) In 2008, HTC launched the first android mobile.

Android Versions, Codename and API

Let’s see the android versions, codenames and API Level provided by Google.

VersionCode nameAPI Level
2.3Gingerbread9 and 10
3.1 and 3.3Honeycomb12 and 13
4.0Ice Cream Sandwitch15
4.1, 4.2 and 4.3Jelly Bean16, 17 and 18

Android Architecture

android architecture or Android software stack is categorized into five parts:

  1. linux kernel
  2. native libraries (middleware),
  3. Android Runtime
  4. Application Framework
  5. Applications

Let’s see the android architecture first.

android software stack, architecture

1) Linux kernel

It is the heart of android architecture that exists at the root of android architecture. Linux kernel is responsible for device drivers, power management, memory management, device management and resource access.

2) Native Libraries

On the top of linux kernel, their are Native libraries such as WebKit, OpenGL, FreeType, SQLite, Media, C runtime library (libc) etc.

The WebKit library is responsible for browser support, SQLite is for database, FreeType for font support, Media for playing and recording audio and video formats.

3) Android Runtime

In android runtime, there are core libraries and DVM (Dalvik Virtual Machine) which is responsible to run android application. DVM is like JVM but it is optimized for mobile devices. It consumes less memory and provides fast performance.

4) Android Framework

On the top of Native libraries and android runtime, there is android framework. Android framework includes Android API’s such as UI (User Interface), telephony, resources, locations, Content Providers (data) and package managers. It provides a lot of classes and interfaces for android application development.

5) Applications

On the top of android framework, there are applications. All applications such as home, contact, settings, games, browsers are using android framework that uses android runtime and libraries. Android runtime and native libraries are using linux kernal.

Android Core Building Blocks

android components

An android component is simply a piece of code that has a well defined life cycle e.g. Activity, Receiver, Service etc.

The core building blocks or fundamental components of android are activities, views, intents, services, content providers, fragments and AndroidManifest.xml.


An activity is a class that represents a single screen. It is like a Frame in AWT.


A view is the UI element such as button, label, text field etc. Anything that you see is a view.


Intent is used to invoke components. It is mainly used to:

  • Start the service
  • Launch an activity
  • Display a web page
  • Display a list of contacts
  • Broadcast a message
  • Dial a phone call etc.

For example, you may write the following code to view the webpage.

  1. Intent intent=new Intent(Intent.ACTION_VIEW);  
  2. intent.setData(Uri.parse(“http://www.javatpoint.com”));  
  3. startActivity(intent);  


Service is a background process that can run for a long time.

There are two types of services local and remote. Local service is accessed from within the application whereas remote service is accessed remotely from other applications running on the same device.

Content Provider

Content Providers are used to share data between the applications.


Fragments are like parts of activity. An activity can display one or more fragments on the screen at the same time.


It contains informations about activities, content providers, permissions etc. It is like the web.xml file in Java EE.

Android Virtual Device (AVD)

It is used to test the android application without the need for mobile or tablet etc. It can be created in different configurations to emulate different types of real devices.

Android Emulator

The Android emulator is an Android Virtual Device (AVD), which represents a specific Android device. We can use the Android emulator as a target device to execute and test our Android application on our PC. The Android emulator provides almost all the functionality of a real device. We can get the incoming phone calls and text messages. It also gives the location of the device and simulates different network speeds. Android emulator simulates rotation and other hardware sensors. It accesses the Google Play store, and much more

Android Emulator

Testing Android applications on emulator are sometimes faster and easier than doing on a real device. For example, we can transfer data faster to the emulator than to a real device connected through USB.

The Android emulator comes with predefined configurations for several Android phones, Wear OS, tablet, Android TV devices.

Requirement and recommendations

The Android emulator takes additional requirements beyond the basic system requirement for Android Studio. These requirements are given below:

  • SDK Tools 26.1.1 or higher
  • 64-bit processor
  • Windows: CPU with UG (unrestricted guest) support
  • HAXM 6.2.1 or later (recommended HAXM 7.2.0 or later)

Install the emulator

The Android emulator is installed while installing the Android Studio. However some components of emulator may or may not be installed while installing Android Studio. To install the emulator component, select the Android Emulator component in the SDK Tools tab of the SDK Manager.

Run an Android app on the Emulator

We can run an Android app form the Android Studio project, or we can run an app which is installed on the Android Emulator as we run any app on a device.

To start the Android Emulator and run an application in our project:

1. In Android Studio, we need to create an Android Virtual Device (AVD) that the emulator can use to install and run your app. To create a new AVD:-

1.1 Open the AVD Manager by clicking Tools > AVD Manager.

Android Emulator

1.2 Click on Create Virtual Device, at the bottom of the AVD Manager dialog. Then Select Hardware page appears.

Android Emulator

1.3 Select a hardware profile and then click Next. If we don?t see the hardware profile we want, then we can create or import a hardware profile. The System Image page appears.

Android Emulator

1.4 Select the system image for the particular API level and click Next. This leads to open a Verify Configuration page.

Android Emulator

1.5 Change AVD properties if needed, and then click Finish.

2. In the toolbar, choose the AVD, which we want to run our app from the target device from the drop-down menu.

Android Emulator

3. Click Run.

Launch the Emulator without first running an app

To start the emulator:

  1. Open the AVD Manager.
  2. Double-click an AVD, or click Run

While the emulator is running, we can run the Android Studio project and select the emulator as the target device. We can also drag an APKs file to install on an emulator, and then run them.

Start the emulator from the command line

The Android SDK includes the Android device emulator. Android emulator lets you develop and test out the application without using a physical device.

Starting the emulator

Using the emulator command, we will start an emulator. It is an alternative to run our project or start through the AVD Manager.

Here is the basic command-line syntax for starting a virtual device:

  1. $ emulator -avd avd_name [ {-option [value]} … ]  


  1. $ emulator @avd_name [ {-option [value]} … ]  

For example, if we execute the emulator from Android Studio on a Mac, the default command line will be similar as follows:

  1. $ /Users/user_name/Library/Android/sdk/emulator/emulator -avd Nexus_5X_API_23 -netdelay none -netspeed full  

To display the list of AVD names, enter the following command:

  1. $ emulator -list-avds  

Run and stop an emulator, and clear data

From the Virtual Device page, we can perform the following operation on emulator:

Android Emulator
  • To run an Android emulator that uses an AVD, double-click the AVD, or click Launch
  • To stop the running emulator, right-click and select Stop, or click Menu ▼ and select Stop.
  • If we want to clear the data from an emulator and return it to the initial state when it was first defined, then right-click an AVD and select Wipe Data. Or click menu ▼ and select Wipe Data.

About Author /

Hi everyone. This is Vishal Yadav, & I'm an Android developer at Techwarezen pvt. ltd. and here I'm sharing my experience and knowledge with you which I have learnt. Hope It may help you improving yourself. Thank you! *Note - Please specify if I uploaded any wrong content.*

Leave a Comment

Your email address will not be published.

Start typing and press Enter to search