Android

From Android Wiki
Jump to navigation Jump to search
Android
Android logo (2014).svg
Android Oreo 8.1 screenshot.png
Kurzinfo
Lizenz Apache License Version 2.0
Entwickler Google
Programmiersprache C++, C, Java
Repository https://android.googlesource.com/


Android is a, developed by the Open Handset Alliance, Linux-Kernel NetBSD-Userland based operating system for Smartphones, Tablets and other mobile devices, as well as other embedded devices, like cars. The main developer, apart from the voluntary community, is the california-based company Google, Inc., which is also well recognized as "the developer" of Android in the general press and the public. Google is also the founder of the Open Handset Alliance. Android is open source software; the source code is available to the public. Even if Android is based on the Linux kernel, it is mostly not recognized as an own distribution of Linux, because a lot of features and basics, compared to other unix-like operating systems, are greatly changed or removed from the system.

At the beginning of 2016, during the trial of the case Oracle Inc. vs. Google, Inc., Oracle disclosed (estimated by Oracle) the revenue made by Google with Android, which, since 2008, was as high as round about $31 billions.[1][2]

In the 4th quarter of 2015, Android had a market share of over 80 % (80.7 %) in the distribution of operating systems in of mobile operating systems.[3]

History[edit | edit source]

Android was originally developed by Android, Inc., which was founded by Andy Rubin, Rich Miner, Nick Sears and Chris White in 2003 in Palo Alto, a california-based city in the united states. In 2005, the company was, with the mobile operating system Android, acquired by Google for $ 50 million.[4] 2007, Google presented Android to the public the first time. With 33 more companies, todays Open Handset Alliance, is Android further developed as an Open Source operating system for mobile phones, tablets and other embedded devices. In October 2008, Android was officially released in version 1.0 and every manufacturer was able to use this operating system. The first commercially available device with Android was the HTC Dream (also known as T-Mobile G1).

General[edit | edit source]

The kernel of Android is based on the Linux kernel. Since version 4 of Android it's possible to use a linux kernel from the 3.x version branch[5] Like on a computer, the kernel provides general and very basic functionality and acts as a layer bewteen the resources of the computer, like the main memory (RAM) or the central processing unit (CPU).

Another very important basic part of the android system is the Dalvik virtual machione (short Dalvik VM or DVM). This virtual machine is party based on the Java programming language and was developed by a Google employee. It's task is to execute byte-code which is generated out of Java binary code (.class) using the tool dx or D8. Since android version 4.4 a new runtime environment with the name Android Runtime (short ART) was developed as a replacement for the dalvik VM.

Android programs, so called apps, also access other libraries, which are created with the C or C++ programming language, and e.g. provide codecs for the media playback, a webkit based browser, or a SQLite database and a 3D graphics driver based on OpenGL.

The android versions are compiled for the ARM architecture, only. The versions of the architecture, like ARMv6 or ARMv7, are not compatible to each other.

The structure in android is in principle with equal rights. That means, that the system can be modified as you want. It's, e.g., basically possible to exchange the camera app with any other app that provides the ability to take pictures using the camera of the device. This applies to any layer above the Dalvik-VM (Android Runtime), which can not easily be changed, including all other layers under it, e.g. the operating system itself. This posibility to exchange specific modules of the system may be restricted by manufacturers of the device by restricting the write-access to specific partitions of the system, whcih prevents the user from changing the apps installation file (APK file) on partitions like /system.

Architecture[edit | edit source]

Architecture of the Android system

Android before (and including) version 4000!4.0 verweis=Ice Cream Sandwich "Ice Cream Sandwich" is based on a linux kernel of version 2.6, since android 4, a linux kernel of the 3.x version branch is used. The kernel provides interfaces and a hardware abstraction layer for higher layers to access resources of the system, like the main memory, the hard drive and so on. It also controls all proceses and the access to the memory.

On top of the kernel, android provides many different libraries. It also provides a virtual machine to execute code (e.g. from apps) to abstract the hardware from the software code. With this architecture, it's possible to execute an app independently from the hardware where it was compiled on, which allows the execution of the resulting code on many different variations of hardware. For this, android uses a virtual machine, which is based on the Java technology, with the name Dalvik VM (since Android 4.4!4.4 verweis=KitKat "KitKat" the Android Runtime (ART) can be used, too. In comparison with the Java Virtual Machine (JVM), which is implemented as a stack machine, the Dalvik VM has a register-based architecture, which requires less, but generally more complex VM instructions. However, Android apps are normally written in Java and compiled to Java byte code. This byte-code will be translated to Dalviks bytecode (.dex). The conversion of stack-machine-code into register-machine-code is done with the tool dx or d8.

Android versions[edit | edit source]

Devices with different versions of Android. From left to right: Jelly Bean (4.1), KitKat (4.4), Lollipop (5.0)

Google names the different versions of Android, apart from the version number, after sweets in alphabetical order.

Version Süßspeise
1.0 Alpha
1.1 Beta
1.5 Cupcake
1.6 Donut
2.0.x / 2.1 Éclair
2.2.x Froyo“ (Frozen Yogurt)
2.3.x Gingerbread
3.x.x Honeycomb
4.0.x Ice Cream Sandwich
4.1.x / 4.2.x / 4.3.x Jelly Bean
4.4.x KitKat
5.0.x / 5.1.x Lollipop
6.0.x Marshmallow[6]
7.0.x / 7.1.1 Nougat[7]
8.0.x „Oreo“[8]

API-Level[edit | edit source]

The API lebel represents the version of the built-in functions and the compatibility of it to older/newer versions of Android. The lower the api level, the less functions are implemented and are therefore available for use. The api level is especially important for developers of app, as an app, which is compiled with the target api level 14, can not be installed on a device, which is runnint an android version with a lower api level, e.g. 2360!2.3.6 verweis=Gingerbread "Gingerbread" (which has the api level 10).

Android Update Prozess[edit | edit source]

It can take some time, until an android update after the official announcement reaches the device of a manufacturer. The main reasons for this are, that the manufacturer of built-in chips are not fast enough to provide drivers for the new android version, or the manufacturer of the device itself does not have enough resources to provide an update in a short period of time.

Distribution of android versions[edit | edit source]

Verteilung der Android-Versionen

Based on the fact, that the manufacturer of android devices has to carry out updates for the system, and the lengthy process of adapting a new version of android to the own software and user interfaces of the manufacturer, new android versions are very slowly distributed to devices. The result is obvious in the distribution of android versions, which looks dismembered and new android versions take a lot of time to reach a high distribution in the android ecosystem.[9] A statistic of the distribution in the last 7 days, as well as the composition of the display sizes is available on this web page.

Google Play Store[edit | edit source]

The Google play store is a market platform from Google for many different types of digital content. The platform evolved from the predecessor Android Market which was only built to distribute and sell apps. The Play Store, other than android itself, is not open source software and a the pre-installation in android requires the approval of Google.

Google vs. Oracle[edit | edit source]

In August 2013, Android became part of a litigation bewteen Google and Oracle, which holds some patents for Java related techniques. Oracle accused Google to infringe Java patents with Android. Google won the case in the first instance, however, the court noticed, that Google violated Java patents with Android.

See also[edit | edit source]

References[edit | edit source]