
An Introduction to Android
Android is a software package and linux based operating system for mobile devices such as tablet computers and smartphones.
A Walk-Through History!
- In 2003, Linux-based ‘Android’ OS was developed by Andy Rubin & Co at Android Inc.
- In 2005, Google acquired Android Inc.
- In 2007, Android was unveiled by the Open Handset Alliance (OHA), a group of hardware and software developers including Google, NTT DoCoMo, and HTC.
- In 2008, the first commercial Android device was launched.
Check out the next card for the different versions of Android and their unique nicknames, in chronological order.
The following table shows the version details of android which is released by Google from 2007 to date.
Code Name | Version | API level | Release date |
---|---|---|---|
– | Android 1.0 | 1 | September 23, 2008 |
– | Android 1.1 | 2 | February 9, 2009 |
Cupcake | Android 1.5 | 3 | April 30, 2009 |
Donut | Android 1.6 | 4 | September 15, 2009 |
Eclair | Android 2.0 – 2.1 | 5-7 | October 26, 2009 |
Froyo | Android 2.2 – 2.2.3 | 8 | May 20, 2010 |
Gingerbread | Android 2.3 – 2.3.4 | 9-10 | December 6, 2010 |
Honeycomb | Android 3.0.x – 3.2.x | 11 – 13 | February 22, 2011 |
Ice Cream Sandwich | Android 4.0 – 4.0.4 | 14 – 15 | October 18, 2011 |
Jelly Bean | Android 4.1 – 4.1.2 | 16 – 18 | July 9, 2012 |
Kitkat | Android 4.4 – 4.4.4 | 19 | July 9, 2012 |
Lollipop | Android 5.0 – 5.1 | 21 – 22 | October 17, 2014 |
Marshmallow | Android 6.0 – 6.0.1 | 23 | October 5, 2015 |
Nougat | Android 7.0 – 7.1 | 24 – 25 | August 22, 2016 |
Oreo | Android 8.0 | 26 | August 21, 2017 |
Pie | Android 9.0 | 27 | August 6, 2018 |
Android Q | Android 10.0 | 29 | September 3, 2019 |
Android 11 | Android 11.0 | 30 | September 8, 2020 |
Snow Cone | Android 12.0 – 12.1 | 31-32 | October 4, 2021 |
Tiramisu | Android 13 | 33 | August 15, 2022 |
Android 14 | UPCOMING |
Android Architecture
Android architecture is a software stack of components to support the needs of a mobile device.
Dissecting the Android OS reveals the five main layers and six distinct sections.
Linux Kernel
- Linux Kernel is the abstraction layer between the software stack and the hardware.
- It includes core system services like:
- Essential hardware drivers
- Memory management programs
- Security settings
- Power management software
- File system access
- Networking
- Inter-process communication
Hardware Abstraction Layer
- Hardware Abstraction Layer defines the interface that exposes device hardware capabilities to the higher-level Java API framework.
- It is available for all the components that a manufacturer can embed on the Android platform.
Libraries
- Compiled and pre-installed native C/C++ binaries.
- Android system depends on these libraries to tell the device how to handle different kinds of data.
- They are exposed to Android developers through the Android Application framework.
- It commonly includes media, graphics, 3D, SQLite, web browser library, and so on.
Android Runtime
Core Java Library
Provides most of the core Java functionalities like Collections, Utilities, IO, and so on.
Dalvik VM
- A discontinued process Virtual Machine (VM) that executes Dalvik Executables (DEX) files which are zipped into an Android Package (APK).
- Uses Just in Time (JIT) compilation and lower memory footprint.
ART
Android RunTime (ART) replaced Dalvik to run Android apps and supports Ahead-Of-Time (AOT) compilation instead of JIT.
Improved App load time and lower CPU usage
Application Framework
- Set of basic tools that enable the developer to build Android apps.
- Facilitates reuse of android components and services which includes:
- View System: Builds the user interface by handling the views and layout.
- Resource Manager: Provides access to non-code resources, including localized strings, graphics, and layout files.
- Notification Manager: Enables all apps to display custom alerts in the status bar.
- Activity Manager: Manages the lifecycle of apps and provides a typical navigation back stack.
- Content Providers: Enables data sharing among Android applications.
System Apps
Core applications that ships with Android and runs within its own instance of Dalvik VM.
Includes calendar, email client, SMS messaging, maps, contacts, Web browser, and so on.
The Android SDK
Android devices do not run .jar and .class files. Instead, they use their customized formats for the compiled code to improve speed and battery life.
So can we use an ordinary Java development environment to develop android apps? No, special tools are additionally required to convert the compiled code to an Android format, deploy it to an Android device, and enable debugging once the app runs.
These additional special tools come as part of the Android Software Development Kit (SDK).
- The SDK provides a selection of tools required to build an Android app.
- Irrespective of the PL and IDE used to create an Android app, an SDK is required to run it on an Android device and to access the unique features of the OS.
- It provides the ability to use an emulator to test apps, monitor devices, and so on.
- Platform-tools: Specifically suited to the version of Android that you want to target.
- Build-tools: Required for building Android apps, installed in the <sdk>/build-tools/ directory.
- SDK-tools: Includes the complete set of development and debugging tools for Android.
- The Android Debug Bridge (ADB): Program that allows you to communicate with any Android device.
- Android Emulator: Lets you test and monitor apps on a PC, without necessarily having a device available.
Essential gear for Android development
Development Machine
- Laptop/Desktop: A powerful machine is essential for efficient development. Recommended specifications include:
- Processor: Intel i5/i7 or AMD equivalent.
- RAM: At least 8GB (16GB or more is ideal).
- Storage: SSD for faster read/write speeds.
- Graphics Card: Optional but beneficial for running emulators smoothly.
Physical Devices
- Smartphones/Tablets: Testing on real devices is crucial for understanding how your app performs in real-world scenarios. It’s helpful to have a range of devices with different screen sizes and Android versions.
Somehow if laptop battery damaged, don’t settle for less when it comes to your laptop’s battery. Click the link below to find the perfect replacement battery for your device and keep your laptop running at its best!