Skip to content

Android - Overview

Android is an open-source, Linux-based operating system primarily designed for mobile devices such as smartphones and tablets. It was initially developed by Android Inc., which Google acquired in 2005, and is now led by Google and the Open Handset Alliance (OHA). Today, Android also powers a wide range of other devices, including smart TVs (Android TV), wearables (Wear OS), and in-car infotainment systems (Android Auto).

Android provides a rich application framework that allows developers to create innovative apps and games for a global audience. It offers a unified approach to application development, meaning developers can write applications that run on a diverse set of Android-powered devices.

The Android platform has evolved significantly since its first commercial release, Android 1.0, in September 2008. It continues to receive regular updates that introduce new features, performance improvements, and security enhancements. The source code for Android (Android Open Source Project - AOSP) is available under open-source licenses, primarily Apache License 2.0.

Android has become the most widely used mobile operating system globally due to several key factors:

  • Openness and Customization: Being open source allows manufacturers to customize Android for their devices and developers to have deep access to the platform’s capabilities.
  • Large User Base: Android powers billions of devices worldwide, offering a massive potential audience for applications.
  • Rich Development Environment: Google provides powerful tools like Android Studio (the official IDE) and the Android SDK, along with comprehensive documentation and community support.
  • Google Play Store: A vast marketplace for distributing and monetizing applications, reaching users in almost every country.
  • Integration with Google Services: Seamless integration with popular Google services like Gmail, Maps, Drive, and Firebase.
  • Hardware Diversity: Android runs on a wide range of hardware from numerous manufacturers, offering choices at various price points and form factors.

Android is a powerful operating system packed with features that enable rich application experiences. Key features include:

No.Feature & Description
1Modern UI & Material Design
Android offers an intuitive user interface framework. Material Design (and its latest iteration, Material You) provides guidelines and components for creating visually appealing and consistent UIs. Jetpack Compose allows for declarative UI development in Kotlin.
2Connectivity
Supports a wide array of connectivity options: GSM/EDGE, CDMA, EV-DO, UMTS/HSPA+, LTE, 5G, Wi-Fi (including Wi-Fi 6/6E), Bluetooth (including BLE), NFC, and Wi-Fi Direct.
3Storage
Uses SQLite for structured data storage. Jetpack Room Persistence Library is the recommended abstraction over SQLite. Also supports file system storage, SharedPreferences for key-value pairs, and cloud storage integration.
4Media Support
Extensive support for various audio, video, and image formats (e.g., H.264, HEVC, AV1, AAC, MP3, Ogg Vorbis, JPEG, PNG, WebP, AVIF, HEIF). APIs for media playback, recording, and streaming.
5Messaging
Supports SMS, MMS, and Rich Communication Services (RCS) through various applications.
6Web Browser (WebView)
Applications can embed web content using the WebView component, which is based on Chromium’s rendering engine and supports modern web standards like HTML5, CSS3, and JavaScript.
7Multi-touch & Gestures
Native support for multi-touch screens and a rich gesture system for intuitive user interaction.
8Multi-tasking
Allows users to switch between applications seamlessly, with apps running in the background (subject to system optimizations for battery life).
9Resizable Widgets
App Widgets can be embedded in other applications (like the home screen) and can be resized by the user.
10Multi-Language & Accessibility
Comprehensive support for numerous languages, including bi-directional text (RTL). Robust accessibility features and APIs to make apps usable by people with disabilities.
11Firebase Cloud Messaging (FCM)
A cross-platform messaging solution (formerly Google Cloud Messaging - GCM) that lets developers send notifications and data messages to users on Android, iOS, and web.
12Nearby Share
A feature that allows users to instantly share files, links, and more with nearby Android devices, similar to Apple’s AirDrop. Replaced Android Beam.
13Security Features
Includes features like sandboxing for apps, secure boot, encryption, permissions system, and regular security updates to protect user data and device integrity.
14Biometric Authentication
Support for fingerprint, face, and iris recognition for secure authentication.

Android applications are primarily developed using Kotlin (the officially preferred language) or Java, utilizing the Android Software Development Kit (SDK) and Android Studio. C/C++ can also be used for performance-critical parts of an app via the Android Native Development Kit (NDK).

Once developed, Android applications are packaged as APK (Android Package Kit) or AAB (Android App Bundle) files. They can be distributed through various channels, with the Google Play Store being the primary one. Other app stores include the Amazon Appstore, Samsung Galaxy Store, and platform-specific stores from other manufacturers.

Android powers billions of mobile devices in over 190 countries, making it the largest installed base of any mobile platform. Its ecosystem continues to grow rapidly, with developers constantly creating new and innovative applications.

This tutorial aims to teach you how to develop and package modern Android applications, starting from setting up your development environment to exploring various aspects of Android app development with current best practices.

Android apps span a vast range of categories, catering to diverse user needs. Some popular categories include:

  • Communication (e.g., messaging, social media, email)
  • Productivity (e.g., office suites, note-taking, task management)
  • Entertainment (e.g., games, video streaming, music players)
  • Lifestyle (e.g., fitness, travel, food & drink)
  • Tools & Utilities (e.g., file managers, security apps, customization tools)
  • Education & Reference
  • Finance & Business
  • Health & Fitness
  • Shopping
  • Photography & Video Editing

A Brief History of Android Versions (Code Names)

Section titled “A Brief History of Android Versions (Code Names)”

Android versions are famously named after desserts or sweet treats, in alphabetical order. Here’s a look at some notable versions:

  • Android 1.0 (No codename, API 1) - 2008
  • Android 1.5 Cupcake (API 3) - 2009
  • Android 1.6 Donut (API 4) - 2009
  • Android 2.0/2.1 Eclair (API 5-7) - 2009/2010
  • Android 2.2 Froyo (API 8) - 2010
  • Android 2.3 Gingerbread (API 9-10) - 2010
  • Android 3.0/3.1/3.2 Honeycomb (API 11-13) - 2011 (Tablet-only)
  • Android 4.0 Ice Cream Sandwich (API 14-15) - 2011 (Unified phone and tablet UI)
  • Android 4.1/4.2/4.3 Jelly Bean (API 16-18) - 2012/2013
  • Android 4.4 KitKat (API 19-20) - 2013
  • Android 5.0/5.1 Lollipop (API 21-22) - 2014 (Material Design introduced)
  • Android 6.0 Marshmallow (API 23) - 2015 (Runtime permissions)
  • Android 7.0/7.1 Nougat (API 24-25) - 2016 (Multi-window support)
  • Android 8.0/8.1 Oreo (API 26-27) - 2017 (Project Treble, Notification channels)
  • Android 9 Pie (API 28) - 2018 (Gesture navigation, Digital Wellbeing)
  • Android 10 (API 29) - 2019 (System-wide dark theme, improved privacy controls)
  • Android 11 (API 30) - 2020 (Bubbles, one-time permissions, conversation notifications)
  • Android 12 (API 31-32) - 2021 (Material You, privacy dashboard, approximate location)
  • Android 13 (API 33) - 2022 (Per-app language preferences, themed app icons, photo picker)
  • Android 14 (API 34) - 2023 (Improved system health, privacy and security enhancements, customization features)

API Level is an integer value that uniquely identifies the framework API revision offered by a version of the Android platform. Applications declare a targetSdkVersion to indicate which API level they are designed and tested against, and a minSdkVersion to specify the minimum API level required to run.

Here’s a table showing recent Android versions, their corresponding API levels, and version codes (used internally by Android):

Platform VersionAPI LevelVERSION_CODE Constant
Android 1434UPSIDE_DOWN_CAKE
Android 1333TIRAMISU
Android 12L32S_V2
Android 1231S
Android 1130R
Android 1029Q
Android 928P
Android 8.127O_MR1
Android 8.026O
Android 7.125N_MR1
Android 7.024N
Android 6.023M

Developers use minSdkVersion to ensure their app doesn’t install on devices with an older platform version lacking necessary APIs, and targetSdkVersion to opt-in to the latest platform behaviors and features.