From 5bbe2ca10a09db4c444ce98f4ddea501e7c9be22 Mon Sep 17 00:00:00 2001
From: Patrick Hornecker
Date: Sat, 20 Feb 2010 12:42:23 +0100
Subject: few code work and tex source

---
 ausarbeitung/Tutorial.tex | 41 +++++++++++++++++++++--------------------
 1 file changed, 21 insertions(+), 20 deletions(-)

(limited to 'ausarbeitung/Tutorial.tex')

diff --git a/ausarbeitung/Tutorial.tex b/ausarbeitung/Tutorial.tex
index 990cb38..b824145 100644
--- a/ausarbeitung/Tutorial.tex
+++ b/ausarbeitung/Tutorial.tex
@@ -6,7 +6,7 @@ Programm für das System zu entwickeln. \newline
 
 Die Problematik der Plattformwahl aufgrund von vorhandener oder nicht vorhandener Hardware ist nicht allzu groß. Die meisten
 aktuellen Geräte haben mittlerweile eine ähnliche Ausstattung was Speicher und Prozessorleistung
-angeht.Auch erweiterte Features wie GPS oder Lagesensoren sind in den meisten aktuellen Geräten vorhanden oder werden in der
+angeht.Auch erweiterte Features wie GPS oder Lagesensoren sind in den meisten, aktuellen Geräten vorhanden oder werden in der
 nächsten Generation, des jeweiligen Herstellers, vorhanden sein.\newline
 
 Die Wahl der Plattform aufgrund des Betriebssystemes gestalltet sich schon schwerer. Bei geeigneter Auswahl ist es möglich die
@@ -16,23 +16,24 @@ Besitzer eines \textit{Palm Pre's} sicherzustellen.\newline
 Des weiteren ist es auch von Interesse, ob andere Programme und Bibliotheken auf den jeweiligen Systemen ausführbar sind.
 Es wäre also ein \textit{Layer} interessant, welchen man mit den immer gleichen Programmbibliotheken nutzen kann, unabhängig was
 diesem \textit{Layer} für ein System zu Grunde liegt. Dieser \textit{Layer} soll also eine Schnittstelle zwischen Anwendungen und
-Betriebssytem sein. Ein \textit{Layer} welcher genau diese Anforderungen erfüllt ist der \textit{Portable Operating
+Betriebssytem repräsentieren. Ein \textit{Layer} welcher genau diese Anforderungen erfüllt ist der \textit{Portable Operating
 System Interface for Unix Layer (POSIX Layer)} \citep{POSIX}. Mit diesem \textit{Layer} stehen eine große Menge an aktuellen
 Bibliotheken, aus der \textit{Open-Source} Gemeinde, zur Verfügung. Diese haben den Vorteil, dass sie aktiv
-weiterentwickelt werden und auch ständig neue Bibliotheken erscheinen. Anwendungen die auf einem \textit{Linux}-System entwickelt
-wurden können somit ohne weiteres auf ein anderes, \textit{POSIX} kompatibles System, portiert werden.\newline
-Auch die Frage der unterstützten Programmiersprachen stellt sich, da das Programm nicht ständig neu implementiert werden soll,
+weiterentwickelt werden und auch ständig neue Bibliotheken hinzukommen. Anwendungen, die auf einem \textit{Linux}-System
+entwickelt wurden können somit ohne weiteres auf ein anderes, \textit{POSIX} kompatibles System, portiert werden.\newline
+Auch die Frage der unterstützten Programmiersprachen stellt sich, da das Programm nicht ständig neu implementiert werden soll
 wenn es auf ein neues Gerät portiert wird.\newline
 
 \subsection{Betriebsysteme für mobile Geräte}
 
-Wie schon erwähnt ist die Wahl einer geeigneten Plattform nicht unerheblich. Im Folgenden werden fünf Betriebssysteme für mobile
+Wie schon erwähnt ist die Wahl einer geeigneten Plattform von nicht unerheblicher Wichtigkeit, da hier schon indirekt eine
+Vorauswahl an Nutzbaren Bibliotheken und Programmiersprachen getroffen wird. Im Folgenden werden fünf Betriebssysteme für mobile
 Plattformen vorgestellt und auf deren Portierungsmöglichkeiten eingegangen.
 
 \subsubsection{Windows Mobile}
 
 Der wohl bekannteste Vertreter ist \textit{Windows Mobile}. Die aktuelle Version 6.5 wurde von Microsoft
-auch \textit{Windows Phone} betitelt. Das gesamte Betriebssystem basiert auf der \textit{Windows Win32 API} und lässt
+mit \textit{Windows Phone} betitelt. Das gesamte Betriebssystem basiert auf der \textit{Windows Win32 API} und lässt
 Ähnlichkeiten zu den Desktop-Varianten der Windows-Familie erkennen. \textit{Windows Phone} besitzt keinen
 \textit{POSIX Layer}, allerdings existiert ein \textit{Cross-Compiler} names \textit{CeGCC} \citep{CeGCC}, mit welchem
 Programme die in \textit{C}/\textit{C++} geschrieben wurden für diese Plattform kompiliert werden können.\newline
@@ -52,13 +53,13 @@ Programme die in \textit{C}/\textit{C++} geschrieben wurden für diese Plattform
 
 Das von \textit{Google} entwickelte \textit{Android} \citep{Android} setzt auf einen Linux-Kernel der Version 2.6 auf. Dieser
 Kernel kümmert sich um die Prozess- und Speicherverwaltung, Kommunikation sowie um die Hardwareabstraktion. Auf diese Grundlage
-setzt ein virtuelle Java-Maschine auf, in welcher \textit{Android} läuft.\newline
+setzt eine virtuelle Java-Maschine auf, in welcher \textit{Android} läuft.\newline
 
 Zum Implementieren von Anwendungen stellt \textit{Google} eigens ein \textit{SDK} bereit. Dieses greift allerdings nur auf
 \textit{Java}-Bibliotheken zurück, womit sich die nutzbaren Sprachen im Moment eben auf diese beschränken. Des weiteren bietet
 \textit{Google} mittlerweile ein \textit{NDK} an, mit desen Hilfe es auch möglich ist Programme in \textit{C} oder \textit{C++}
 zu schreiben. In diesem Paket werden auch eine Hand voll Bibliotheken mitgeliefert, welchen stabil laufen. \textit{Google} rät
-allerdings von der Nutzung anderer Bibliotheken ab, da nur die mit dem \textit{NDK} gelieferten stabil auf den Geräten sind.
+allerdings von der Nutzung anderer Bibliotheken ab, da nur die mit dem \textit{NDK} laut Hersteller stabil auf den Geräten laufen.
 Allerdings ergeben sich hier für die Zukunft, sobald mehr Bibliotheken unterstützt werden, sicher
 interessante Möglichkeiten für Anwendungsentwicklung und Portierung.\newline
 
@@ -75,10 +76,10 @@ Layer} zu nutzen.\newline
 
 Bei \textit{iPhoneOS} \citep{iPhoneOS} handelt es sich um eine abgeänderte und angepasste Version von MacOS. Es wurde eigens für
 das iPhone entwickelt. Auch für dieses System existiert ein \textit{SDK}, welches allerdings nur die Sprache \textit{Objective-C}
-unterstützt. Des weiteren fehlt auch eine Unterstützung des \textit{POSIX Layers}. Der größte Kritikpunkt an diesem System dürfte
-allerdings das fehlen von \textit{Multitasking}-Unterstützung sein. Somit ist es nicht möglich zwei Anwendungen parallel
-auszuführen, was gerade \textit{location awareness} Anwendungen stark einschränkt, da hier häufig weitere Dienste im
-Hintergrund aktiv sein sollten.\newline
+unterstützt. Des weiteren fehlt auch eine Unterstützung des \textit{POSIX Layers} oder einer anderen Abstraktion dieser Art. Der
+größte Kritikpunkt an diesem System dürfte allerdings das fehlen von \textit{Multitasking}-Unterstützung sein. Somit ist es nicht
+möglich zwei Anwendungen parallel auszuführen, was gerade \textit{location awareness} Anwendungen stark einschränkt, da hier
+häufig weitere Dienste im Hintergrund aktiv sein sollten.\newline
 
 \subsubsection{Symbian OS}
 
@@ -90,7 +91,7 @@ ermöglicht Programme direkt zu portieren. Des weitern besitzt \textit{Symian OS
 \subsubsection{Zielplattform}
 
 Die Wahl der Zielplattform ist auf \textit{Windows Mobile} gefallen, da es hier möglich ist das Programm in \textit{C} zu
-schreiben und dann im Anschluss nach \textit{Windows Mobile} zu portieren. \newline
+schreiben und dann im Anschluss zu portieren. \newline
 \textit{iPhoneOS} wurde aufgrund seiner mangelnden \textit{Multitasking}-Unterstützung ausgeschlossen. Diese ist für den
 geplanten Dienst wichtig, da hier Prozesse im Hintergund stattfinden werden und dies auf einem solchen System nicht realisierbar
 wäre. \textit{Android} hat zwar eine \textit{C} Unterstützung, allerdings gibt der Hersteller an das nicht alle Bibliotheken
@@ -100,13 +101,13 @@ kompilieren.
 
 \subsection{Softwaregrundlagen}
 
-Aufgrund der gewählten Zielplattform und Programmiersprache muss nun eine Möglichkeit gefunden werden das Programm sowohl für die
+Anhand der gewählten Zielplattform und Programmiersprache muss nun eine Möglichkeit gefunden werden das Programm sowohl für die
 jeweiligen Plattformen zu kompilieren, sowie die graphischen Elemente auf den Plattformen darzustellen.
 
 \subsubsection{CeGCC}
 
 Da \textit{Windows Mobile} und die Programmiersprache \textit{C} genutzt wird, wird der \textit{CeGCC} als
-\textit{Cross-Compiler} verwendet. Mit ihm ist es möglich \textit{C} Programmcode, der unter \textit{Linux} entwickelt wurde nach
+\textit{Cross-Compiler} verwendet. Mit ihm ist es möglich \textit{C} Programmcode, der unter \textit{Linux} entwickelt wurde, nach
 \textit{Windows Mobile} zu portieren. Bei \textit{CeGCC} handelt es sich um ein \textit{Open-Source} Projekt, bassierend auf dem
 \textit{GCC}. Mit diesem Tool können in einer \textit{Linux} Umgebung die für \textit{Windows Mobile} benötigten Bibliotheken und
 ausführbaren Dateien erstellt werden.\newline
@@ -114,8 +115,8 @@ ausführbaren Dateien erstellt werden.\newline
 Es wird zwischen zwei verschiedenen Arten des \textit{CeGCC's} unterschieden. Zum Einen \textit{CeGCC}, zum Anderen
 \textit{mingw32ce}.
 Der Unterschied zwischen diesen beiden Kompilern besteht darin, dass ersterer nur dann benutzt wird, wenn man nur Linux
-Bibliotheken einbinden möchte. Der \textit{mingw32ce}-Kompiler wird dann gebraucht, wenn man auch \textit{Windows Mobile}
-Bibliotheken nutzt.\newline
+Bibliotheken einbinden möchte. Der \textit{mingw32ce}-Kompiler wird dann gebraucht, wenn auch \textit{Windows Mobile}
+Bibliotheken zum Einstatz kommen.\newline
 
 Soll das Programm nun für \textit{WebOS} oder \textit{SymbianOS} portiert werden, kann dies auf unter \textit{Linux} normal
 kompiliert werden.
@@ -124,7 +125,7 @@ kompiliert werden.
 
 Neben einem \textit{Cross-Compiler} wird noch ein geeignetes Frontend benötigt, um das Programm auch für den Benutzer
 ansprechend darzustellen sowie eine einfache Bedienbarkeit zu garantieren. Dieses Frontend sollte auch in \textit{C} oder
-\textit{C++} geschrieben sein um auch hier die Portierbarkeit für die gewünschten Plattformen zu garantieren. Hier fiel die Wahl
+\textit{C++} geschrieben sein, um auch hier die Portierbarkeit für die gewünschten Plattformen zu garantieren. Hier fiel die Wahl
 auf das freie, seit 1997 existierende, \textit{Enlightenment} \citep{efl} Projekt. Dieses Softwarepaket unterstützt alle gängigen
 Plattformen wie Windows, Linux, BSD und MacOS. Es beinhaltet einen eigenen \textit{Window-Manager} names \textit{Elementary}.
 \textit{Elementary} bietet ein umfangreiches Paket an grafischen Elementen die genutzt und frei angeordnet werden können.
@@ -145,7 +146,7 @@ Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und\textit{Elementary
  \caption{Aufbau von \textit{Enlightenment}}
 \end{figure}
 
-Bei \textit{Ecore} handelt es sich um eine \textit{library} welche das serialisieren von mehreren Programmteilen ermöglicht und
+Bei \textit{Ecore} handelt es sich um eine Bibliothek, welche das serialisieren von mehreren Programmteilen ermöglicht und
 für den Betrieb auf mobilen Geräten optimiert wurde. \textit{Edje} ist eine komplexe grafische Design und Layout Bibliothek,
 welche mit einer internen \textit{state machine} und einem Zustandsgraphen speichert was wo, in welcher Farbe und wie sichtbar
 ist und gezeichnet werden soll. Die Bibliothek \textit{Evas} ist eine \textit{canvas}-Bibliothek, welche sich um Effekte wie
-- 
cgit v1.2.3-55-g7522

