summaryrefslogtreecommitdiffstats
path: root/ausarbeitung/Tutorial.tex.backup
diff options
context:
space:
mode:
Diffstat (limited to 'ausarbeitung/Tutorial.tex.backup')
-rw-r--r--ausarbeitung/Tutorial.tex.backup100
1 files changed, 54 insertions, 46 deletions
diff --git a/ausarbeitung/Tutorial.tex.backup b/ausarbeitung/Tutorial.tex.backup
index f33eb1f..c4ee8cb 100644
--- a/ausarbeitung/Tutorial.tex.backup
+++ b/ausarbeitung/Tutorial.tex.backup
@@ -1,34 +1,41 @@
\section{Technische Grundlagen}
-Ein wichtiger Punkt ist auch die Wahl der passenden Plattform. Bei geeigneter Wahl dieser ist es möglich die Software auf mehrere
-Betriebssysteme für Smart Phones zu portieren und somit eine mehrfache Implementation zu vermeiden. Es wäre somit auch möglich
-viele Nutzer zu erreichen und auch die Kommunikation zwischen einem Besitzer eines \textit{iPhones} sowie dem Besitzer eines
-\textit{Palm Pre} sicherzustellen.\newline
+Die Wahl der Plattform hängt von zwei verschiedenen Faktoren ab. Zum einen stellt sich die Frage, ob die Handymodelle die
+benötigte Hardware, wie zum Beispiel \textit{GPS} oder eine Kamera besitzen, zum anderen ob Schnittstellen vorhanden sind um das
+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 \textit{GPS} oder Lagesensoren sind in den meisten, aktuellen Geräten vorhanden oder werden in der nächsten Generation, des
+jeweiligen Herstellers, vorhanden sein.\newline
+
+Es gestalltet sich schon schwieriger eine Plattform aufgrund des Betriebssystemes zu wählen. Bei geeigneter Auswahl ist es
+möglich die Software auf mehrere Betriebssysteme für Smartphones zu portieren und somit eine mehrfache Implementation zu
+vermeiden. Es wäre somit auch möglich viele Nutzer zu erreichen und die Kommunikation zwischen einem Besitzer eines
+\textit{iPhones} sowie dem 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.
-Grundlegend sind Betriebsysteme interessant, die über einen \textit{Layer} verfügen mit welchem man eine große Anzahl an
-Bibliotheken und Schnittstellen ansprechen kann. Dieser Layer soll also eine Schnittstelle zwischen Anwendungen und Betriebssytem
-sein. Ein solcher ist der \textit{Portable Operating System Interface for UniX} Layer (\textit{POSIX Layer}). Mit diesem
-LayerDurch stehen eine große Menge an aktuellen Bibliotheken, aus der \textit{Open-Source} Gemeinde, zur Verfügung welche auch
-aktiv weiterentwickelt werden. Anwendungen die auf einem \textit{Linux}-System entwickelt wurden können somit auch 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,
+Es wäre also ein \textit{Layer} von Interesse mit welchem immer die gleichen Programmbibliotheken genutzen werden können. Dabei
+sollte das zugrundeliegende System unabhängig von diesem \textit{Layer} sein. Es soll also damit vom zugrundeliegenden
+Betriebssystem abstrahiert werden. Ein entsprechender \textit{Layer} stellt der \textit{Portable Operating System Interface for
+Unix Layer (POSIX Layer)} \citep{POSIX} dar. 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 hinzukommen. Anwendungen, die auf einem \textit{Linux}-System
+entwickelt wurden können somit ohne weiteres auf ein anderes, \textit{POSIX} kompatibles System, portiert werden, ohne das
+die genutzten Bibliotheken ausgetauscht werden müssen.\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
-Die Problematik der Plattformwahl aufgrund von vorhandener oder nicht vorhandener Hardware ist im Vergleich nicht allzu
-groß. So haben mittlerweile die meisten der aktuellen Geräte 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 nächsten
-Generation, des jeweiligen Herstellers, vorhanden sein.\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
-ähnlichkeiten zu den Desktop-Varianten der Windows-Familie erkennen. \textit{Windows Phone} besitzt keinen
+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
@@ -47,14 +54,14 @@ 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{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 stabil
-sind. Allerdings ergeben sich hier für die Zukunft, sobald mehr Bibliotheken stabil unterstützt werden, sicher
+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
\subsubsection{WebOS}
@@ -62,18 +69,18 @@ interessante Möglichkeiten für Anwendungsentwicklung und Portierung.\newline
\textit{WebOS} \citep{WebOS} wurde von \textit{Palm} als Nachfolger von \textit{PalmOS} entwickelt und ist momentan nur auf zwei
Geräten zu finden: Auf dem \textit{Palm Pre} und dem \textit{Palm Pixi}.\newline
Für dieses Betriebssystem existiert sowohl ein \textit{SDK} für \textit{HTML5}, \textit{CSS} und \textit{Java} sowie ein
-weiteres, welches im März 2010 veröffentlicht wird, für \textit{C} und \textit{C++}. Des weiteren existiert
-eine Erweiterung des \textit{POSIX Layers} names \textit{PIPS}. Es werden somit mehrere Programmiersprachen unterstützt
-und es besteht die Möglichkeit den \textit{POSIX Layer} zu nutzen.\newline
+weiteres, welches im März 2010 veröffentlicht wird, für \textit{C} und \textit{C++}. Des weiteren beinhaltet \textit{WebOS} einen
+einen \textit{POSIX Layers}. Somit werden mehrere Programmiersprachen unterstützt und es besteht die Möglichkeit den \textit{POSIX
+Layer} zu nutzen.\newline
\subsubsection{iPhone OS}
-Bei \textit{iPhoneOS} \citep{iPhoneOS} handelt es sich um eine portierte 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
+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} 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}
@@ -85,31 +92,32 @@ 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 auf 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
+wäre. \textit{Android} hat zwar eine \textit{C} Unterstützung, allerdings gibt der Hersteller an das nicht alle Bibliotheken
stabil sind.\newline
Aufgrund der Implementierung in \textit{C} ist es auch möglich das Programm für \textit{WebOS} und \textit{SymbianOS} zu
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} \citep{CeGCC} als
-\textit{Cross-Compiler} verwendet. Mit ihm ist es möglich Programmcode, der unter \textit{Linux} entwickelt wurde nach
+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{Windows Mobile} zu portieren. Bei \textit{CeGCC} handelt es sich um ein \textit{Open-Source} Projekt, bassierend auf dem
-GCC. Mit diesem Tool können in einer \textit{Linux} Umgebung die für \textit{Windows Mobile} benötigten Bibliotheken und
+\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
-Es wird zwischen zwei verschiedenen Arten des CeGCC's unterschieden. Zum Einen \textit{CeGCC}, zum Anderen \textit{mingw32ce}.
+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 nutzt. Der \textit{mingw32ce}-Kompiler wird dann gebraucht, wenn man auch \textit{Windows Mobile}
-Bibliotheken einbinden möchte.\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.
@@ -117,8 +125,8 @@ kompiliert werden.
\subsubsection{Enlightenment}
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
+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
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.
@@ -139,11 +147,11 @@ 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 wird. Die Bibliothek \textit{Evas} ist eine \textit{canvas}-Bibliothek, welche sich um Effekte wie
+ist und gezeichnet werden soll. Die Bibliothek \textit{Evas} ist eine \textit{canvas}-Bibliothek, welche sich um Effekte wie
Alpha-Blending oder das skalieren von Bildern kümmert. \textit{Eina} stellt verschiedene, optimierte Datentypen und Tools
bereit.\newline
-Im Anhang 1 ist eine genaue Anweisung zu finden, um \textit{Enlightenment} für \textit{Windows Mobile} zu erstellen. \ No newline at end of file
+Im Anhang 1 sind genaue Anweisungen zu finden, um \textit{Enlightenment} für \textit{Windows Mobile} zu portieren. \ No newline at end of file