Android - Overview
Android - Overview
Section titled “Android - Overview”What is Android?
Section titled “What is Android?”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.
Why Android?
Section titled “Why Android?”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.
Features of Android
Section titled “Features of Android”Android is a powerful operating system packed with features that enable rich application experiences. Key features include:
| No. | Feature & Description |
|---|---|
| 1 | Modern 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. |
| 2 | Connectivity 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. |
| 3 | Storage 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. |
| 4 | Media 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. |
| 5 | Messaging Supports SMS, MMS, and Rich Communication Services (RCS) through various applications. |
| 6 | Web 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. |
| 7 | Multi-touch & Gestures Native support for multi-touch screens and a rich gesture system for intuitive user interaction. |
| 8 | Multi-tasking Allows users to switch between applications seamlessly, with apps running in the background (subject to system optimizations for battery life). |
| 9 | Resizable Widgets App Widgets can be embedded in other applications (like the home screen) and can be resized by the user. |
| 10 | Multi-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. |
| 11 | Firebase 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. |
| 12 | Nearby 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. |
| 13 | Security Features Includes features like sandboxing for apps, secure boot, encryption, permissions system, and regular security updates to protect user data and device integrity. |
| 14 | Biometric Authentication Support for fingerprint, face, and iris recognition for secure authentication. |
Android Applications
Section titled “Android Applications”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.
Categories of Android Applications
Section titled “Categories of Android Applications”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)
What is API Level?
Section titled “What is API Level?”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 Version | API Level | VERSION_CODE Constant |
|---|---|---|
| Android 14 | 34 | UPSIDE_DOWN_CAKE |
| Android 13 | 33 | TIRAMISU |
| Android 12L | 32 | S_V2 |
| Android 12 | 31 | S |
| Android 11 | 30 | R |
| Android 10 | 29 | Q |
| Android 9 | 28 | P |
| Android 8.1 | 27 | O_MR1 |
| Android 8.0 | 26 | O |
| Android 7.1 | 25 | N_MR1 |
| Android 7.0 | 24 | N |
| Android 6.0 | 23 | M |
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.