In summer 2005, Google purchased a company called Android which was founded by Andy Rubin in 2003. So far, there was nothing more known until this time than that it developed software for mobile phones and favorite location-based services. On 5 November 2007, Google announced the joint development together with 33 other members of the Open Handset Alliance, a mobile phone operating system called Android. Since Oktober 21, 2008 – Android is officially available.
The first device with Android operating system saw the light of day on October 22, 2008 as the HTC Dream under the name T-Mobile G1 got available on the United States market. That already this first device had access to the Global Positioning System (GPS) and was equipped with motion sensors was part of the Android concept. Today, there is now a large amount of different devices from various manufacturers on the market on which Android is preinstalled. Since January 2010, Google also developes own product lines with their Nexus product series to enter the cellphone hardware market.
The user controls Android using the touchscreen and a series of defined hardware keys. The standard interface consists of three, five or seven home screens, each of them fills a screen surface. The top edge is the notification bar which shows the current user time on the right side, followed by signal quality, battery level, Internet, Bluetooth, WLAN and synchronization. Messages or running programs appear on the left side, new messages on any kind or system messages.
This notification bar can be expanded with the finger through scrolling down showing notifications from applications (such as the sender and the beginning of the text of a SMS). Usually the this will bring up the notification program showing the corresponding object (calendar entry, text message). There are markable notifications (such as appointments, new emails), which can be deleted on selection (or by pressing the button “delete”) and will be removed from the list or static alerts which are always shown at the top.
When notification bar is collapsed, symbols are shown on the left side from the applications that display notifications and alerts. On the right side are only system symbols displayed showing system information and the current user time. When a notification appears, it will replace the entire notification bar with a text (eg, e-mail subject line) for a short time (even by scrolling vertically), led by an icon. When folded down, the notification bar icons an the left side (the texts to be presented with the rest of the screen) will be replaced by the current date.
At the bottom there is a tab to Android 1.6 from Android 2.0 uses a button to open the Applications Launcher (Launcher).
In Google Play Store (formerly Android Market), there are numerous programs that will replace the standard application launcher and expand the entire surface to other extras, for example, more usable homescreens, extendable side flaps with more space for storing shortcuts or hard links in the tab the launcher. With Android 2.2, a new default launcher was introduced, which includes a fixed link to the telephone application and browser.
HTC delivers its Android devices from almost exclusively with the modified graphical user interface Sense. The differences from the standard interface is a modified launcher with buttons for the program menu, the phone and for the addition of home screen elements, seven home screens, some partially full screen widgets and a global, green color scheme instead of the orange in the default interface.
Similarly, other major manufacturers such as Motorola with MotoBlur process, with Samsung TouchWiz, or even Sony Ericsson with adjustments as Timescape and Mediascape.
The architecture of Android is built on the Linux kernel 2.6, with Android 4.x is a kernel of the 3.x series possible. He is responsible for memory management, process management, and provides the interface for playback of multimedia and network communication represents also lays down the hardware abstraction layer for the rest of the software and provides the device drivers for the system.
Other important components are based on the architecture developed by Sun Microsystems Java technology virtual machine Dalvik and its Android Java class libraries. Contents of the class library are strongly based on the functionality of the Java Standard Edition As a basis for the free re-implementation of the Java Standard Edition Apache Harmony was used. The runtime environment of Android is based on the Dalvik virtual machine, developed by a Google employee Dan Bornstein virtual machine. The Dalvik VM is similar functionally normal Java VM, both result from so-called byte code.
One of the main differences is the underlying virtual processor architecture. The Java VM is based on a pushdown automaton; Dalvik VM on the other hand is a register machine. By differing processor architecture the compilations normal Java compilers are not suitable for the Dalvik VM, but Google could fall back on the existing Java development tools.
Most modern compilers generate intermediate code as pushdown automata code. This intermediate code makes it possible to abstract from the processor architecture of the target platform, the programming language part is separated from the specific processor architecture. Since the processor model of pushdown automata is very simple, it is usually used for the translation between languages. Most real processors today but register machines, such as the 80×86 and the ARM processors.
Register architectures are often more efficient, since the CPU via its own very quickly accessible memory cells, which register has. Dalvik is responsible for converting the codes into the register pushdown machine code at compile time already anticipated. Therefore, the tool is used dx “dx” stands for Dalvik cross-assembler.
Applications for Androidplattform are typically written in Java, but they engage in rate-sensitive sectors on numerous in C or C + + written, native libraries. The catalog includes codecs for media playback and a web browser based on WebKit, a database (SQLite) and an OpenGL based 3D graphics library.
To develop their own programs for android, you need a current Java SDK and also the Android SDK. The first written in the Java source code is compiled with a standard Java compiler and then adjusted by a cross-assembler for the Dalvik VM. For this reason, programs can be created in principle with any Java development environment.
The framework relies on strong modularity. Thus, all components of the system generally equal (except the virtual machine and the underlying core system) and can always be replaced. So it is for example possible to create a separate application for creating text messages or to dial numbers and replace the existing application with it.
A further application development and Portierungsweg beyond Java offers the SDL library for SDL and native C code. Over a small java-based Wrappercodeanteil about using JNI native code is made possible. This is the porting of existing SDL applications on Android relatively easy to like In Jagged Alliance 2 port.
Since Android but not a native X Window System still offers the full scope of the GNU libraries by default includes a port is available (desktop) Linux applications or libraries difficult.