[size=18]How To - Wollte Ich immer schon Wissen!
Auszug aus: Was ist Android?[/SIZE]
- Quellenverweis: What is Android? | Android Developers
Originaltext [DLMURL="http://developer.android.com/guide/basics/what-is-android.html"]Englisch[/DLMURL]
Spoiler anzeigen
What is Android?
Android is a software stack for mobile devices that includes an operating system, middleware and key applications. The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
Features- Application framework enabling reuse and replacement of components
Dalvik virtual machine optimized for mobile devices
Integrated browser based on the open source WebKit engine
Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)
SQLite for structured data storage
Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
GSM Telephony (hardware dependent)
Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
Camera, GPS, compass, and accelerometer (hardware dependent)
Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE
Android Architecture
The following diagram shows the major components of the Android operating system. Each section is described in more detail below.
Applications
Android will ship with a set of core applications including an email client, SMS program, calendar, maps, browser, contacts, and others. All applications are written using the Java programming language.
Application FrameworkBy providing an open development platform, Android offers developers the ability to build extremely rich and innovative applications. Developers are free to take advantage of the device hardware, access location information, run background services, set alarms, add notifications to the status bar, and much, much more.
Developers have full access to the same framework APIs used by the core applications. The application architecture is designed to simplify the reuse of components; any application can publish its capabilities and any other application may then make use of those capabilities (subject to security constraints enforced by the framework). This same mechanism allows components to be replaced by the user.
Underlying all applications is a set of services and systems, including:- A rich and extensible set of Views that can be used to build an application, including lists, grids, text boxes, buttons, and even an embeddable web browser
Content Providers that enable applications to access data from other applications (such as Contacts), or to share their own data
A Resource Manager, providing access to non-code resources such as localized strings, graphics, and layout files
A Notification Manager that enables all applications to display custom alerts in the status bar
An Activity Manager that manages the lifecycle of applications and provides a common navigation backstack
For more details and a walkthrough of an application, see the Notepad Tutorial.
LibrariesAndroid includes a set of C/C++ libraries used by various components of the Android system. These capabilities are exposed to developers through the Android application framework. Some of the core libraries are listed below:
- System C library - a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices
Media Libraries - based on PacketVideo's OpenCORE; the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
Surface Manager - manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications
LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view
SGL - the underlying 2D graphics engine
3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer
FreeType - bitmap and vector font rendering
SQLite - a powerful and lightweight relational database engine available to all applications
Android RuntimeAndroid includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language.
Every Android application runs in its own process, with its own instance of the Dalvik virtual machine. Dalvik has been written so that a device can run multiple VMs efficiently. The Dalvik VM executes files in the Dalvik Executable (.dex) format which is optimized for minimal memory footprint. The VM is register-based, and runs classes compiled by a Java language compiler that have been transformed into the .dex format by the included "dx" tool.
The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.
Linux KernelAndroid relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. The kernel also acts as an abstraction layer between the hardware and the rest of the software stack.
- Application framework enabling reuse and replacement of components
[size=18]Übersetzung ins Deutsche von: Criminal23 /MIUI.CH
[/SIZE]
Was ist Android?
Android ist ein Software Paket für mobile Geräte, was ein Betriebssystem, Middleware und wichtigen Anwendungen enthält. Das Android SDK bietet die Tools und APIs die erforderlich sind, um mit der Entwicklung von Anwendungen auf dem Android-Plattform zu beginnen. Die Programmiersprache ist Java.
[size=18]Features[/SIZE]
Application Framework ermöglicht die Wiederverwendung und den Austausch von KomponentenDalvik Virtual Machine für mobile Geräte optimiert
Integrierter Browser auf dem Open Source [DLMURL="http://webkit.org/"]WebKit[/DLMURL] Engine
Optimierte Grafik versorgt durch eine benutzerdefinierte 2D-Grafik-Bibliothek; 3D-Grafik die auf den OpenGL ES 1.0-Spezifikationen (Hardwarebeschleunigung optional) basiert
SQLite für strukturierte Datenhaltung
Media-Unterstützung für alle gängigen Audio-, Video-und Standbild-Formate (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
GSM-Telefonie (Hardware abhängig)
Bluetooth, EDGE, 3G und WiFi (Hardware abhängig)
Kamera, GPS, Kompass und Beschleunigungsmesser (Hardware abhängig)
Umfangreiche Entwicklungsumgebung inklusive Device Emulator, Werkzeuge zum Debuggen, Speicher-und Performance-Profiling und ein Plugin für die Eclipse IDE
- Android Architektur
- Das folgende Diagramm zeigt die wichtigsten Komponenten des Android-Betriebssystems. Jeder Abschnitt wird im Folgenden näher beschrieben.
Applications
Android wird mit einer Reihe von Kern-Anwendungen einschließlich E-Mail-Client, SMS-Programm, Kalender, Karten, Browser, Kontakte und anderen herausgegeben. Alle Anwendungen werden mithilfe der Programmiersprache Java geschrieben.
[size=18]Application Framework[/SIZE]
Durch die Bereitstellung einer offenen Entwicklungsplattform bietet Android Entwicklern die Möglichkeit, extrem umfangreiche und innovative Anwendungen zu erstellen. Entwickler können die Vorteile der Geräte-Hardware: Zugriff auf Ortsinformationen, realisieren von Hintergrund-Diensten, Alarme einstellen,Benachrichtigungen an die Statusleiste fügen, und vieles, vieles mehr, nutzen.
Entwickler haben vollen Zugriff auf die gleichen framework APIs (API = Programmierschnittstelle), die von den Kern-Anwendungen verwendet werden. Die Anwendungs Architektur ist so konzipiert, um die Weiterverwendung von Komponenten zu vereinfachen; jede Anwendung kann seine Fähigkeiten veröffentlichen, und damit kann wiederrum jede andere Anwendung Gebrauch von diesen Möglichkeiten machen (je nach Sicherheits-Einschränkungen durch das Framework). Mit dem selben Mechanismus können Komponenten durch den Anwender ausgetauscht werden.
Basiswert aller Anwendungen ist eine Reihe von Diensten und Systemen, einschließlich:Eine reichhaltige und erweiterbare Auswahl von [DLMURL="http://developer.android.com/resources/tutorials/views/index.html"]Ansichten[/DLMURL], die verwendet werden können, um eine Anwendung, einschließlich Listen, Grids, Textfelder, Schaltflächen und sogar einen Webbrowser zu erstellen
Content Providers, ermöglicht Anwendungen, auf Daten anderer Anwendungen (z.B. Kontakte) zuzugreifen, oder ihre eigenen Daten freizugeben
Ein Resource Manager bietet Zugang zu Nicht-Code-Ressourcen wie lokalisierten Zeichenfolgen, Grafiken und Layout-Dateien
Ein Notification Manager, erlaubt allen Anwendungen, benutzerdefinierte Warnungen in der Statusleiste anzuzeigen
Ein Activity Manager, der den Lebenszyklus von Anwendungen verwaltet und einen gemeinsamen Navigations backstack bietet
Für weitere Details und einer exemplarischen Vorgehensweise einer Anwendung finden Sie im [DLMURL="http://developer.android.com/resources/tutorials/notepad/index.html"]Notepad Tutorial[/DLMURL].
[size=18]Bibliotheken / Libraries[/SIZE]
- Android enthält einen Satz von C/C++ Bibliotheken die durch verschiedene Komponenten des Android System verwendet werden. Diese Fähigkeiten werden den Entwicklern über die Android Application Framework frei gegeben. Einige der Kernbibliotheken sind unten aufgeführt:
System C library - eine BSD-abgeleitete Implementierung der Standard-C-System-Bibliothek (libc), für Embedded Linux-basierte Geräte abgestimmt
Media Libraries - basierend auf PacketVideo OpenCORE; die Bibliotheken unterstützen die Wiedergabe und Aufnahme von vielen gängigen Audio-und Videoformaten sowie statische Bilddateien, einschließlich MPEG4, H.264, MP3, AAC, AMR, JPG und PNG
Surface Manager - verwaltet den Zugriff auf das Display-Subsystem und nahtlose vermischen von 2D und 3D Grafik-Schichten aus mehreren Anwendungen
LibWebCore - eine moderne Web-Browser-Engine, welche sowohl die Android-Browser und eine bündig Web-Ansicht verarbeiten kann
SGL - die zugrunde liegenden 2D-Grafik-Engine
3D libraries - eine Implementierung, basierend auf OpenGL ES 1.0 APIs, die Bibliotheken verwenden entweder Hardware-3D-Beschleunigung (sofern verfügbar) oder die mitgelieferte, hoch optimierte 3D-Software Rasterung
FreeType - Bitmap-und Vektorschriftart-Rendering
SQLite - eine leistungsstarke und leicht relationale Datenbank-Engine für alle Anwendungen verfügbar
Android Runtime
Android enthält eine Reihe von Kern-Bibliotheken, die die meisten Funktionen in den Kern-Bibliotheken der Java-Programmiersprache bietet.
Jede Android-Anwendung läuft in einem eigenen Prozess, mit seiner eigenen Instanz der Dalvik Virtual Machine.
Dalvik wurde so geschrieben, dass ein Gerät mehrere VMs effizient ausführen kann. Die Dalvik VM führt Dateien im Dalvik Executable (.dex) Format aus, so das nur minimaler Speicherbedarf erforderlich ist. Die VM ist registergestützt und wird, compiliert von einem Java-Compiler, die in den .dex-Format mit dem mitgelieferten "dx" Tool verwandelt wurde, betrieben.
Die Dalvik VM basiert auf dem Linux-Kernel für die zugrunde liegenden Funktionen wie Threading und Low-Level-Speicherverwaltung.Linux Kernel
Android basiert auf Linux Version 2.6 für Core-System-Dienste wie Sicherheit, Speicher-Management, Prozess-Management, Netzwerk-Stack und Treiber-Modell. Der Kernel dient auch als eine abstrakte Ebene zwischen der Hardware und dem Rest der Software.