XML Serialisierung in Android

28 Nov

Für die Übertragung zwischen Server und Client werden in meiner Masterarbeit die Daten als XML Struktur übermittelt. Um diese XML Daten einfach in eine Objektstruktur, und natürlich auch von Objektstruktur zu XML, zu bekommen bietet sich eine Library an, die das Serialisieren und Deserialisieren übernimmt. Zunächst habe ich dafür JAXB verwendet, da diese in den neueren Java Versionen direkt integriert ist. In einem (wohlgemerkt) Java Testprojekt habe ich sogar schon mein Klassen Schema mit den von JAXB zur Verfügung gestellten Annotationen versehen. Das ganze funktionierte bis dahin sehr gut.

Leider wusste ich von einem kleinen Detail nicht und hatte auch so nicht damit gerechnet. Und zwar ist JAXB nicht in dem Android SDK integriert. Also habe ich direkt mal geprüft, ob ich JAXB nicht direkt in mein Projekt einbinden könnte. Aber die Idee konnte ich direkt verwerfen als ich die Größe der jar Datei gesehen habe. Knapp 10 MB ist JAXB groß, was für eine mobile Applikation viel zu viel ist. Wohlgemerkt, meine App ist momentan 1,29 MB klein und nur wegen einer Bibliothek auf über 10 MB zu gehen ist doch etwas zu viel.

Also habe ich mich daran gesetzt, eine Alternative zu JAXB zu suchen, die auch für Android geeignet ist. Gestoßen bin ich dann auf Simple, eine kleine Java Bibliothek zur XML Serialisierung, dessen Bibliothek meine Anwendung gerade mal auf 1,4 MB anwachsen lässt. Simple hat direkt einen sehr guten Eindruck gemacht, so dass ich sofort damit anfing, meinen Code von JAXB auf Simple zu ändern. Hauptsächlich die Annotationen mussten verändert werden. Das hört sich vermutlich erstmal ganz gut an. Allerdings gibt es in meinem Anwendungsbereich zumindest einen Nachteil zu JAXB. Simple unterstützt keine XML Schema Dateien. Da meine XML Struktur aber nicht sehr komplex ist, kann ich damit leben.

Ich werde hier keine Einführung in Simple geben. Meines Erachtens nach ist das Tutorial auf der Simple Webseite sehr gut und einfach erklärt und deckt viele Anwendungsbereiche ab. Wer sich also näher damit beschäftigen möchte, dem lege ich das Tutorial nahe.

Ansonsten bleibt abzuwarten, ob JAXB vielleicht doch irgendwann den Weg in das Android SDK findet.

4 Antworten to “XML Serialisierung in Android”

  1. chrisupb 28. November 2011 um 16:09 #

    Wenn du mit Simple zufrieden bist, dann ist das gut.

    Nur zur Info:
    Das jar von jaxb.java.net beinhaltet die Quellen, Dokumentation und insbesondere „xjc“, um aus einem XSD fertig annotierte Klassen zu generieren.
    Im Endeffekt brauchst du davon nur 4 jars, die dann insgesamt nur 1,1 MB ausmachen.

  2. andhof 28. November 2011 um 16:37 #

    Danke für die Info. Vermutet hatte ich schon, dass man nicht die vollen 10 MB benötigt, die 10 MB wurden aber komischerweise in Internet Beiträgen bestätigt. Die Personen wussten es vermutlich auch nicht besser.
    1,1 MB hört sich schon sehr gut an. Allerdings würde das die Größe meiner App fast verdoppeln. Ich denke mal, dass ich erstmal bei Simple bleibe. So lange sich außer der XSD Unterstützung keine weiteren Einschränkungen für mich ergeben, wird das denke reichen.

  3. Eddy 8. Februar 2012 um 16:42 #

    Hi,
    ich stehe gerade vor derselben Frage und würde mal gerne wissen, ob du mit Simple immer noch zufrieden bist? Haben sich irgendwelche Nachteile/Probleme ergeben?

  4. andhof 8. Februar 2012 um 17:03 #

    Hi,
    ich benutze Simple immer noch, bin auch recht zufrieden damit. Das einzige was mir aufgefallen ist. Ich musste im Gegensatz zu JAXB ein paar Dinge genauer kennzeichnen, damit diese auch so funktionierten wie ich es wollte. Das würde ich aber nicht wirklich als Nachteil sehen. Bisher habe ich alles was ich angestrebt habe auch umsetzen können. Wenn dir JAXB zu groß ist solltest du es auf jeden Fall mal testen.

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: