summaryrefslogtreecommitdiffstats
path: root/ausarbeitung/Tutorial.tex
diff options
context:
space:
mode:
authorPatrick Hornecker2010-02-26 13:06:10 +0100
committerPatrick Hornecker2010-02-26 13:06:10 +0100
commit53a79046110073bf7d4ead6320794940c9507e5e (patch)
treed6409210f662eccf174d370554c83962fb433c6c /ausarbeitung/Tutorial.tex
parenttex source and code modifications (diff)
downloadfriendfinder-53a79046110073bf7d4ead6320794940c9507e5e.tar.gz
friendfinder-53a79046110073bf7d4ead6320794940c9507e5e.tar.xz
friendfinder-53a79046110073bf7d4ead6320794940c9507e5e.zip
tex source
Diffstat (limited to 'ausarbeitung/Tutorial.tex')
-rw-r--r--ausarbeitung/Tutorial.tex74
1 files changed, 43 insertions, 31 deletions
diff --git a/ausarbeitung/Tutorial.tex b/ausarbeitung/Tutorial.tex
index f4ffcc7..52dd368 100644
--- a/ausarbeitung/Tutorial.tex
+++ b/ausarbeitung/Tutorial.tex
@@ -16,7 +16,8 @@ Systemen ausführbar sind. Es wird also ein \textit{Layer} benötigt, mit welche
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)} \footnote{POSIX \url{http://standards.ieee.org/regauth/posix/}} dar. Mit diesem \textit{Layer} stehen
+Unix Layer (POSIX Layer)}\footnote{POSIX http://standards.ieee.org/regauth/posix/ [Online; letzter Aufruf 16.02.2010]} 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
@@ -29,24 +30,27 @@ nicht immer komplett neu implementieren.
\subsection{Betriebsysteme für mobile Geräte}
Durch die Wahl eines Betriebsystemes wird 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
+getroffen. Im Folgenden werden fünf Betriebssysteme für mobile Plattformen vorgestellt und auf deren Portierungsmöglichkeiten
eingegangen.
\subsubsection{Windows Mobile}
-Das von Microsoft entwickelte \textit{Windows Mobile}
-\footnote{Windows Mobile \url{http://www.microsoft.com/windowsmobile/de-de/default.mspx}} in der aktuellen Version 6.5 verfügbar.
+Das von Microsoft entwickelte \textit{Windows Mobile}\footnote{Windows Mobile
+http://www.microsoft.com/windowsmobile/de-de/default.mspx\newline[Online; letzter Aufruf 25.01.2010]} in der aktuellen
+Version 6.5
+verfügbar.
Das gesamte Betriebssystem basiert
auf der \textit{Windows Win32 API} und lässt Ähnlichkeiten zu den Desktop-Varianten der Windows-Familie erkennen. Es existiert
-ein \textit{Cross-Compiler} names \textit{CeGCC} \footnote{CeGCC \url{http://cegcc.sourceforge.net/}},
-mit welchem Programme die in \textit{C}/\textit{C++} geschrieben wurden für diese Plattform kompiliert werden können.
+ein \textit{Cross-Compiler} names \textit{CeGCC}\footnote{CeGCC http://cegcc.sourceforge.net/ [Online; letzter Aufruf
+24.02.2010]}, mit welchem in \textit{C}/\textit{C++} geschriebene Programme für diese Plattform kompiliert und portiert werden
+können.
\subsubsection{Android}
-Das von \textit{Google} entwickelte \textit{Android} \footnote{Android \url{http://www.android.com/}} setzt auf einen
-\textit{Linux-Kernel} der Version 2.6 auf. Dieser \textit{Kernel} kümmert sich um die Prozess- und Speicherverwaltung,
-Kommunikation sowie um die Hardwareabstraktion. Auf diese Grundlage setzt eine virtuelle Java-Maschine auf, in welcher
-\textit{Android} läuft.\newline
+Das von \textit{Google} entwickelte \textit{Android}\footnote{Android http://www.android.com/ [Online; letzter Aufruf
+25.01.2010]} setzt auf einen \textit{Linux-Kernel} der Version 2.6 auf. Dieser \textit{Kernel} kümmert sich um die Prozess- und
+Speicherverwaltung, Kommunikation sowie um die Hardwareabstraktion. Auf diese Grundlage 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 Anzahl der nutzbaren Sprachen im Moment eben auf diese eine beschränkt. Des
weiteren bietet \textit{Google} ein \textit{NDK} an, mit desen Hilfe es auch möglich ist Programme in \textit{C} oder
@@ -54,20 +58,24 @@ weiteren bietet \textit{Google} ein \textit{NDK} an, mit desen Hilfe es auch mö
\subsubsection{WebOS}
-\textit{WebOS} \footnote{WebOS \url{http://palmwebos.org/}} wurde von \textit{Palm} als Nachfolger von \textit{PalmOS}
-\footnote{PalmOS \url{http://www.palm.com/}} entwickelt und ist momentan nur auf zwei Geräten zu finden: Auf dem \textit{Palm Pre}
+\textit{WebOS}\footnote{WebOS http://palmwebos.org/ [Online; letzter Aufruf 25.01.2010]} wurde von \textit{Palm} als
+Nachfolger von \textit{PalmOS}\footnote{PalmOS http://www.palm.com/ [Online; letzter Aufruf 25.01.2010]} entwickelt und ist
+momentan nur auf zwei Geräten zu finden: Auf dem \textit{Palm Pre}
und dem \textit{Palm Pixi}.\newline
Unter der Benutzeroberfläche von \textit{WebOS} arbeitet ein \textit{Linux-Kernel} in der Version 2.6. Somit ist es möglich, wenn
-man Zugriff auf diesen Kernel hat, \textit{POSIX}-kompatible Software unter \textit{WebOS} zu betreiben.
+man Zugriff auf das zugrundeliegende System hat, \textit{POSIX}-kompatible Software unter \textit{WebOS} zu betreiben.
Für dieses Betriebssystem existiert ein \textit{SDK} für \textit{HTML5}, \textit{CSS} und \textit{Java}. Ein weiteres, welches im
März 2010 veröffentlicht wird, soll die \textit{C} und \textit{C++} Entwicklung ermöglichen.
\subsubsection{iPhone OS}
-Bei \textit{iPhoneOS} \footnote{iPhoneOS \url{http://www.apple.com/de/iphone/}} handelt es sich um eine abgeänderte und angepasste
-Version von MacOS. Somit bassiert auch der Kernel von \textit{iPhoneOS} sowohl auf teilen eines \textit{BSD}- \footnote{BSD
-\url{https://www.bsdwiki.de/}} sowie \textit{Mach}-Kernels
-\footnote{Mach \url{http://www.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html}}. Dieses Betriebssystem wurde eigens für das
+Bei \textit{iPhoneOS}\footnote{iPhoneOS http://www.apple.com/de/iphone/ [Online; letzter Aufruf 03.02.2010]} handelt es sich
+um eine abgeänderte und angepasste Version von MacOS. Somit bassiert auch der Kernel von \textit{iPhoneOS} sowohl auf teilen eines
+\textit{BSD}-\footnote{BSD
+https://www.bsdwiki.de/ [Online; letzter Aufruf 24.02.2010]} sowie \textit{Mach}-Kernels\footnote{Mach
+http://www.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html\newline[Online; letzter Aufruf 24.02.2010]}. Dieses
+Betriebssystem
+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. Der größte Kritikpunkt an diesem System ist das Fehlen von \textit{Multitasking}-Unterstützung. Somit ist es nicht
möglich zwei Anwendungen parallel auszuführen, was gerade \textit{location awareness} Anwendungen stark einschränkt, da hier
@@ -75,11 +83,11 @@ häufig weitere Dienste im Hintergrund aktiv sein sollten.
\subsubsection{Symbian OS}
-\textit{SymbianOS} \footnote{SymbianOS \url{http://www.symbian.org/}} ist eine Betriebssystem welches vorzugsweise auf Geräten der
-Firma \textit{Nokia} zum
-Einsatz kommt. Es existiert ein \textit{SDK}, was neben \textit{C}/\textit{C++} auch noch weitere Sprachen wie zum Beispiel
-\textit{Python} oder \textit{Java} unterstützt. Mit dem \textit{SDK} wird auch ein \textit{Cross-Compiler} angeboten, welcher es
-ermöglicht Programme direkt zu portieren. Des weitern besitzt \textit{Symian OS} einen \textit{POSIX Layer}.
+\textit{SymbianOS}\footnote{SymbianOS http://www.symbian.org/ [Online; letzter Aufruf 03.02.2010]} ist eine Betriebssystem
+welches vorzugsweise auf Geräten der Firma \textit{Nokia} zum Einsatz kommt. Es existiert ein \textit{SDK}, was neben
+\textit{C}/\textit{C++} auch noch weitere Sprachen wie zum Beispiel \textit{Python} oder \textit{Java} unterstützt. Mit dem
+\textit{SDK} wird auch ein \textit{Cross-Compiler} angeboten, welcher es ermöglicht Programme direkt zu portieren. Des weitern
+besitzt \textit{Symian OS} einen \textit{POSIX Layer}.
\subsubsection{Zielplattform}
@@ -88,8 +96,9 @@ geplanten Dienst wichtig, da bei diesem Prozesse im Hintergund notwendig sind un
realisierbar wäre. \textit{Android} hat zwar eine \textit{C} Unterstützung, allerdings gibt der Hersteller an das nur die
mit dem \textit{NDK} verfügbaren Bibliotheken zum momentanen Zeitpunkt stabil verfügbar sind. Dies schränkt die
Entwicklung stark ein und ist für das zu entwickelnde Programm nicht geeignet.\newline
+Unter Nutzung des \textit{CeGCC's} wird das Programm für \textit{Windows Mobile} portiert werden.
Aufgrund der Implementierung in \textit{C} ist es auch möglich das Programm für \textit{WebOS} und \textit{SymbianOS} zu
-kompilieren.
+kompilieren und im Anschluss auszuführen.
\subsection{Softwaregrundlagen}
@@ -104,10 +113,11 @@ Mit dem \textit{CeGCC} ist es möglich \textit{C} Programmcode, der unter \texti
ausführbaren Dateien erstellt werden.\newline
Der \textit{CeGCC} kann in zwei unterschiedlichen Versionen genutzt werden. Zum einen bietet der \textit{wince-mingw32ce} eine
Menge an Tools mit welchen man native \textit{Windows Mobile} Applikationen erstellen kann. Hierzu wird eine
-Portierung der \textit{GNU} \footnote{GNU \url{http://www.gnu.org/}} Enwicklungswergzeuge aus dem \textit{MinGW} \footnote{MinGW
-http://mingw.org/} Projekt genutzt. Diese kompilieren und linken Code, um diesen unter \textit{Windows Mobile} ausführbar zu
-machen. Die andere Möglichkeit stellt die Nutzung des \textit{arm-cegcc} dar. Mit diesem kann \textit{POSIX}
-kompatibler Programmcoder nach \textit{Windows Mobile} portiert werden. %verfeinern
+Portierung der \textit{GNU}\footnote{GNU http://www.gnu.org/ [Online; letzter Aufruf 03.02.2010]} Enwicklungswergzeuge aus
+dem \textit{MinGW} \footnote{MinGW http://mingw.org/ [Online; letzter Aufruf 03.02.2010]} Projekt genutzt. Diese
+kompilieren und linken Code, um diesen unter \textit{Windows Mobile} ausführbar zu machen. Die andere Möglichkeit stellt die
+Nutzung des \textit{arm-cegcc} dar. Mit diesem kann \textit{POSIX} kompatibler Programmcoder nach \textit{Windows Mobile} portiert
+werden. %verfeinern
%# arm-mingw32ce : toolset to build native Windows CE applications
%# arm-cegcc : toolset to port unix source to Windows CE
@@ -126,15 +136,16 @@ kompatibler Programmcoder nach \textit{Windows Mobile} portiert werden. %verfein
Neben einem \textit{Cross-Compiler} wird noch ein geeignetes Frontend benötigt, um das Programm auch für den Benutzer
ansprechend darzustellen und 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 erhalten. Genutzt wird das
-freie, seit 1997 existierende, \textit{Enlightenment} \footnote{Elementray \url{http://www.enlightenment.org/}} 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.
+freie, seit 1997 existierende, \textit{Enlightenment} \footnote{Elementray http://www.enlightenment.org/ [Online; letzter
+Aufruf 20.01.2010]} 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.
\begin{figure}[h]
\centering
\includegraphics[width=2.2cm]{Bilder/elm-app-01_2} \includegraphics[width=2.7cm]{Bilder/elm-app-02_2}
\caption{Beispiele verschiedener \textit{Elementary} Icons}
+ \label{efl}
\end{figure}
\textit{Elementary} setzt auf die \textit{Enlightenment Foundation Libraries (EFL)} auf. Diese Bibliotheken werden zum Teil von
@@ -145,6 +156,7 @@ Pakete \textit{Evil, Eina, Eet, Embryo, Evas, Ecore, Edje} und\textit{Elementary
\centering
\includegraphics[width=2.7cm]{Bilder/efl}
\caption{Aufbau von \textit{Enlightenment}}
+ \label{enl}
\end{figure}
Bei \textit{Ecore} handelt es sich um eine Bibliothek, welche das Serialisieren von mehreren Programmteilen ermöglicht und