android applikation für open journal systems

Upload: martin

Post on 09-Apr-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 Android Applikation fr Open Journal Systems

    1/34

    Android Applikation fr

    Open Journal Systems

    Bachelorarbeit

    zur Erlangung des akademischen Grades Bachelor of Science

    vorgelegt von

    Philipp Leitner

    Technische Universitt Graz

    Institut fr Informationssysteme und Computer Medien

    Betreuer: Dipl.-Ing. Dr. Ebner Martin

    1. Dezember 2010

  • 8/8/2019 Android Applikation fr Open Journal Systems

    2/34

    Erklrung

    Hiermit versichere ich, dass ich die vorliegende Arbeit selbststndig verfasst

    und keine anderen als die angegebenen Quellen und Hilfsmittel benutzt habe,

    dass alle Stellen der Arbeit, die wrtlich oder sinngem aus anderen Quellen

    bernommen wurden, als solche kenntlich gemacht sind und dass die Arbeit

    in gleicher oder hnlicher Form noch keiner Prfungsbehrde vorgelegt wur-

    de.

    Graz, den 1. Dezember 2010 Philipp Leitner

  • 8/8/2019 Android Applikation fr Open Journal Systems

    3/34

    Inhaltsverzeichnis

    Erklrung 1

    Inhaltsangabe 3

    Abbildungsverzeichnis 4

    1 Abstract 5

    2 Einfhrung 6

    3 Open Journal Systems 7

    3.1 Geschichte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    3.2 Beschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    3.3 Einsatzgebiet . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    3.4 Kritische Wrdigung . . . . . . . . . . . . . . . . . . . . . . . 9

    4 Android 10

    4.1 Geschichte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    4.2 Beschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . 104.3 Einsatzgebiet . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    4.4 Kritische Wrdigung . . . . . . . . . . . . . . . . . . . . . . . 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 Einfhrung zum iPhoneGatewayPlugin . . . . . 146.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

  • 8/8/2019 Android Applikation fr Open Journal Systems

    4/34

    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 hinzufgen . . . . . . . . . . . . . . . . . . 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

    9 Zusammenfassung und Ausblick 30

    Literaturverzeichnis 33

  • 8/8/2019 Android Applikation fr Open Journal Systems

    5/34

    Abbildungsverzeichnis

    1 Weltkarte von Journalen, die Open Journal Systems verwenden 8

    2 Android System Stack . . . . . . . . . . . . . . . . . . . . . . 11

    3 Smartphone Kufe 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

    Hinzufgen eines neuen Journals . . . . . . . . . . . . . . . . . 21

    13 Code-Auszug aus OJS for Android: XML-Datei von Artikel-

    Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2214 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 hinzufgen . . . . . . . . . . . . . . . . . . 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

  • 8/8/2019 Android Applikation fr Open Journal Systems

    6/34

    1 Abstract

    Open Journal Systems (OJS) ist eine Open-Source-Software zur Verwaltung

    und Verffentlichung von Zeitschriften (Journalen). OJS wurde entwickelt

    und verffentlicht vom Public Knowledge Project und wird von vielen Open

    Access Journalen verwendet [11].

    Android ist ein auf Linux und Java basierendes Betriebssystem fr 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 grte Verkaufs- und Downloadplatt-

    form fr 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 ermglicht auf Journale, Artikel und Inhalte sowie weitere relevanteInhalte von OJS zuzugreifen, diese dem Benutzer mittels einer grafischen

    Oberflche (GUI) auf einem Smartphone mit Android Betriebssystem leicht

    zugnglich zu machen und Kommentare ber dieses abgeben zu knnen.

    In der Arbeit wird im Speziellen auf die programmiertechnische Umsetzung

    eingegangen als auch anhand von Anwendungsbeispielen das Programm n-

    her gebracht.

  • 8/8/2019 Android Applikation fr Open Journal Systems

    7/34

    2 Einfhrung

    Smartphones sind leistungs- und internetfhige Mobiltelefone mit dem zu-

    stzlichen Funktionsumfang eines Personal Digital Assistant (PDA) und der

    Mglichkeit individuelle Programme (Applikationen) auszufhren [24]. Der

    Trend zum eigenen Smartphone steigt und so ist auch die Nachfrage nach

    passenden Applikationen gro [23].

    Da das Android Betriebssystem zukunftsweisend auf diesem Bereich ist, hat

    man sich entschlossen eine Applikation dafr zu entwickeln, welche eine Ver-

    bindung zu Open Journal Systems vom Public Knowledge Project, einem on-

    line Verwaltungs- und Publizierungssystem, herstellt. Damit soll der Zugriff

    auf derartige Systeme mit internetfhigen Mobiltelefonen ermglicht werden

    [5].

    In den nchsten zwei Kapitel werden Open Journal Systems und das Be-

    triebssystem Android genauer erklrt, ihre Entwicklung, ihren Einsatz und

    wie die Vor- und Nachteile aussehen.

    Kapitel 4 beschftigt sich mit dem Entwurf und dem Aufbau der Arbeit. Die

    Umsetzung der Applikation wird in Kapitel 5 errtert, 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 Auszgen und Erluterungen zum Programmiercode

    abgerundet.

    Wie die fertige Applikation verwendet wird, steht mit Beispielen erklrt in

    Kapitel 6. Die beiden Kapitel 7 und 8 geben zum Schluss noch einmal eine

    kurze Zusammenfassung, diskutieren Aufflligkeiten, Probleme und geben

    einen Ausblick.

  • 8/8/2019 Android Applikation fr Open Journal Systems

    8/34

    3 Open Journal Systems

    3.1 Geschichte [9]

    Das Public Knowledge Project (PKP) wurde 1998 von John Willinsky in

    der Abteilung fr sprachliche und literarische Bildung in der pdagogischen

    Fakultt 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.

    Die erste Public Knowledge Project Software wurde 2001 herausgebracht

    und unter der technischen Leitung von Kevin Jamieson wurde mit der Ent-

    wicklung der Projekte Open Journals Systems, Open Conference Systems

    und PKP Harvester unter der GNU GPL Open Source Lizenz begonnen.

    Im Jahr 2002 wurde Open Journal Systems als ein Meilenstein der Open

    Access Bewegung hinzugefgt. Um die Entwicklung, Aufrechterhaltung und

    Verbesserung der Software und dem Support fr Online- und Open Access

    Publishing von PKP zu verbessern, schlossen sich Willinsky, Lynn Copeland(Universitts 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. Auerdem nahm Willinsky die Position

    als Professor for Education an der Stanford University an und gab somit

    PKP einen vierten Sitz neben der SFU Library, SFUs Canadian Centre ofStudies in Publishing und UBCs Faculty of Education.

    3.2 Beschreibung

    Open Journal Systems (OJS) ist ein Publizierungs- und Verwaltungssystem,

    welches von Public Knowledge Projekt (PKP) durch staatlich gefrderte

    Manahmen zur Ausweitung und Verbesserung des Zugangs zu Forschung

  • 8/8/2019 Android Applikation fr Open Journal Systems

    9/34

    entwickelt wurde. Das System wurde zur lokalen Installation und Betrieb

    konzipiert und erfordert minimale technische Fhigkeiten 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 fr dies eine Registrierung notwendig ist [13].

    Abb. 1: Weltkarte von Journalen, die Open Journal Systems verwenden [10]

  • 8/8/2019 Android Applikation fr Open Journal Systems

    10/34

    3.4 Kritische Wrdigung

    Open Journal Systems kann sehr leicht installiert und verwaltet werden. Es

    besitzt eine hervorragende Rollenaufteilung und bereits etliche Plugins mit

    den unterschiedlichsten Funktionalitten. Die gute Dokumentation geht auch

    auf schwer verstndliche Teile detaillierter ein.

    Da OJS stndig weiterentwickelt wird und die Software unter der GNU GPL

    V2 frei verwendet und modifiziert werden kann, ist sie fr die Zukunft sehr

    interessant. Zustzlich stehen viele Tutorials und andere Hilfestellungen auf

    der Webseite der PKP bereit [8].

  • 8/8/2019 Android Applikation fr Open Journal Systems

    11/34

    4 Android

    4.1 Geschichte

    Das Unternehmen Android in Palo Alto, Californien/USA, von dem nicht

    mehr bekannt war, als dass es Software fr Mobiltelefone entwickelte, wurde

    im Jahr 2003 gegrndet. Die Erfolgsgeschichte beginnt jedoch erst 22 Monate

    spter, 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 gegrndet. 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 Kundenwnsche [1].

    Am 12. November 2007 verffentlichte Google eine Vorabversion des Android-

    SDK (Sourcecode Development Kit), einer Entwicklungsumgebung fr die

    Android-Plattform. Die positive Reaktion darauf verdeutlicht, wie gro das

    Interesse der Entwickler und der Hersteller an einer offenen Plattform fr

    Embedded Systems mittlerweile ist [2].

    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 zugnglich gemacht. Seit damalswerden in regelmigen Abstnden neue Versionen verffentlicht [1].

    4.2 Beschreibung

    Android stellt eine umfassendes Gesamtsystem, den Android System Stack

    (siehe Abb. 2), fr die Entwickler von mobilen Applikationen zur Verf-

    gung. Als Basis dient ein Linux Kernel in der Version 2.6, der eine Hard-

  • 8/8/2019 Android Applikation fr Open Journal Systems

    12/34

    ware Abstraktionsschicht sowie Speichermanagement, Prozessmanagement,

    Sicherheitsmodell und eine Netzwerk-Schnittstelle bereitstellt [6].

    Abb. 2: Android System Stack [22]

    Die meisten Applikationen unter Android werden in Java entwickelt und

    ausgefhrt durch die Dalvik Virtual Machine, welche darauf ausgelegt wurde

    viele Instanzen der Virtual Machine effizient bereitzustellen. Die Android Li-

    braries wie OpenGL, WebKit, FreeType, Secure Socket Layer (SSL), SQLite,

    Media und die C Runtime Library sind in C/C++ geschrieben, knnen aber

    mittels Java-Schnittstelle angesprochen werden. Jede Java Applikation, die

    auf diese Libraries zugreift, bekommt ihre eigene Virtual Machine. Momentan

    ist die Version 2.2 von der Android Plattform verfgbar [1].

    4.3 Einsatzgebiet

    Ursprnglich war Android als Plattform fr Mobiltelefone konzipiert, in-

    zwischen findet man es auf einer Vielzahl verschiedener Gertetypen, vom

    Tablet-PC und Netbooks bis hin zu Home-Entertainment und Auto-Infotainment

  • 8/8/2019 Android Applikation fr Open Journal Systems

    13/34

    [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].

    Abb. 3: Smartphone Kufe in den USA [7]

    4.4 Kritische Wrdigung

    Der groe Vorteil an Android liegt sicherlich darin, dass es auf der einen

    Seite von einer groen Allianz (Open Handset Allianz) entwickelt wird und

    auf der anderen Seite unter der freien Apache-Lizenz jedem zur Verfgung

    steht. Der Suchmaschinen-Riese Google steht besonders hinter diesem Pro-

    jekt und betreibt die grte Verkaufs- und Downloadplattform fr Android-

    Applikationen (Android Market). Jedoch steigen durch das groe Interesse

    auch die Probleme, so gibt es bereits die ersten Android-Trojaner [3].

  • 8/8/2019 Android Applikation fr Open Journal Systems

    14/34

    5 Entwurf

    Open Journal Systems for Android soll es ermglichen Open Journals auf

    Android Betriebssystemen herunterzuladen und grafisch darzustellen. Dafr

    soll zunchst die Erfllung der folgenden Anforderungen umgesetzt werden:

    Es muss eine geeignete Entwicklungsumgebung gefunden werden.

    Damit auf die Daten von Open Journal Systems zugegriffen werden

    kann, soll eine passende Schnittstelle ermittelt werden.

    Es soll ein ressourscensparender Datenaustausch zwischen Applikationund Server hergestellt und dabei die Wartezeiten, die durch den Daten-

    transfer entstehen, fr den User so kurz wie mglich gehalten werden.

    Da die Applikation in Java geschrieben wird, soll diese objektorientiert

    programmiert sein.

    Die Informationen sollen ausgelesen und in passende Objekte umge-

    wandelt werden.

    Das grafische User-Interface soll simple und selbsterklrend sein und

    dennoch den gesamten Inhalt von Open Journals widergeben.

    Es soll eine strikte Abkapselung von der Interaktion mit dem Server

    und dem grafischen User-Interface geben.

    Bereits hinzugefgte Journale sollen beim erneuten Applikationsstart

    wieder vorhanden sein.

  • 8/8/2019 Android Applikation fr Open Journal Systems

    15/34

    6 Umsetzung

    In diesem Kapitel wird die prototypische Umsetzung einer Applikation zur

    grafischen Darstellung eines OJS Journals auf einem Android Betriebsystem

    beschrieben.

    6.1 Die Entwicklungsumgebung

    Fr die Umsetzung der Applikation wurde das Android Standard Develop-

    ment Toolkit (Android SDK) v0.9.7 Revision 6 verwendet. Als Entwicklungs-

    umgebung diente Eclipse (Galileo) mit der Version 3.5.1 und dem PluginAndroid Development Tools (ADT), welches es auf einfache Art ermglicht,

    Android Applikationen komfortabel zu erstellen und zu testen. Damit die

    Applikation auch mit lteren Android Plattformen funktioniert, wurde sie

    fr die Android 1.5 Plattform geschrieben und getestet.

    6.2 Die Schnittstelle zum Open Journal Systems

    Als Schnittstelle zum Open Journal System wurde das iPhoneGatewayPlu-

    gin verwendet, welches einen groen Teil der gewnschten Fhigkeiten, dieim Enwurf fr Open Journal Systems for Android festgehalten sind, bein-

    haltet. Zur Zeit der Entwicklung der Applikation steckte das Plugin noch

    in seinen Anfngen, jedoch konnte das alernative METS-Gateway-Plugin[12]

    sich, wegen seiner eingeschrnkten Mglichkeiten, nicht durchsetzen.

    6.2.1 Kurze Einfhrung zum iPhoneGatewayPlugin

    Das iPhone-Plugin wird nach dem Download in den Gateway-Ordner ent-

    packt und muss nun noch in der Zeitschriftenverwaltung unter Plugins ein-geschaltet werden. Das Plugin ist in mehrere Teile aufgeteilt, sodass man

    ressourcensparend die gewnschten Informationen in XML-Form herunterla-

    den kann:

    JournalURL/gateway/plugin/iPhoneGatewayPlugin/journalenthlt die Da-

    ten zum Journal, wie den Namen, die Version und die Titel der Journale.

  • 8/8/2019 Android Applikation fr Open Journal Systems

    16/34

    JournalURL/gateway/plugin/iPhoneGatewayPlugin/issuesenthlt die Da-

    ten zu den Ausgaben der Journale, wie ID, Title, Beschreibung, URI, Termin, Band,Nummer und Jahr.

    JournalURL/gateway/plugin/iPhoneGatewayPlugin/sections/*enthlt die

    Daten zu einer Kategorie von einer Ausgabe, wobei der * durch die ID der Ausga-

    be ersetzt wird. Die Daten enthalten unter anderem den Titel der Kategorie sowie

    deren Artikel mit dessen ID, Titel, Autor, Sprache, Abstrakt und URL zu dessen

    Dateien.

    JournalURL/gateway/plugin/iPhoneGatewayPlugin/comments/*enthlt

    die Kommentare die zu einem Artikel abgeben wurden, wobei * mit der Artikel-ID

    ersetzt wird.

    6.3 Objektorientierte Programmierung

    Die Applikation sollte, soweit mglich, objektorientiert programmiert wer-

    den. Dies verdeutlicht das Klassendiagramm in Abb. 4, das die Klassen Jour-

    nal, Issue, Section, Article, Author, File und Comment beinhaltet.

    Abb. 4: Aufbau zum objektorientierten Programmieren

  • 8/8/2019 Android Applikation fr Open Journal Systems

    17/34

    6.4 Datenaustausch und Parsen der Informationen

    Die Klasse Communication, welche in der Abb. 5 als Klassendiagramm ab-

    gebildet ist, dient zur Kommunikation mit dem Server. Sie erweitert die ab-

    strakte Klasse AsyncTaskund kann somit im Hintergrund alle ntigen Daten

    herunterladen. Die bentigten Daten werden mittels Apaches-HttpGet ber

    das iPhoneGatewayPluginvon Open Journal Systems als XML geholt, von ei-

    nem SAXParser geparst und an den entsprechenden Handler weitergegeben,

    der aus den Informationen die Objekte erstellt und in das Journal einfgt.

    Abb. 5: Communication Klassen-Diagramm

  • 8/8/2019 Android Applikation fr Open Journal Systems

    18/34

    6.4.1 AsyncTask

    Der AsyncTask - ein Code-Auszug ist abgebildet in Abb. 6 - ermglicht es

    mittels eigenem Thread im Hintergrund Operationen durchzufhren, ohne

    dabei den User-Interface-Thread zu stren. Somit ist er dazu geeignet Daten

    aus dem Internet zu laden und diese an den User-Interface-Thread zu ber-

    mitteln, ohne ihn dabei manipulieren zu mssen.[16]

    Abb. 6: Code-Auszug aus OJS for Android: Das Interface AsyncTask

  • 8/8/2019 Android Applikation fr Open Journal Systems

    19/34

    6.4.2 Der SAXParser und die Handler

    Der SAXParser kann von den unterschiedlichsten Quellen XML parsen, in

    diesem Fall von einer InputSource (siehe Abb. 7). Durch das synchrone Dow-

    nloaden und Einlesen der Daten, knnen diese schnell verarbeitet und dem

    Benutzer prsentiert werden. Dem Parser wird die Quelle und ein Handler

    (siehe Abb. 8) bergeben, der die Daten weiterverarbeitet [18].

    Abb. 7: Code-Auszug aus OJS for Android: Der SAXParser

    Abb. 8: Code-Auszug aus OJS for Android: Der JournalHandler

  • 8/8/2019 Android Applikation fr Open Journal Systems

    20/34

    6.5 Die Logic und das Graphical User Interface (GUI)

    Die Logic bernimmt die Steuerung aller nicht netzwerkbedingter Arbeiten,

    welche die Applikation verichten muss. So ist diese zum Beispiel fr das Spei-

    chern und Laden der Einstellungen sowie fr den Input vom User-Interface

    verantwortlich. Das grafische User Interface erweitert eine Activity, diese wird

    mittels Layout und View sowie den Menus generiert. Als letzter Punkt ist

    auch noch das AndroidManifest zu nennen, welches wichtige Informationen

    enthlt, die das System noch vor dem Programmcode bentigt damit die

    Applikation reibungslos ablaufen kann.

    6.5.1 Das Speichern und Laden der Einstellungen

    Fr das Speichern und Laden von Einstellungen bietet Android das Interface

    SharedPreferences an. Mit diesem lassen sich leicht gewnschte Daten sichern

    und beim nchsten Starten wieder laden. Abb. 9 und 10 zeigen Code-Auszge

    die fr das Speichern und Laden der Journale verantwortlich sind [19].

    Abb. 9: Code-Auszug aus OJS for Android: Speichern der Journale

    Abb. 10: Code-Auszug aus OJS for Android: Laden von zuvor gespeicherten

    Journalen

  • 8/8/2019 Android Applikation fr Open Journal Systems

    21/34

    6.5.2 Activity

    Nahezu jede Activity-Klasse (Abb. 11) interagiert mit dem Benutzer. Sie ist

    dafr verantwortlich ein Fenster fr das User-Interface zu erstellen. Ein wich-

    tiger Bestandteil ist, das fr das Initialisieren zustndige onCreate(Bundle).

    Dabei wird durch setContentView(int) und findViewById(int) mittels Layout-

    Ressource, einer XML-Datei die das Layout enthlt, das User-Interface definiert.[14]

    Abb. 11: Code-Auszug aus OJS for Android: Activity, onCreate und find-

    ViewById

  • 8/8/2019 Android Applikation fr Open Journal Systems

    22/34

    6.5.3 Layout und View

    Das Layout ist fr die Struktur und Anordnung der dem Benutzer vorge-

    fhrten Elemente (Views) zustndig. Das Android-Framework bietet dabei

    die Mglichkeit es mittels XML-Datei und/oder zur Laufzeit zu erstellen.

    Der Vorteil an einer Deklaration mittls XML liegt an einer besseren Tren-

    nung zwischen Prsentation 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-

    zufgen eines neuen Journals

    Die dabei verwendeten Views nehmen einen rechteckigen Bereich vom

    Bildschirm ein und sind fr dessen Aufbau und Ereignisse verantwortlich. Es

    gibt viele verschiedene spezialisierte Unterklassen von Views die als Steuer-elemente oder zum Anzeigen von Text (z.B.: TextView), Bildern (z.B.: Image-

    View) oder anderen Inhalten (z.B.: WebView) dienen [21].

  • 8/8/2019 Android Applikation fr Open Journal Systems

    23/34

    6.5.4 Menu

    Jede Activity untersttzt standardmig ein Option-Menu Interface. Dieses

    enthlt Eintrge, kann Klicks auf diesen erfassen und Aktionen ausfhren.

    Das Menu wird mittels einer XML-Datei (Abb. 13) und onCreateOptions-

    Menu(Menu menu) (Abb. 14) eingebunden. Um auf die Selektion eines Ein-

    trags reagieren zu knnen, wird onOptionsItemsSelected(MenuItem) einge-

    setzt (Abb. 15) [17].

    Abb. 13: Code-Auszug aus OJS for Android: XML-Datei von Artikel-Menu

    Abb. 14: Code-Auszug aus OJS for Android: onCreateOptionsMenu

    Abb. 15: Code-Auszug aus OJS for Android: onOptionsItemsSelected

  • 8/8/2019 Android Applikation fr Open Journal Systems

    24/34

    6.5.5 Das AndroidManifest

    Das AndroidManifest ist fixer Bestandteil jeder Android Applikation. Es be-

    schreibt die Komponenten der Applikation, erklrt welche Berechtigungen

    sie haben muss, um Zugriff auf geschtzte Teile der API zu erlangen oder

    mit anderen Anwendungen zu interagieren. Das AndroidManifest legt unter

    anderem fest, welche Mindestversion die Android-API aufweisen muss und

    welche Bibliotheken die Applikation bentigt. Abb. 16 zeigt das AndroidMa-

    nifest von der Open Journal Systems for Android Applikation [15].

    Abb. 16: Code-Auszug aus OJS for Android: Das AndroidManifest

  • 8/8/2019 Android Applikation fr Open Journal Systems

    25/34

    7 Anwendungsbeispiel

    Auf den folgenden Seiten werden die Hauptfunktionen des Programms an-

    hand von Screenshots dargestellt und erklrt.

    7.1 Ein neues Journal hinzufgen

    Durch Bettigen der Menu-Taste kann auf der Seite mit den Journal-Listen

    das Men ausgeklappt werden (Abb. 17(a)). Per Auswahl des New-Buttons

    erscheint ein Eingabe-Screen (Abb. 17(b)). Mittels Eingabe einer URL und

    dem Drcken des Subscribe-Buttons, wird ein neues Journal hinzugefgt.

    (a) Journal-Liste mit Men (b) Eingabe-Screen fr ein

    neues Journal

    Abb. 17: Ein neues Journal hinzufgen

  • 8/8/2019 Android Applikation fr Open Journal Systems

    26/34

    7.2 Navigieren durch die Journale

    Die Navigation in der Journal-Liste ist simpel aufgebaut. Durch die Auswahl

    von einem Journal in der Journal-Liste (Abb. 18(a)) werden alle Ausgaben

    dieses Journals aufgelistet (Abb. 18(b)). Mittels Selektion einer Ausgabe ak-

    tualisiert sich die Applikation und die Liste mit den Kategorien der Ausgabe

    wird angezeigt (Abb. 18(c)). Per Wahl einer Kategorie wird ein Angebot an

    Artikeln angezeigt (Abb. 18(d)).

    (a) (b)

    (c) (d)

    Abb. 18: Navigieren durch die Journale

  • 8/8/2019 Android Applikation fr Open Journal Systems

    27/34

  • 8/8/2019 Android Applikation fr Open Journal Systems

    28/34

    7.4 Die Dateien zu einem Artikel ansehen und ffnen

    Bei vielen der Artikel gibt es den kompletten Artikel als pdf- oder doc-Datei.

    Durch bettigen der Menu-Taste kann auf der Seite mit dem Abstract ei-

    nes Artikels das Men ausgeklappt werden (Abb. 20(a)). Per Klick auf File

    oder Suppfile wird eine Liste mit den Dateien angezeigt (Abb. 20(b)). Durch

    Auswahl einer Datei wird diese heruntergeladen und geffnet, sofern auf dem

    Android eine Applikation vorhanden ist, die das Format der Datei unter-

    sttzt.

    (a) Abstract eines Artikels mit

    Men

    (b) Dateien eines Artikels

    Abb. 20: Die Dateien zu einem Artikel ansehen und ffnen

  • 8/8/2019 Android Applikation fr Open Journal Systems

    29/34

    7.5 Ein Journal aus der Liste entfernen

    Um ein Journal aus der Journal-Liste zu entfernen, bettigt man den Journal-

    eintrag zwei Sekunden (Abb. 21(a)). Auf dem sich ffnenden Dialog-Fenster

    lsst sich durch Auswahl des Yes-Buttons das Journal lschen, bei No bleibt

    das Journal erhalten (Abb. 21(b)).

    (a) Journal-Liste (Hauptseite) (b) Dialog der Abfragt ob das

    Journal gelscht werden soll

    Abb. 21: Ein Journal aus der Liste entfernen

  • 8/8/2019 Android Applikation fr Open Journal Systems

    30/34

  • 8/8/2019 Android Applikation fr Open Journal Systems

    31/34

    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.

    Die Arbeit beinhaltet neben dem theoretischen Rahmen zu Open Journal

    Systems und Android auch eine Dokumentation wichtiger Programmierteile

    sowie ein Anwendungsbeispiel. Durch die Darstellung der technischen Mg-

    lichkeiten beider Software-Produkte sowie das damit verbundene Potential

    und die zuknftige enorme Relevanz durch deren Verbreitung im Bereich der

    mobilen Kommunikation bzw. der mobilen Anwendungsvielfallt, scheint eine

    weitere Entwicklung ntig. Die Applikation steht jedem zur freien Verfgung

    http://ojs-android.dyndns.org und kann somit gem GNU-Lizenz wei-

    terentwickelt werden.

    Da die Verbreitung und Verbesserung von Smartphones (mit, aber auch ohne

    Android Betriebsystem) stetig zu nimmt, wird die zuknftigen Entwicklun-

    gen in diesem Bereich eine wichtige Rolle spielen [23]. Dank der TUGraz,dem Institut fr Informationssysteme und Computer Medien und meinem

    Betreuer, Dipl.-Ing. Dr. Ebner Martin, hatte ich die Mglichkeit hierzu einen

    Beitrag zu leisten.

    http://ojs-android.dyndns.org/http://ojs-android.dyndns.org/
  • 8/8/2019 Android Applikation fr Open Journal Systems

    32/34

    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.

    [3] Michael Bning. Erster android-trojaner verschickt heimlich sms. Han-

    dy News. http://www.handy-news.at/betriebssysteme/android/

    erster-android-trojaner-verschickt-heimlich-sms-1122.

    html(2010-08-12).

    [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).

    [5] Lukasz Konieczny. Gehrt android wirklich die zukunft? http:

    //mobile360.de/gehoert-android-wirklich-die-zukunft-11731.

    html(2010-05-17).

    [6] Heiko Mosemann and Matthias Kose. Android. 2009. Seite 5ff.

    [7] Andreas Proschofsky. Android zieht dank rasantem wachstum am ipho-

    ne vorbei. der Standard. http://derstandard.at/1277339469037/

    Wettlauf-Android-zieht-dank-rasantem-Wachstum-am-iPhone-vorbei(2010-

    08-03).

    [8] unknown. Downloading open journal systems. http://pkp.sfu.ca/

    ojs_download (2010-08-01).

    [9] unknown. History. http://pkp.sfu.ca/history (2010-08-01).

    [10] unknown. Journals using open journal systems by continent. http:

    //pkp.sfu.ca/ojs-geog (2010-08-01).

    [11] unknown. Open journal systems. http://pkp.sfu.ca/ojs (2010-08-

    01).

    http://www.handy-news.at/betriebssysteme/android/erster-android-trojaner-verschickt-heimlich-sms-1122.htmlhttp://www.handy-news.at/betriebssysteme/android/erster-android-trojaner-verschickt-heimlich-sms-1122.htmlhttp://www.handy-news.at/betriebssysteme/android/erster-android-trojaner-verschickt-heimlich-sms-1122.htmlhttp://www.businessweek.com/print/technology/content/aug2005/tc20050817_0949_tc024.htm?chan=tchttp://www.businessweek.com/print/technology/content/aug2005/tc20050817_0949_tc024.htm?chan=tchttp://mobile360.de/gehoert-android-wirklich-die-zukunft-11731.htmlhttp://mobile360.de/gehoert-android-wirklich-die-zukunft-11731.htmlhttp://mobile360.de/gehoert-android-wirklich-die-zukunft-11731.htmlhttp://derstandard.at/1277339469037/Wettlauf-Android-zieht-dank-rasantem-Wachstum-am-iPhone-vorbeihttp://derstandard.at/1277339469037/Wettlauf-Android-zieht-dank-rasantem-Wachstum-am-iPhone-vorbeihttp://pkp.sfu.ca/ojs_downloadhttp://pkp.sfu.ca/ojs_downloadhttp://pkp.sfu.ca/historyhttp://pkp.sfu.ca/ojs-geoghttp://pkp.sfu.ca/ojs-geoghttp://pkp.sfu.ca/ojshttp://pkp.sfu.ca/ojshttp://pkp.sfu.ca/ojs-geoghttp://pkp.sfu.ca/ojs-geoghttp://pkp.sfu.ca/historyhttp://pkp.sfu.ca/ojs_downloadhttp://pkp.sfu.ca/ojs_downloadhttp://derstandard.at/1277339469037/Wettlauf-Android-zieht-dank-rasantem-Wachstum-am-iPhone-vorbeihttp://derstandard.at/1277339469037/Wettlauf-Android-zieht-dank-rasantem-Wachstum-am-iPhone-vorbeihttp://mobile360.de/gehoert-android-wirklich-die-zukunft-11731.htmlhttp://mobile360.de/gehoert-android-wirklich-die-zukunft-11731.htmlhttp://mobile360.de/gehoert-android-wirklich-die-zukunft-11731.htmlhttp://www.businessweek.com/print/technology/content/aug2005/tc20050817_0949_tc024.htm?chan=tchttp://www.businessweek.com/print/technology/content/aug2005/tc20050817_0949_tc024.htm?chan=tchttp://www.handy-news.at/betriebssysteme/android/erster-android-trojaner-verschickt-heimlich-sms-1122.htmlhttp://www.handy-news.at/betriebssysteme/android/erster-android-trojaner-verschickt-heimlich-sms-1122.htmlhttp://www.handy-news.at/betriebssysteme/android/erster-android-trojaner-verschickt-heimlich-sms-1122.html
  • 8/8/2019 Android Applikation fr Open Journal Systems

    33/34

    [12] unknown. Open journal systems: Metsgatewayplugin class reference.

    http://pkp.sfu.ca/ojs/doxygen/html/classMETSGatewayPlugin.

    html(2008-07-14).

    [13] unknown. A sample of journals using open journal systems. http:

    //pkp.sfu.ca/ojs-journals (2010-08-01).

    [14] unknown. Activity. Android Developers. http://developer.android.

    com/reference/android/app/Activity.html(2010-08-05).

    [15] unknown. The androidmanifest.xml file. Android Devel-

    opers. http://developer.android.com/guide/topics/manifest/

    manifest-intro.html(2010-08-05).

    [16] unknown. Asynctask. Android Developers. http://developer.

    android.com/reference/android/os/AsyncTask.html(2010-08-05).

    [17] unknown. Menu. Android Developers. http://developer.android.

    com/reference/android/view/Menu.html(2010-08-05).

    [18] unknown. Saxparser. Android Developers. http://developer.android.com/reference/javax/xml/parsers/SAXParser.html(2010-

    08-05).

    [19] unknown. Sharedpreferences. Android Developers. http://developer.

    android.com/reference/android/content/SharedPreferences.

    html(2010-08-05).

    [20] unknown. User interface. Android Developers. http://developer.

    android.com/guide/topics/ui/index.html#Layout(2010-08-05).

    [21] unknown. View. Android Developers. http://developer.android.

    com/reference/android/view/View.html(2010-08-05).

    [22] unknown. What is android? Android Developers. http://developer.

    android.com/guide/basics/what-is-android.html(2010-08-05).

    [23] unknown. Smartphone-markt wchst um 50 prozent. Heise Zeit-

    schriften Verlag. http://www.heise.de/newsticker/meldung/

    http://pkp.sfu.ca/ojs/doxygen/html/classMETSGatewayPlugin.htmlhttp://pkp.sfu.ca/ojs/doxygen/html/classMETSGatewayPlugin.htmlhttp://pkp.sfu.ca/ojs-journalshttp://pkp.sfu.ca/ojs-journalshttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/guide/topics/manifest/manifest-intro.htmlhttp://developer.android.com/guide/topics/manifest/manifest-intro.htmlhttp://developer.android.com/reference/android/os/AsyncTask.htmlhttp://developer.android.com/reference/android/os/AsyncTask.htmlhttp://developer.android.com/reference/android/view/Menu.htmlhttp://developer.android.com/reference/android/view/Menu.htmlhttp://developer.android.com/reference/javax/xml/parsers/SAXParser.htmlhttp://developer.android.com/reference/javax/xml/parsers/SAXParser.htmlhttp://developer.android.com/reference/android/content/SharedPreferences.htmlhttp://developer.android.com/reference/android/content/SharedPreferences.htmlhttp://developer.android.com/reference/android/content/SharedPreferences.htmlhttp://developer.android.com/guide/topics/ui/index.html#Layouthttp://developer.android.com/guide/topics/ui/index.html#Layouthttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/guide/basics/what-is-android.htmlhttp://developer.android.com/guide/basics/what-is-android.htmlhttp://www.heise.de/newsticker/meldung/Smartphone-Markt-waechst-um-50-Prozent-1057411.htmlhttp://www.heise.de/newsticker/meldung/Smartphone-Markt-waechst-um-50-Prozent-1057411.htmlhttp://developer.android.com/guide/basics/what-is-android.htmlhttp://developer.android.com/guide/basics/what-is-android.htmlhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/reference/android/view/View.htmlhttp://developer.android.com/guide/topics/ui/index.html#Layouthttp://developer.android.com/guide/topics/ui/index.html#Layouthttp://developer.android.com/reference/android/content/SharedPreferences.htmlhttp://developer.android.com/reference/android/content/SharedPreferences.htmlhttp://developer.android.com/reference/android/content/SharedPreferences.htmlhttp://developer.android.com/reference/javax/xml/parsers/SAXParser.htmlhttp://developer.android.com/reference/javax/xml/parsers/SAXParser.htmlhttp://developer.android.com/reference/android/view/Menu.htmlhttp://developer.android.com/reference/android/view/Menu.htmlhttp://developer.android.com/reference/android/os/AsyncTask.htmlhttp://developer.android.com/reference/android/os/AsyncTask.htmlhttp://developer.android.com/guide/topics/manifest/manifest-intro.htmlhttp://developer.android.com/guide/topics/manifest/manifest-intro.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://developer.android.com/reference/android/app/Activity.htmlhttp://pkp.sfu.ca/ojs-journalshttp://pkp.sfu.ca/ojs-journalshttp://pkp.sfu.ca/ojs/doxygen/html/classMETSGatewayPlugin.htmlhttp://pkp.sfu.ca/ojs/doxygen/html/classMETSGatewayPlugin.html
  • 8/8/2019 Android Applikation fr Open Journal Systems

    34/34

    Smartphone-Markt-waechst-um-50-Prozent-1057411.html (2010-

    08-12).

    [24] unknown. Smartphone. Wikipedia. http://de.wikipedia.org/wiki/

    Smartphone (2010-08-05).

    http://www.heise.de/newsticker/meldung/Smartphone-Markt-waechst-um-50-Prozent-1057411.htmlhttp://de.wikipedia.org/wiki/Smartphonehttp://de.wikipedia.org/wiki/Smartphonehttp://de.wikipedia.org/wiki/Smartphonehttp://de.wikipedia.org/wiki/Smartphonehttp://www.heise.de/newsticker/meldung/Smartphone-Markt-waechst-um-50-Prozent-1057411.html