Beruflich Dokumente
Kultur Dokumente
vorgelegt von
Philipp Leitner
Inhaltsangabe 3
Abbildungsverzeichnis 4
1 Abstract 5
2 Einführung 6
4 Android 10
4.1 Geschichte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.2 Beschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.3 Einsatzgebiet . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.4 Kritische Würdigung . . . . . . . . . . . . . . . . . . . . . . . 12
5 Entwurf 13
6 Umsetzung 14
6.1 Die Entwicklungsumgebung . . . . . . . . . . . . . . . . . . . 14
6.2 Die Schnittstelle zum Open Journal Systems . . . . . . . . . . 14
6.2.1 Kurze Einführung zum iPhoneGatewayPlugin . . . . . 14
6.3 Objektorientierte Programmierung . . . . . . . . . . . . . . . 15
6.4 Datenaustausch und Parsen der Informationen . . . . . . . . . 16
6.4.1 AsyncTask . . . . . . . . . . . . . . . . . . . . . . . . . 17
6.4.2 Der SAXParser und die Handler . . . . . . . . . . . . . 18
6.5 Die Logic und das Graphical User Interface (GUI) . . . . . . . 19
6.5.1 Das Speichern und Laden der Einstellungen . . . . . . 19
6.5.2 Activity . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6.5.3 Layout und View . . . . . . . . . . . . . . . . . . . . . 21
6.5.4 Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
6.5.5 Das AndroidManifest . . . . . . . . . . . . . . . . . . . 23
7 Anwendungsbeispiel 24
7.1 Ein neues Journal hinzufügen . . . . . . . . . . . . . . . . . . 24
7.2 Navigieren durch die Journale . . . . . . . . . . . . . . . . . . 25
7.3 Den Abstract eines Artikels lesen . . . . . . . . . . . . . . . . 26
7.4 Die Dateien zu einem Artikel ansehen und öffnen . . . . . . . 27
7.5 Ein Journal aus der Liste entfernen . . . . . . . . . . . . . . . 28
8 Diskussion 29
Literaturverzeichnis 33
Abbildungsverzeichnis
1 Weltkarte von Journalen, die Open Journal Systems verwenden 8
2 Android System Stack . . . . . . . . . . . . . . . . . . . . . . 11
3 Smartphone Käufe in den USA . . . . . . . . . . . . . . . . . 12
4 Aufbau zum objektorientierten Programmieren . . . . . . . . . 15
5 Communication Klassen-Diagramm . . . . . . . . . . . . . . . 16
6 Code-Auszug aus OJS for Android: Das Interface AsyncTask . 17
7 Code-Auszug aus OJS for Android: Der SAXParser . . . . . . 18
8 Code-Auszug aus OJS for Android: Der JournalHandler . . . . 18
9 Code-Auszug aus OJS for Android: Speichern der Journale . . 19
10 Code-Auszug aus OJS for Android: Laden von zuvor gespei-
cherten Journalen . . . . . . . . . . . . . . . . . . . . . . . . . 19
11 Code-Auszug aus OJS for Android: Activity, onCreate und
findViewById . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
12 Code-Auszug aus OJS for Android: XML-Layout von UI zum
Hinzufügen eines neuen Journals . . . . . . . . . . . . . . . . . 21
13 Code-Auszug aus OJS for Android: XML-Datei von Artikel-
Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
14 Code-Auszug aus OJS for Android: onCreateOptionsMenu . . 22
15 Code-Auszug aus OJS for Android: onOptionsItemsSelected . 22
16 Code-Auszug aus OJS for Android: Das AndroidManifest . . . 23
17 Ein neues Journal hinzufügen . . . . . . . . . . . . . . . . . . 24
18 Navigieren durch die Journale . . . . . . . . . . . . . . . . . . 25
19 Den Abstract eines Artikels lesen . . . . . . . . . . . . . . . . 26
20 Die Dateien zu einem Artikel ansehen und öffnen . . . . . . . 27
21 Ein Journal aus der Liste entfernen . . . . . . . . . . . . . . . 28
1 Abstract
Open Journal Systems (OJS) ist eine Open-Source-Software zur Verwaltung
und Veröffentlichung von Zeitschriften (Journalen). OJS wurde entwickelt
und veröffentlicht vom Public Knowledge Project und wird von vielen Open
Access Journalen verwendet [11].
Android ist ein auf Linux und Java basierendes Betriebssystem für Smartpho-
nes, welches von der Open Handset Alliance entwickelt wurde und steht unter
der freien Apache-Lizenz. Der Suchmaschinen-Riese Google steht besonders
hinter diesem Projekt und betreibt die größte Verkaufs- und Downloadplatt-
form für Android-Applikationen (Android Market). Weiters legt der Anteil
der Android basierenden Smartphone immer weiter zu. Er ist seit dem vier-
ten Quartal 2009 bis zum zweiten Quartal 2010 auf dem US-Markt von 6%
auf 27% angestiegen [7].
Diese Arbeit befasst sich mit der Verbindung der beiden aufsteigenden Pro-
dukte in der Theorie sowie in der Praxis. Es wird eine Applikation entwickelt,
die es ermöglicht auf Journale, Artikel und Inhalte sowie weitere relevante
Inhalte von OJS zuzugreifen, diese dem Benutzer mittels einer grafischen
Oberfläche (GUI) auf einem Smartphone mit Android Betriebssystem leicht
zugänglich zu machen und Kommentare über dieses abgeben zu können.
In den nächsten zwei Kapitel werden Open Journal Systems und das Be-
triebssystem Android genauer erklärt, ihre Entwicklung, ihren Einsatz und
wie die Vor- und Nachteile aussehen.
Kapitel 4 beschäftigt sich mit dem Entwurf und dem Aufbau der Arbeit. Die
Umsetzung der Applikation wird in Kapitel 5 erörtert, dabei wird genauer
auf die Punkte des Entwurfs eingegangen. Es wird auch die Wahl der Ent-
wicklungsumgebung und die Auswahl des Plugins behandelt. Ebenso wird die
Idee des objektorientierten Programmierens kurz diskutiert. Schlussendlich
wird dieses Kapitel mit Auszügen und Erläuterungen zum Programmiercode
abgerundet.
Wie die fertige Applikation verwendet wird, steht mit Beispielen erklärt in
Kapitel 6. Die beiden Kapitel 7 und 8 geben zum Schluss noch einmal eine
kurze Zusammenfassung, diskutieren Auffälligkeiten, Probleme und geben
einen Ausblick.
3 Open Journal Systems
3.1 Geschichte [9]
Das Public Knowledge Project (PKP) wurde 1998 von John Willinsky in
der Abteilung für sprachliche und literarische Bildung in der pädagogischen
Fakultät der University of British Columbia (UBC) eingeleitet. Es entstand
aus Willinskys Werk über the history of publishing and on postcolonial stu-
dies, sowie aus seinen Erfahrungen im Bereich der Entwicklung von bildender
Software bei dem Unternehmen Knowledge Architecture.
Im Jahr 2002 wurde Open Journal Systems als ein Meilenstein der Open
Access Bewegung hinzugefügt. Um die Entwicklung, Aufrechterhaltung und
Verbesserung der Software und dem Support für Online- und Open Access
Publishing von PKP zu verbessern, schlossen sich Willinsky, Lynn Copeland
(Universitäts Bibliothekar der SFU Library) und Rowly Lormier (Direktor
des Canadian Centre for Studies in Publishing) im Jahr 2005 zusammen.
Im Jahr 2007 wurde die erste Konferenz mit internationaler Beteiligung von
PKP abgehalten und dessen Ergebnisse in der Spezialausgabe im Oktober
2007 von First Monday publiziert. Außerdem nahm Willinsky die Position
als Professor for Education an der Stanford University an und gab somit
PKP einen vierten Sitz neben der SFU Library, SFU’s Canadian Centre of
Studies in Publishing und UBC’s Faculty of Education.
3.2 Beschreibung
Open Journal Systems (OJS) ist ein Publizierungs- und Verwaltungssystem,
welches von Public Knowledge Projekt (PKP) durch staatlich geförderte
Maßnahmen zur Ausweitung und Verbesserung des Zugangs zu Forschung
entwickelt wurde. Das System wurde zur lokalen Installation und Betrieb
konzipiert und erfordert minimale technische Fähigkeiten und Ausstattung.
Open Journal Systems ist bereits in der Version 2.x (zum Zeitpunkt der
Arbeit in stable 2.2.4 und development 2.3.2) vorhanden. Neben OJS gibt
es noch andere Open Source Journal Verwaltungs- und Publizierungssyste-
me, wie DpubsS, GAPworks, Hyperjournal, ePublishing Toolkit, OpenACS,
SOPS und TOPAZ [11].
3.3 Einsatzgebiet
Open Journal Systems wird in akademischen Einrichtungen rund um die
Welt eingesetzt. Die Aufteilung wird durch die Weltkarte in Abb. 1 veran-
schaulicht, auf der die Journale, die Open Journal Systems verwenden, pro
Kontinent eingezeichnet sind [10]. Im Juli 2010 waren 6600 Journals auf der
Seite des Public Knowledge Project gelistet, was jedoch nur einen Teil dar-
stellt, da für dies eine Registrierung notwendig ist [13].
Abb. 1: Weltkarte von Journalen, die Open Journal Systems verwenden [10]
3.4 Kritische Würdigung
Open Journal Systems kann sehr leicht installiert und verwaltet werden. Es
besitzt eine hervorragende Rollenaufteilung und bereits etliche Plugins mit
den unterschiedlichsten Funktionalitäten. Die gute Dokumentation geht auch
auf schwer verständliche Teile detaillierter ein.
Da OJS ständig weiterentwickelt wird und die Software unter der GNU GPL
V2 frei verwendet und modifiziert werden kann, ist sie für die Zukunft sehr
interessant. Zusätzlich stehen viele Tutorials und andere Hilfestellungen auf
der Webseite der PKP bereit [8].
4 Android
4.1 Geschichte
Das Unternehmen Android in Palo Alto, Californien/USA, von dem nicht
mehr bekannt war, als dass es Software für Mobiltelefone entwickelte, wurde
im Jahr 2003 gegründet. Die Erfolgsgeschichte beginnt jedoch erst 22 Monate
später, im Juli 2005, mit dessen stiller Übernahme durch Google und dem
Start der Entwicklung der Android Plattform. Die wichtigsten Mitarbeiter
bei Android waren Andy Rubin, Rich Miner, Nick Sears and Chris White
[1][4].
Ende 2007 wurde rund um die Android Plattform die Open Handset Al-
liance gegründet. Einige der prominentesten Mitglieder sind T-Mobile, Mo-
torola, Samsung, Sony Ericson, Toshiba, Vodafone, Intel, Texas Instrument
und Google. Die Ziele dieser Allianz sind schnelle Innovationen und besseres
Reagieren auf Kundenwünsche [1].
Im September 2008 ist das erste auf Android basierende Mobiltelefon von
T-Mobile auf den Markt gekommen und kurz darauf, im Oktober 2008, wur-
de die Android SDK Release Candidate 1.0 und dessen Source Code (unter
der Apache Open Source) der Öffentlichkeit zugänglich gemacht. Seit damals
werden in regelmäßigen Abständen neue Versionen veröffentlicht [1].
4.2 Beschreibung
Android stellt eine umfassendes Gesamtsystem, den Android System Stack
(siehe Abb. 2), für die Entwickler von mobilen Applikationen zur Verfü-
gung. Als Basis dient ein Linux Kernel in der Version 2.6, der eine Hard-
ware Abstraktionsschicht sowie Speichermanagement, Prozessmanagement,
Sicherheitsmodell und eine Netzwerk-Schnittstelle bereitstellt [6].
4.3 Einsatzgebiet
Ursprünglich war Android als Plattform für Mobiltelefone konzipiert, in-
zwischen findet man es auf einer Vielzahl verschiedener Gerätetypen, vom
Tablet-PC und Netbooks bis hin zu Home-Entertainment und Auto-Infotainment
[2].
Wie in Abb. 3 sichtbar, legt Android seit dem vierten Quartal 2009 einen
geradzu kometenhaften Aufstieg hin, damals waren gerade mal 6% aller neu
erworbenen Smartphones in den USA mit Android ausgestattet. Im zweiten
Quartal 2010 waren es bereits 27% [7].
• Damit auf die Daten von Open Journal Systems zugegriffen werden
kann, soll eine passende Schnittstelle ermittelt werden.
• Es soll eine strikte Abkapselung von der Interaktion mit dem Server
und dem grafischen User-Interface geben.
• JournalURL/gateway/plugin/iPhoneGatewayPlugin/comments/* enthält
die Kommentare die zu einem Artikel abgeben wurden, wobei * mit der Artikel-ID
ersetzt wird.
Für das Speichern und Laden von Einstellungen bietet Android das Interface
SharedPreferences an. Mit diesem lassen sich leicht gewünschte Daten sichern
und beim nächsten Starten wieder laden. Abb. 9 und 10 zeigen Code-Auszüge
die für das Speichern und Laden der Journale verantwortlich sind [19].
Abb. 10: Code-Auszug aus OJS for Android: Laden von zuvor gespeicherten
Journalen
6.5.2 Activity
Nahezu jede Activity-Klasse (Abb. 11) interagiert mit dem Benutzer. Sie ist
dafür verantwortlich ein Fenster für das User-Interface zu erstellen. Ein wich-
tiger Bestandteil ist, das für das Initialisieren zuständige onCreate(Bundle).
Dabei wird durch setContentView(int) und findViewById(int) mittels Layout-
Ressource, einer XML-Datei die das Layout enthält, das User-Interface definiert.[14]
Abb. 11: Code-Auszug aus OJS for Android: Activity, onCreate und find-
ViewById
6.5.3 Layout und View
Das Layout ist für die Struktur und Anordnung der dem Benutzer vorge-
führten Elemente (Views) zuständig. Das Android-Framework bietet dabei
die Möglichkeit es mittels XML-Datei und/oder zur Laufzeit zu erstellen.
Der Vorteil an einer Deklaration mittls XML liegt an einer besseren Tren-
nung zwischen Präsentation der Applikation und dem Code der ihr Verhalten
steuert - Abb. 12 zeigt eine solche XML-Datei.[20]
Abb. 12: Code-Auszug aus OJS for Android: XML-Layout von UI zum Hin-
zufügen eines neuen Journals
Abb. 13: Code-Auszug aus OJS for Android: XML-Datei von Artikel-Menu
(a) (b)
(c) (d)
Die große Vielfalt der Librarys und Funktionen bieten Programmierern viele
Möglichkeiten auftretende Probleme zu lösen. Die Layouts können einerseits
durch eine XML-Datei und andererseits mittels Java-Code erstellt werden;
ein Thread kann selbst oder durch bereits vorhandene, mit der gewünschten
Funktionalität ausgerüstete Interfaces erzeugt werden uvm.
Durch den Betrieb der Applikation auf einem mobilen Gerät, wie einem
Smartphone, kann es zu Problemen kommen. Ist die Verbindung zum Server,
auf dem das Journal liegt, sehr langsam oder schlecht kann es zu erheblichen
Wartezeiten durch den Download kommen. Wird die Verbindung zum Server
während eines Downloads unterbrochen, wird dieser nicht wieder aufgenom-
men, sondern muss Manuell neugestartet werden. Es werden auch noch keine
Daten gespeichert, weshalb bei jedem Neustart der Applikation diese erneut
vom Server geholt werden.
9 Zusammenfassung und Ausblick
Mit der vorliegenden Arbeit zu dem Thema Open Journal Systems for An-
droid und der daraus entstandenen Applikation, hoffe ich einen Beitrag zu
OJS und Android geleistet zu haben.
Da die Verbreitung und Verbesserung von Smartphones (mit, aber auch ohne
Android Betriebsystem) stetig zu nimmt, wird die zukünftigen Entwicklun-
gen in diesem Bereich eine wichtige Rolle spielen [23]. Dank der TUGraz,
dem Institut für Informationssysteme und Computer Medien und meinem
Betreuer, Dipl.-Ing. Dr. Ebner Martin, hatte ich die Möglichkeit hierzu einen
Beitrag zu leisten.
Literaturverzeichnis
[1] Sayed Bashimi, Satya Komatineni, and Dave MacLean. Pro Android 2.
2010. Seite 3ff.
[2] Arno Becker and Marcus Pant. Android 2 Grundlagen der Programmie-
rung. Auflage 2. 2010. Vorwort.
[4] Ben Elgin. Google buys android for its mobile arsenal. Businessweek On-
line. http://www.businessweek.com/print/technology/content/
aug2005/tc20050817_0949_tc024.htm?chan=tc (2005-08-17).
[6] Heiko Mosemann and Matthias Kose. Android. 2009. Seite 5ff.