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.tex~76
1 files changed, 44 insertions, 32 deletions
diff --git a/ausarbeitung/Tutorial.tex~ b/ausarbeitung/Tutorial.tex~
index febf0dc..52dd368 100644
--- a/ausarbeitung/Tutorial.tex~
+++ b/ausarbeitung/Tutorial.tex~
@@ -1,7 +1,7 @@
\section{Technische Grundlagen}
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
+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
@@ -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