Jak przyspieszyć przetwarzanie kodu XML systemu Android?

Dzień dobry (w zależności od miejsca zamieszkania)!

Jestem całkiem nowy w rozwoju Androida i obecnie pracuję nad przeniesieniem funkcjonalności z istniejącej aplikacji na iOS do Androida. Część tej funkcjonalności polega na analizowaniu „dużego” (~ 13 000 wierszy) pliku XML XML, który zawiera około 500 wpisów. Spędziłem od 10-15 godzin na badaniu parsowania XML na Androidzie i wypróbowaniu głównych parserów XML: DOM, SAX i Pull-parsing. Oto moje wyniki, działające w „emulatorze na moim pudełku (32-bitowy Windows Vista, 2,2 GHz podwójny procesor, 3 GB RAM):

SAX: ~ 6: 00 minut

Pull-Parsing: ~ 4: 00 minut

DOM: Ponad 4:00 minut, ale nie zdążyłem na to, kiedy miałem zakodowane wdrożenie.

Wypróbowałem także ten czytnik RSS z github, ale zajęło to> 10:00 minut:

https://github.com/matshofman/Android-RSS-Reader-Library

Implementacje SAX, PP i DOM zostały zaczerpnięte z wątków stackoverflow.com, więc czuję się całkiem pewnie, że nie zrobiłem w nich niczego niestandardowego (choć tego nie wykluczam). Zdecydowałem się odwołać do większego, bardziej doświadczonego tłumu, aby uzyskać pomysły na to, co jeszcze mogę spróbować.

Nie mam żadnej kontroli nad formatem pliku. Gdybym wdrażał to od końca do końca, po prostu napisałbym usługę internetową, która wykonałaby ciężkie prace na serwerze, a następnie wysłałby małą, zwartą, serializowaną listę JSON. Zamiast tego mam plik wiersza 13K. :)

Jakiś wgląd w to, co mogę zrobić? Wydaje się, że jest to dość powszechny problem, ale większość odpowiedzi mówi po prostu, aby wypróbować jeden z różnych głównych parserów XML. W moim przypadku próbowałem wszystkich trzech i nawet najszybszy wydaje się zbyt wolny.

Co ja robię źle? Czy są jakieś normalne problemy z nowicjuszami, które zwykle napotykają ludzie podczas analizowania XML w sieci na Androida?

Z góry dziękujemy za wszelką pomoc, jaką możesz zapewnić!

questionAnswers(2)

yourAnswerToTheQuestion