Android is an open source operating system aimed for portable devices, but also present in desktop devices. Its kernel is a modified version of Linux kernel.
This post is an introduction to the operating system.
Android is developed by a consortium of developers and companies known as the Open Handset Alliance, where American company Google is probably the most known as it provides the most used distribution of Android.
Android and its logo is trademarked by Google.
The free and open-source (FOSS) core distribution of Android is known as Android Open Source Project (AOSP), colloquially known as Vanilla Android. This versions has minimum functionality, and other distributions are built on top of this version.
AOSP is released under different FOSS licenses. While the kernel is released under a GPLv2-only copyleft license, most of the software developed exclusively for Android is released under an Apache 2.0 permissive license.
Google Android, commonly referred just as Android, is a proprietary distribution by Google, built over AOSP.
When someone uses the term Android most of the times is referring to Google Android specifically. In this post, Google Android is used to refer to Google’s distribution of Android, AOSP to the open-source core distribution and Android as an umbrella term for the operating system.
Android distributions, also known as Android versions, are the different versions of AOSP available to users. I use the term “distribution” in this post because it is more specific and less ambiguous than the term “version”.
As already mentioned, the FOSS core Android distribution is AOSP, all other distributions deriving from it. AOSP lacks the Google proprietary software that Google Android users could be accustomed, like Play Store or Chrome. Instead, it comes by default with some white brand non-Google apps, like a debranded browser.
Google Android is the most popular distribution of Android and includes proprietary software like Google Mobile Services (GMS) (that includes the Play Store and Google Services), Chrome, Google Maps and other Google apps.
There are other distributions that could be either fully FOSS or proprietary.
Android Open-Source Distributions
To find a list of FOSS distributions, please read this post.
Android Proprietary Distributions
Portable devices manufacturers use to create their one distributions of AOSP to customized the operating system and offer exclusive functionalities.
Some proprietary Android distributions are Google Android, One UI by South Korean company Samsung or MIUI by Chinese company Xiaomi.
Hardware compatible with Android
As Android was aimed for mobile devices, it is mostly compatible with processors used on mobile devices. For example, there are Android versions for ARM, ARM64 and x86 processors.
Application Development for Android
The official Integrated Development Environment (IDE) for Android development is Android Studio.
Android apps can be developed in either Java or Kotlin. Both of them are interpreted programming languages whose source code is compiled into Java bytecode.
Java bytecode is run on Android using the Android Runtime (ART) software on latest Android versions. ART comes preinstalled on Android. Sun Microsystem’s Java Virtual Machine (JVM) is no longer installed on Android devices, and ART is used instead.
The reason why ART (and its predecessor Dalvik) replaced JVM is that the former is optimized for Android and mobile devices, and also because Sun Microsystems and Google did not come to an agreement to use Java SE libraries in Android.
Take note that ART (and Dalvik) read .dex files instead of the .class files read by JVM. In this way, ART requires that .class files with Java bytecode are recomplied into .dex files using a dex compiler.
Android libraries are usually distributed as Android Archive files with .aar extension.
You can read about security aspects of Android on this post.