Daten vom Server ... welches ist der beste Weg??

  • Hallo liebe Leute,
    ich bin neu in der Android Entwicklung und würde gerne wissen was der beste Weg ist um Daten von einem Server auf das Handy zu bekommen?
    Ich denke da als erstes an XML aber das ist bestimmt nicht die performanteste Art und Weise oder?? Welche Varianten schlagt Ihr denn so vor??
    JQuery oder was gibt es sonnst noch so zu empfehlen??
    Vielen Dank für Eure Hilfe...
    Howard

  • Am Weitesten verbreitet und am Besten unterstützt dürfte das JSON Format sein.
    Ansonsten geht XML natürlich auch.


    Am Performantesten und leider auch am Aufwendigsten sowie am Stör- und Fehleranfälligsten wäre das Entwickeln eines eigenen Binärformats oder die Adaption von Apples Binary Property List Format.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Ob XML oder JSON ist schon fast eher Geschmacks-Frage. Wenn es um Performance bei großen Dateien (also mehrere zig bis hunderte MB) geht würde ich eher XML mit einem SAX-Parser empfehlen (wobei ich da gerade nicht weiß ob es sowas auch bei Java/Android schon mitgeliefert gibt. Notfalls eben eine externe Lib suchen)
    Ansonsten liest man XML per DOM ein, was halt dafür sorgt daß das komplette Dokument im Speicher liegt. Bei kleinen ist das ziemlich egal, aber bei großen Dokumenten ist SAX deutlich schneller und braucht weniger Speicher, da es das XML immer nur STück für STück liest. Dafür kann DOM das Dokument besser validieren und man weiß sofort beim Laden, ob das XML gültig ist oder nicht. Bei SAX muss man selbst die Daten prüfen und ggf das Einlesen abbrechen. JSON dürfte in Sachen Performance und Speicher ähnlich liegen wie XML mit DOM.
    Das PLIST Format mag ich persönlich eigentlich gar nicht, weil es über den Syntax von XML nochmal einen zusätzlichen Syntax drüber stülpt. Das ist sicher praktisch für einfache Daten (Properties-Dateien eben), bei komplexeren Datenstrukturen tut man sich da aber keinen Gefallen, da würde ich ein eigenes XML-basiertes Format vorziehen. Zumal PLIST bei großen Dateien wieder die selben Nachteile hat wie DOM.


    Binärdateien sind ansich schonmal deutlich kleiner als jede Art von textbasierten Formaten. Ein Format zu entwickeln ist ansich nicht sooo schwer, problematisch wird es allerdings wenn man so ein Format erweitern muss. Bei XML kann man z.B. jederzeit ein neues Tag einfügen oder ein element mit "version='2'" o.ä. markieren, bei Binärdaten ist das deutlich schwerer.
    Den großen Vortel von Binärformaten, nämlich die geringe Größe, kann man aber auch erreichen indem man seine XML oder JSON zum Versand komprimiert (Java hat schon Klassen, um Daten mit dem Zip-Algorithmus zu komprimieren). Textbasierte Dateien lassen sich normalerweise sehr gut komprimieren. Wenn man etwas Arbeit hineinsteckt kann man auch mehrere hundert MB komprimierte XML-Dateien übertragen, Stück für Stück entpacken und einlesen, ohne daß dafür mehr als ein paar kB RAM verbraucht werden ;)
    Falls man das HTTP-Protokoll zur Übertragung nutzen kann (mittels Webserver auf der Server-Seite und HttpRequest-Klassen beim Client) bekommt man sogar die Kompression frei Haus ohne etwas dafür zu tun.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!