Android Overview
## What is Android?

Android is an open-source, Linux-based mobile operating system for devices like smartphones and tablets. Android is developed by the Open Handset Alliance, led by Google and other companies.
Android provides a unified application development approach, meaning developers only need to develop for Android, and their applications can run on various mobile devices running Android.
Google released the first beta version of the Android Software Development Kit (SDK) in 2007, and the first commercial version, Android 1.0, was released in September 2008.
On June 27, 2012, at the Google I/O conference, Google announced the release of Android version 4.1 Jelly Bean. Jelly Bean is an incremental update in terms of functionality and performance, primarily aimed at improving the user interface.
The Android source code is licensed under free and open-source software licenses. Most of the code released by Google follows the Apache License 2.0, while modifications to the Linux kernel follow the GNU General Public License version 2.
* * *
## Advantages of Android Development
* Open source
* Large developer community and strong community support
* Growing market
* International app integration
* Low development cost
* Higher chance of success
* Rich development environment
!(#)
## Features of Android
Android is a powerful operating system competing with Apple's 4GS and supports some great features. Here are some of the features listed:
| Feature | Description |
| --- | --- |
| Beautiful UI | The basic screen of the Android operating system provides a beautiful and intuitive user interface. |
| Connectivity | GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC, and WiMAX. |
| Storage | SQLite, a lightweight relational database, is used for data storage. |
| Media Support | H.263, H.264, MPEG-4 SP, AMR, AMR-WB, AAC, HE-AAC, AAC 5.1, MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, and BMP. |
| Messaging | SMS and MMS. |
| Web Browser | Based on the open-source WebKit layout engine, along with support for HTML5 and CSS3 Chrome's V8 JavaScript engine. |
| Multi-touch | Android natively supports multi-touch, starting from early handheld devices like the HTC Hero. |
| Multi-tasking | Users can switch from one task to another, and various applications can run simultaneously at the same time. |
| Resizable widgets | Widgets are resizable, so users can expand to see more content or shrink to save space. |
| Multi-language | Supports one-way and two-way text. |
| GCM | Google Cloud Messaging (GCM) is a service that allows developers to send short message data to users of Android devices without a proprietary sync solution. |
| Wi-Fi Direct | A technology that enables direct discovery and pairing of applications through high-bandwidth peer-to-peer network connections. |
| Android Beam | A popular NFC-based technology that allows users to instantly share by simply touching two NFC-enabled phones together. |
* * *
## Android Applications
Android applications are generally developed using the Android Software Development Kit with the Java programming language.
Once developed, Android applications can be easily packaged and sold on platforms like Google Play and the Amazon Appstore.
Android is on hundreds of millions of mobile devices in over 190 countries around the world. This is the largest installation base of any mobile platform and is growing rapidly. Over 10 million new Android devices are activated worldwide every day.
This tutorial is designed to teach you how to develop and package Android applications. We will start with setting up the Android application programming environment and then delve into various aspects of Android application development.
## Categories of Android Applications
There are many Android applications on the market. The main categories are:

## History of Android
Android's code names now range from A to L, namely Aestro, Blender, Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jelly Bean, KitKat, and Lollipop. Let's look at the history of Android in order.
* Cupcake
* Donut
* Eclair
* Froyo
* Gingerbread
* Honeycomb
* Ice Cream Sandwich
* Jelly Bean
* KitKat
* Lollipop
!(#)
* * *
## What is API Level?
API level is an integer used to uniquely identify the API framework version provided by a specific version of the Android platform.
| Platform Version | API Level | VERSION_CODE | |
| --- | --- | --- | --- |
| Android 5.1 | 22 | LOLLIPOP_MR1 | |
| Android 5.0 | 21 | LOLLIPOP | |
| Android 4.4W | 20 | KITKAT_WATCH | KitKat for Wearables Only |
| Android 4.4 | 19 | KITKAT | |
| Android 4.3 | 18 | JELLY_BEAN_MR2 | |
| Android 4.2, 4.2.2 | 17 | JELLY_BEAN_MR1 | |
| Android 4.1, 4.1.1 | 16 | JELLY_BEAN | |
| Android 4.0.3, 4.0.4 | 15 | ICE_CREAM_SANDWICH_MR1 | |
| Android 4.0, 4.0.1, 4.0.2 | 14 | ICE_CREAM_SANDWICH | |
| Android 3.2 | 13 | HONEYCOMB_MR2 | |
| Android 3.1.x | 12 | HONEYCOMB_MR1 | |
| Android 3.0.x | 11 | HONEYCOMB | |
| Android 2.3.4 Android 2.3.3 | 10 | GINGERBREAD_MR1 | |
| Android 2.3.2 Android 2.3.1 Android 2.3 | 9 | GINGERBREAD | |
| Android 2.2.x | 8 | FROYO |
| Android 2.1.x | 7 | ECLAIR_MR1 | |
| Android 2.0.1 | 6 | ECLAIR_0_1 | |
| Android 2.0 | 5 | ECLAIR | |
| Android 1.6 | 4 | DONUT | |
| Android 1.5 | 3 | CUPCAKE | |
| Android 1.1 | 2 | BASE_1_1 | |
| Android 1.0 | 1 | BASE | |
YouTip