Android Plattform. Ausarbeitung. im Fachgebiet Informatik. Matrikelnummer: 26 02 98. Prof. Dr.-Ing. Karl-Otto Linn



Ähnliche Dokumente
Smartphone Entwicklung mit Android und Java

Walkabout: Location Based Services mit Android und dem Google Phone

App-Entwicklung für Android

Mobile Application Development

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS HSRM

1. Software-Plattform Android Android. Was ist Android? Bibliotheken, Laufzeitumgebung, Application Framework

Einführung in Android. 9. Dezember 2014

Präsentation Von Laura Baake und Janina Schwemer

4D Server v12 64-bit Version BETA VERSION

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Matrix42. Matrix42 Cloud Trial Erste Schritte. Version

MetaQuotes Empfehlungen zum Gebrauch von

1. Software-Plattform Android Android. Was ist Android? Managed Code, Angepasste Java Virtual Machine

Anleitung über den Umgang mit Schildern

ANDROID. Analyse der Android Plattform. Andre Rein, Johannes Florian Tietje. 28. Oktober FH-Gieÿen-Friedberg Android Praktikum

Sicherheit in Android

CADEMIA: Einrichtung Ihres Computers unter Linux mit Oracle-Java

Lizenzierung von System Center 2012

robotron*e count robotron*e sales robotron*e collect Anmeldung Webkomponente Anwenderdokumentation Version: 2.0 Stand:

CADEMIA: Einrichtung Ihres Computers unter Mac OS X

Verwendung des Terminalservers der MUG

Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung

Handbuch B4000+ Preset Manager

Android Testautomatisierung mit dem Framework Robotium

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Datenhaltung für Android. Model First

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Lizenzierung von SharePoint Server 2013

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

CADEMIA: Einrichtung Ihres Computers unter Windows

Version 0.3. Installation von MinGW und Eclipse CDT

Windows 8 Lizenzierung in Szenarien

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

TeamViewer App für Outlook Dokumentation

Speicher in der Cloud

Nokia Handy - Daten sichern.

Sicherheit von Smartphone-Betriebssystemen im Vergleich. Andreas Jansche Gerhard Klostermeier

Step by Step Webserver unter Windows Server von Christian Bartl

SILBER SURFER. PC-Treffen der Arbeiterwohlfahrt, Ortsverein Sehnde. PC Internet / Cloud. Leitfaden zur Schulung

Client-Systemanforderungen für Brainloop Secure Dataroom ab Version 8.30

Installation und Inbetriebnahme von SolidWorks

Titel. SCSM ITIL - CMDB - neue CI Klasse erstellen und benutzen. Eine beispielhafte Installationsanleitung zur Verwendung im Testlab

Client-Systemanforderungen für Brainloop Secure Dataroom ab Version 8.30

SCHRITT FÜR SCHRITT ZU IHRER VERSCHLÜSSELTEN

Installationsanleitung

msm net ingenieurbüro meissner kompetent - kreativ - innovativ

Webseiten und Web-Apps grafisch gestalten mit HTML5 Canvas ohne Flash und sonstige Tools

Juniper-Telekonferenz

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Anleitung für Lernende: Login. -Login für Lernende der FREI'S Schulen

Um zu prüfen welche Version auf dem betroffenen Client enthalten ist, gehen Sie bitte wie folgt vor:

WINDOWS 8 WINDOWS SERVER 2012

Revit Modelle in der Cloud: Autodesk 360 Mobile

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

SANDBOXIE konfigurieren

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Windows 10. Vortrag am Fleckenherbst Bürgertreff Neuhausen.

Ein mobiler Electronic Program Guide

Formular»Fragenkatalog BIM-Server«

Perceptive Document Composition

INSTALLATION ABACUS ABAWEBCLIENT

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

Windows / Mac User können sich unter folgenden Links die neueste Version des Citrix Receiver downloaden.

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

IT- Wir machen das! Leistungskatalog. M3B Service GmbH Alter Sportplatz Lake Schmallenberg

Datensicherung. Beschreibung der Datensicherung

MO1 <logo otra empresa> MO1Sync Installationshandbuch MO1. MO1Sync Installationshandbuch -1-

In 15 Schritten zum mobilen PC mit Paragon Drive Copy 11 und VMware Player

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Installation OMNIKEY 3121 USB

w3lib - einfach Software entwickeln!

Unterscheidung Tablet PC & Tablet Computer. Tablet PC; ursprüngliche Bezeichnung von Microsoft. Tablets gemeint

Virtual Desktop Infrasstructure - VDI

Tips, Tricks und HOWTOs Virtualisierung für Profis und Einsteiger Serverkonsolidierung, Testumgebung, mobile Demo

Windows Server 2008 (R2): Anwendungsplattform

ICS-Addin. Benutzerhandbuch. Version: 1.0

Workshop: Eigenes Image ohne VMware-Programme erstellen

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Erste Erfahrungen mit Android

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM APPs und Add-Ins

Computeria Solothurn

Aufbau einer Testumgebung mit VMware Server

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

Kleines Handbuch zur Fotogalerie der Pixel AG

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Open Source als de-facto Standard bei Swisscom Cloud Services

Sound-Formate. SelfLinux Autor: Johnny Graber Formatierung: Torsten Hemm Lizenz: GFDL

Übungen zur Softwaretechnik

Installation der SAS Foundation Software auf Windows

Lizenzierung von SharePoint Server 2013

Transkript:

Ausarbeitung im Fachgebiet Informatik vorgelegt von: Studienbereich: Alexander Shabagin Informatik Matrikelnummer: 26 02 98 Prüfer: Prof. Dr.-Ing. Karl-Otto Linn 2010 Dieses Werk einschlieÿlich seiner Teile ist urheberrechtlich geschützt. Jede Verwertung auÿerhalb der engen Grenzen des Urheberrechtgesetzes ist ohne Zustimmung des Autors unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverlmungen sowie die Einspeicherung und Verarbeitung in elektronischen Systemen.

Abstract Android is an operating system based on Linux for mobile devices. It is developed mainly by Google and the Open Handset Alliance. On the top of the Linux kernel there is an adjusted Java Virtual Machine which has the capability to handle processes in an operation system manner. This architecture allows especially experienced java-developers to write code in an integrated development environment in a custom way. This paper will explain the major architecture principle and the main concept behind the android platform. Alexander Shabagin

Inhaltsverzeichnis Inhaltsverzeichnis Abbildungsverzeichnis II 1 Einleitung 1 4 2.1 Linux Kernel............................ 5 2.1.1 Power Management..................... 6 2.1.2 Binder............................ 6 2.2 Native Bibliotheken......................... 6 2.2.1 Android Libc Implementation.............. 6 2.2.2 Storage, rendering, multimedia.............. 7 2.2.3 Surface Manager...................... 8 2.2.4 Audio Manager....................... 9 2.2.5 Hardware Abstraction Libraries.............. 9 2.3 Android Rintime.......................... 10 2.3.1 Dalvik Virtual Machine................... 10 2.3.2 Application Framework................... 10 2.3.3 Android Initialisierung................... 11 2.4 Android-Anwendung Architektur................. 12 2.4.1 Activities.......................... 13 2.4.2 Lebenszyklus einer Activity................ 13 2.4.3 Umschaltung zwischen den Activities........... 13 2.4.4 Sterben einer Activity................... 13 2.4.5 Services........................... 14 2.4.6 Content Providers...................... 14 2.4.7 Broadcast receivers..................... 15 2.4.8 AndroidManifest.xml.................... 16 Literaturverzeichnis 17 Alexander Shabagin I

Abbildungsverzeichnis Abbildungsverzeichnis 2.1 Android Architektur........................ 4 2.2 Android Power Management.................... 7 2.3 Android Binder........................... 8 2.4 Native Bibliotheken......................... 8 2.5 Surface Manager.......................... 9 2.6 Audio Manager........................... 9 2.7 Hardware Abstraction Libraries.................. 9 2.8 Dalvik Virtual Machine....................... 10 2.9 Application Framework....................... 11 2.10 Initialisierung............................ 12 2.11 Lebenszyklus............................ 14 2.12 Umschaltung zwischen den Activities............... 15 2.13 Content Providers.......................... 15 2.14 Broadcast receivers......................... 15 2.15 AndroidManifest.xml........................ 16 Alexander Shabagin II

1 Einleitung 1 Einleitung Ein Handy ist heutzutage längst nicht mehr nur ein Telefon, in den letzten Jahren wandelte es sich zu einem vollwertigen Multimediacenter. Spiele, Video, Musik, eingebaute Kamera, Internetzugang - Alles was Desktops können, können auch Moderne Mobilgeräte. Eine Symbiose zwischen Handy und PDA hat sich als sehr Erfolgreich rausgestellt. Überwunden die Kommunikationsfunktion, ist er zu einem vollwertigem Arbeitsinstrument geworden, mit Hilfe dessen man Emails lesen, Oce Dokumente anlegen und bearbeiten und im Internet auf bestimmten Content suchen kann. Dennoch um alle Vorteile von mobilen Geräten vollständig ausnutzten zu können, braucht man schnelle und handliche Betriebssystem. Bis vor kurzer Zeit existierten auf dem Markt überwiegend nur zwei Plattformen: Symbian OS und Windows Mobile. Die zwei Riesen haben ständig miteinander um die Kunden gekämpft und gleichzeitig aber nicht auf die konkurrierende Entwicklungen geachtet. Man sollte glauben - Wozu soll man etwas Neues entwickeln, wenn das Alte allen noch recht ist? Es stellte sich heraus, nicht allen. Das ist der Hauptgrund für die Erklärung, wieso viele Entwickler solch eine groÿe Interesse an Android Plattform von Google haben. Google wird schon von vielen Netzprovider und Handyproduzenten unterstützt. Solche Firmen wie: China Mobile, KDDI Corporation, NTT DoCo- Mo, Sprint Nextel, T-Mobile, Telecom Italia, Telefónica, HTC, LG, Motorola, Samsung Electronics und viele andere sind OHA (Open Handset Alliance) beigetreten. OHA wurden von Google initiiert und oziell am 5. September 2007 vorgestellt. Am 8. Dezember 2008 sind auch Vodaphone, Softbank, Sony Ericsson, ASUSTek, Garmin, Huawei Technologies und Toshiba beigetreten. Alliance beschäftigt sich mit den Entwicklungen für die neue Plattform und ihrer Förderung auf dem Markt. Alexander Shabagin 1

1 Einleitung Ein starker Vorteil von Google Android ist in seiner Oenheit und neue Ideologie All apps are equal. Betriebssystem bietet vorinstallierten Applikationen bereits ab Werk keine Privilegien. Sie können alle durch Drittentwickler ersetzt werden. Ansonsten ist es eine weitere mobile Plattform, die auf dem Linux Kernel aufgebaut wurde. SDK für die Applikationsentwicklung und Emulator waren schon lange vor Erscheinung des ersten Gerätes online gewesen. In die neue Betriebssystem wurden beinah alle Service von Google integriert, was es zu idealen Werkzeug macht, um im Internet zu surfen. Für die Erstellung von Applikationen verwendet man Sprachen aus der Java Familie, was wesentlich den Entwicklungsprozess beschleunigt. Eine virtuelle Java-Maschine DALVIK liegt Google Android zugrunde, die Energieverbrauchsteuerung der Applikationen und Verteilung der Prozessorauslast ermöglicht. Die Standartanwendungen, die in der neuen OS eingegangen sind, sind Email und SMS Clients, Kalender, Kontakten Manager, Taschenrechner, Multimedia Player, Wecker und ein Messenger. Insgesamt beinhaltet Android 80 Applikationen mit oenem Quellcode. Abgesehen davon, wurden in Android praktisch alle Service von Google integriert, solche wie Google Maps und Google Docs. Eine einwandfreie Arbeit dieser Applikationen ermöglicht ein funktionaler Browser. Im Online-Geschäft Android Market existieren heutzutage bereits zahlreihe andere Anwendungen. Grundlage für die Entwicklungsumgebung bildet Eclipse-Plugin Android development tools. Dem Entwickler sind diverse populäre open-source Bibliotheken und Komponenten zugänglich: libc, SSL, Media Framework (PacketVideo OpenCORE, MPEG4, AAC, AMR, H.264, MP3, JPG, PNG), Surface Manager, LibWebCore (WebKit), 2D SGL, OpenGL, FreeType. Im Gegensatz zu herkömmlichen Linux Anwendungen, können Applikationen in Android einige nicht standarte Funktionen benutzen: Content Providers (Austausch der Daten zwischen den Applikationen), Resource Manager (Arbeit mit XML, PNG, JPEG), Notication Manager (ermöglicht es Anwendungen, Nachrichten in der Statusbar Anzuzeigen), Activity Manager (verwaltet den Lebenszyklus einer Anwendung). In der Architektur des Input/Output Systems wird SQLite Datenbank verwendet, was Speicherung und Sortierung der Daten erleichtert. Eine interessante Alexander Shabagin 2

1 Einleitung Lösung für das Sicherheitsproblem sind sogenannte Sandkasten(jede Anwendung bekommt ihre eigene virtuelle Umgebung), die Zugrie auf die andere Applikationen einschränken. Im Falle eines Virusangries, können die Schädlinge die Arbeit anderer Applikationen nicht stören. Alexander Shabagin 3

Abbildung 2.1: Android Architektur Android ist ein Programm-Stack für die mobilen Geräte, das ein Betriebssystem, Anwendungen der Zwischenschicht (middleware) und diverse User- Anwendungen beinhaltet (Abbildung 2.1 auf Seite 4). Android Architektur ist auf Linux-Kern Version 2.6 aufgebaut. Der Kern ist für solche Systemdienste verantwortlich wie: Management der Security, Speicher und Prozessen und beinhaltet Netzwerk-Stack und Treiber-Modell. Auÿerdem, spielt dieser Kern eine wichtige Rolle als abstrakte Schicht zwischen Hardware- Layer und den Rest von Programm-Stack. Alexander Shabagin 4

Das nächste Layer in hierarchische System sind die in C/C++ geschriebene Bibliotheken. In Media Bibliotheken (Media Libraries) ist die Unterstützung der gängigen Formaten und Codecs (MPEG4, H.264, MP3, WMA, WAV, AAC, AMR, JPG, PNG) bereits implementiert. Graphische Bibliotheken (3D Libraries) unterstützen API OpenGL ES 1.0 und gewährleisten eine Unterstützung der Hardware 3D-Beschleuniger. In einer Anwendung kann man sowie zweials auch drei-dimensionierte Grak verwenden. Eine weitere interessante Bibliothek ist LibWebCore (WebKit). Das ist ein Web Engine, das auch in einem sehr populären Webbrowser Safari von Apple eine Verwendung ndet. Einer der wichtigsten Teile des Stacks ist Android Runtime, das aus einer virtuelle JVM Dalvik und eines Satzes der Kern Bibliotheken besteht. Dalvik ermöglicht eine parallle Abarbeitung mehrerer Anwendungen und braucht fürs Ausführen des Programms Dateien in einem speziellen.dex Format, das für mobile Geräte mit wenig Speicher optimiert ist. Die Kern Bibliotheken sind in Java geschrieben und beinhalten ein groÿer Satz von Klassen, die eine breite Palette von Funktionen implementieren. Das nächste Layer ist Application Framework. Diese Schicht ist nichts anderes als ein Instrumentarium, das alle Anwendungen benutzen. Hier gibt es eine Komponente, die besonders zu benenn ist: Content Provider. Das ist eine einzigartige Besonderheit von dem Android. Die Datenanbieter ermöglichen, z.b. Information aus dem Internet mit lokalen Handy-Daten (Kontakt- oder Geodaten) vereinigen, um neue Funktionen zu realisieren. Auÿerdem können die Daten gemeinsam von mehreren Anwendungen genutzt werden. Und zuletzt ganz oben bendet sich Schicht der Anwendungen (Applications). Was interessant ist, Android macht keinen Unterschied zwischen Basis- Anwendungen und fremden Anwendungen. Auf dieser Art, ist es Möglich Basis- Anwendung wie: Nummerwahl, Desktop, oder GMail gegen Alternativen zu ersetzen. Die Anwendungen selbst werden in Java geschrieben. 2.1 Linux Kernel Es wurden einige Features, die oft in Linux genutzt werden, entfernt. Nämlich wurde auf GBLIC-Unterstützung, Fenster System und einige Linux Utilities Alexander Shabagin 5

verzichtet. Es sind aber einige Komponente dazu gekommen: Alarm, Android Shared Memory, Kernel Debuger und Logger. 2.1.1 Power Management Android Power Management basiert auf Standarten Linux Power Management, hat aber seine eigene Komponente. Power Management wurde designt unter Voraussetzung, dass CPU keinen Strom verbraucht, wenn keine Anwendung den braucht. Android verlangt, dass Anwendungen und Services CPU Ressourcen mit wake locks durch Android application Framework und native Linux Bibliotheken anfragen. Wenn es keine aktive wake locks gibt, fährt Android CPU runter (Abbildung 2.2 auf Seite 7). 2.1.2 Binder Binder ist ein Treiber, der eine Zwischenprozesskommunikation ermöglicht. Es wird ein Pool mit Threads zu jeweiligen Applikationen assoziiert und der Treiber macht Objekt Mapping zwischen zwei Prozessen (Abbildung 2.3 auf Seite 8). 2.2 Native Bibliotheken 2.2.1 Android Libc Implementation Google entwickelte eigene libc (library for the C compiler), namens Bionic. Es gab drei Gründer dafür: ˆ Lizenz - Google wollte keinen GPL Lizenz in user-space haben. Bionic benutzt BSD Lizenz ˆ Gröÿe - Die Bibliothek muss in jedem Prozess geladen werden, d.h. sie soll so klein wie möglich sein. Bionic ist 200K, oder die Hälfte von glibc (GNU Version von libc). Alexander Shabagin 6

Abbildung 2.2: Android Power Management ˆ Geschwindigkeit - Schwache CPU Leistung erfordert die Performance. Bionic ist klein und beinhaltet sehr schnelle und kleine pthread Implementation. Bionic hat eingebaute Unterstützung für wichtige Android-spezische Services wie: Systeme Properties und Logging. Es unterstützt nicht aber einige POSIX Features, wie: C++ Exceptions and wide chars, die man in Android nicht braucht. 2.2.2 Storage, rendering, multimedia Sie alle bieten die Haupt-Features der Android-Plattform. Alexander Shabagin 7

Abbildung 2.3: Android Binder Abbildung 2.4: Native Bibliotheken ˆ SQLite - Ist eine einfache relationale Datenbank Management System (kein IPC, eine Datei) ˆ WebKit - ist ein Anwendungs-Framework, das ein Fundament für den Bau eines Webbrowsers anbietet. ˆ Media Framework - basiert auf PacketVideo opencore Plattform ˆ Optimierte 2D/3D Graphik Bibliothek basierend auf OpenGL ES 2.2.3 Surface Manager Surface Manager bietet einen Oberäche Konstruktor über das System, um alle Oberächen in frame buer zu generieren. Es kann 2D und 3D Ober- ächen kombinieren und OpenGL ES und 2D hardware acceleration nutzen (Abbildung 2.5 auf Seite 9). Alexander Shabagin 8

2.2.4 Audio Manager Abbildung 2.5: Surface Manager Audio Manager verarbeitet mehrere audio Streams in PMC Ausgangspfade. Dabei kann es mit mehreren Geräten Typen arbeiten und audio Streams in die spezizierten Ausgänge lenken (Abbildung 2.6 auf Seite 9). Abbildung 2.6: Audio Manager 2.2.5 Hardware Abstraction Libraries Hardware Abstraction Libraries denieren Schnittstelle, die hardware-treiber implementieren sollen. Das ist eine Menge von standardisierten APIs, die Entwickler umsetzen (Abbildung 2.7 auf Seite 9). Abbildung 2.7: Hardware Abstraction Libraries Alexander Shabagin 9

2.3 Android Rintime 2.3.1 Dalvik Virtual Machine Dalvik Virtual Machine ist eine Register-basierte, interpreter-only virtuelle Maschine (kein JIT!). Es wurde für kleine RAMs optimiert und ermöglicht Betrieb von mehreren VM Instanzen gleichzeitig. Dalvik ist von unterliegende OS bei Prozess-Isolation, Speicher Management und Threading Unterstützung abhängig. Es werden Executes Dalvic Executables (DEX) Dateien, anstatt gewöhnliche Java.class Dateien verwendet. Für ein.jar Paket in Java steht hier ein Android Package (APK) zur Verfügung (Abbildung 2.8 auf Seite 10). Abbildung 2.8: Dalvik Virtual Machine 2.3.2 Application Framework Einige wichtige Service: ˆ Activity Manager regelt Applikation Lebenszyklus ˆ Package Manager beinhaltet Information über alle installierte Applikationen ˆ Window Manager steuert alle Applikation bezogene Fenster Alexander Shabagin 10

ˆ View system bittet alle standarte Widgets um eine Anwendung zu konstruieren ˆ Hardware Service bitten den Zugri auf low-level APIs (Bluetooth, Telefonie, Lokation,... ) (Abbildung 2.9 auf Seite 11). Abbildung 2.9: Application Framework 2.3.3 Android Initialisierung Android Initialisierung läuft wie folgt ab (Abbildung 2.10 auf Seite 12): 1. Der Bootloader lädt Kernel und startet Init-Prozess 2. Es werden daemons für low level hardware Handling gestartet (usb, adb, debugger) 3. Es wird Initialisierende Dalvik VM - Zygote instanziiert Runtime Prozess, initialisiert Service Manager und macht an Zygote eine Anfrage, um neue Instanz von Dalvik VM zu starten, damit System Server gestartet werden kann 4. Die zwei ersten Prozesse können Grak und Audio Outputs verwenden 5. Danach starten alle andere Android Prozesse Alexander Shabagin 11

Abbildung 2.10: Initialisierung 2.4 Android-Anwendung Architektur Android-Anwendung besteht aus einem oder mehreren Elementen folgender Typen: ˆ Activities ˆ Services ˆ Content ˆ Broadcast Alexander Shabagin 12

2.4.1 Activities Eine Anwendung, die eine graphische Oberäche hat, realisiert man mit einer Activity. Wenn der User eine Anwendung auf dem Desktop auswählt, startet er eine Activity. (Abbildung?? auf Seite??) 2.4.2 Lebenszyklus einer Activity Eine Activity läuft in ihrem Leben folgendes Szenario durch: 1. OnCreate() - Activity wird erzeugt 2. OnStart() - Activity wird gestartet und am Anfang des Stacks platziert 3. OnResume() - Activity ist sichtbar und bendet sich in Vordergrund 4. OnPause() - Activity ist nicht in Vordergrund und wird eventuell heruntergefahren 5. OnStop() - Activity ist nicht mehr an der Spitze von Stack 6. OnDestroy() - Activity existiert nicht mehr 2.4.3 Umschaltung zwischen den Activities Android informiert Activity durch zwei andere Funktionen, wenn sie von einer andere verdeckt wird (Abbildung 2.12 auf Seite 15): ˆ OnFreeze() - Actvity speichert den Zustand (z.b. UI Felder) ˆ OnRestart() - Signalisiert Activity, dass sie restartet wird 2.4.4 Sterben einer Activity Eine Activity kann vom Speicher gelöscht werden nur, wenn sie sich in Folgenden Zuständen bendet: ˆ Wenn sie in der Pause ist, sogar wenn sie immer noch lebt ˆ Wenn sie komplett von einer andere Activity überdeckt wird Alexander Shabagin 13

2.4.5 Services Abbildung 2.11: Lebenszyklus Die Services kommen bei den Anwendungen in Einsatz, die in Hintergrund arbeiten oder etwas längere ausrechnen sollen. z.b. Netzwerk Monitor oder Update Überprüfung. Service kann entweder von einer Activity oder von Bidnder gestartet werden. 2.4.6 Content Providers Content Providers kann man sich als Datenbank Server vorstellen. Seine Aufgabe ist Management der Zugrie auf die gespeicherte Daten, z.b SQLite. Wenn eine Anwendung ganz einfach ist, ist es nicht zwingend erforderlich einen Content Provider zu instanziieren. Wenn man dagegen eine kompliziertere Anwendung schreibt, in der mehrere Activities oder Services an die gemeinsame Daten zugreifen, dient der Content Provider als Zugangspunkt zu den diesen Daten. Das eigentliche Ziel eines Content Providers ist Daten-sharing Alexander Shabagin 14

Abbildung 2.12: Umschaltung zwischen den Activities zwischen den Anwendungen. Es bittet eindeutige URIs an, die für Anfrage, Zufügen, Löschen, usw. verwendet werden. (Abbildung 2.13 auf Seite 15) Abbildung 2.13: Content Providers 2.4.7 Broadcast receivers Eine Android Anwendung kann für eine Bearbeitung der Daten oder als eine Reaktion auf bestimmte Ereignisse (z.b. SMS) gestartet werden. (Abbildung 2.14 auf Seite 15) Abbildung 2.14: Broadcast receivers Alexander Shabagin 15

2.4.8 AndroidManifest.xml Alle Android Anwendung besitzen AndroidManifest.xml-Datei. Diese Datei beinhaltet die Information über Konguration, die eine richtige Installation der Anwendung ermöglicht. Auÿerdem enthält sie Klassennamen und Ereignistypen, die eine Anwendung verwendet, sowie die Rechte für derer Ausführung. Wenn eine Anwendung einen Internetzugang braucht (z.b. um eine Datei herunterzuladen), muss die Erlaubnis dafür explizit in Manifest Datei beschrieben werden. Solch ein deklariert aufgeschriebener Schutz, minimiert die Wahrscheinlichkeit, dass ein nicht korrekt programmiertes Program dem Gerät Schaden zufügt. (Abbildung 2.15 auf Seite 16) Abbildung 2.15: AndroidManifest.xml Alexander Shabagin 16

Literaturverzeichnis Literaturverzeichnis discuz discuz: http://discuz-android.blogspot.com/2008/10/google-androidnative-libc-bionic.html. Hashimi und Komatineni Hashimi, Sayed Y. ; Komatineni, Satya: Pro Android. APRESS Google Google: http://developer.android.com/intl/zh-tw/guide/basics/whatis-android.html. IBM IBM: http://www.ibm.com/developerworks/ru/library/os-androiddevel/index.html. SEN SEN, W. FRANK ABLESON CHARLIE COLLINS R.: Unlocking Android (A DEVELOPERS GUIDE). MANNING Wikipedia Wikipedia: http://de.wikipedia.org/wiki/android Alexander Shabagin 17