Ersetzen der standard-Android-JSON-parser für bessere Leistung?
Ich weiß, dass Android hat einen JSON-parser gebacken, aber ich Frage mich, ob es sich lohnte, mit etwas, das angeboten eine bessere Leistung (wie die Jackson - siehe http://jackson.codehaus.org/) ? Jemand versucht, die ?
- Ich hatte noch nie Probleme mit der Geschwindigkeit von Android JSON-parser. Ich habe sogar einen 41 Kb JSON-Datei in einer meiner apps und lädt es in ein paar hundert ms auf einem G1 (das ist auch gut so, denn es muss nur einmal ausgeführt, wenn die app-Stiefel).
- Absolute Sprechgeschwindigkeit kann gut sein, akzeptabel. Es ist immer noch gut zu betrachten, die auf normalen desktop-CPUs, JSON-parsing-Geschwindigkeit ist in Ordnung, Zehntausende von megs -- 41 kb Datei geschieht in Millisekunden oder so. Auch bei langsameren CPUs Android-system haben oft hundert Millisekunden ist eher langsam, relativ schnell alternativen. Also, das richtige Werkzeug für den job. Für gelegentliche Nutzung (wie das Lesen in der config Datei beim Start), in-built-Handler sind in der Regel anständig. Es ist doch gut zu wissen, dass es Raum für Verbesserung, wenn use cases verlangt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, hier sind ein paar von links Vergleich der Jackson-JSON-Leistung mit vorhandenen JSON, SAX, und Protocol Buffers. Laut dem Autor, Jackson ist schneller als SAX oder der eingebaute JSON-und etwa auf Augenhöhe mit Protocol Buffers. Das Letzte Teil klingt etwas misstrauisch, aber unabhängig davon, ist es sicherlich angezeigt, Jackson funktioniert auf Android und kann sich lohnen, Sie ein wenig Experimentieren.
Habe ich nicht geprüft die JAR-Größe, though. Wenn es groß ist, es sei denn, Sie würden sterben für zusätzliche JSON-Leistung, könnte es nicht Wert sein, den Raum schlagen.
Seit API 11, es ist ein stream json-parser in Android
Späte Antwort, aber es könnte noch helfen. Ich bin mit Jackson zum Parsen von JSON von Twitter sowie anhaltende
Maps
auf die Datenbank. Die Daten-mapping in Jackson ist einfach wunderbar. Lage, Karte JSON direkt in ein Objekt ist genial und macht alles viel sauberer.Selbst wenn Sie nur analysieren einfache Antworten Daten-mapping kann Ihnen dabei helfen, Ihren code sauberer (und effizienter). Für mich ist es ein Glücksfall, dass ich mich nicht zu schreiben parsing Logik für jede Art von Twitter-api-Funktion.
Nur eine weitere Perspektive auf diesen Parser. Ich war auf der Suche durch die Google IO für das Jahr 2009 und es ist wirklich nettes Gespräch über die effiziente Nutzung der Batterie für app-Entwickler.
Hier ist der link zu diesem talk : link
Nun nach den reden der eingebauten Pfarrer für android ist die Baum-Basierte und diese sollen ineffizient, wenn es um die Lebensdauer der Batterie. Hat wirklich jemand in diese sah.
Dem Lesen dieser Diskussion scheint es Jackson parser scheint ein Gewinner zu sein in allem. Seine fast ebenso schnell, wenn nicht mehr als die integrierten ein-und auch Ihre Veranstaltung/Stream basiert im Gegensatz zu Baum-basiert, was ist besser in Bezug auf die Akkulaufzeit.
Nur ein aber ich wollte zu teilen, und bekommen Sie einige Meinungen zu diesem Thema.
Ich verwenden jackson json umsetzen meinem android-Anwendung, die kommuniziert mit dem server über json-rpc. Ich wold gerne verwenden, um serialisieren/Deserialisieren json-rpc-Anfragen und-Antworten und-Objekte, um Daten zu übertragen.
Ich benutze version 2.0 der Jackson-json. Ich habe in meinem build-path mit zwei Gläsern: jackson-databind-2.0.0.jar, jackson-core-2.0.0.jar und jackson-annotations-2.0.0.jar.
Auf der Seite beachten: gibt es irgendwelche json-rpc-Implementierung für android. separate json-rpc und http-Verkehr wäre gut. Ich habe gegoogelt, viel, bu nicht gut gefunden json-rpc-generator, json serializer /deserializer und für den transport werde ich mit android-query.