Como posso acelerar a análise XML do Android?

Boa tarde (dependendo de onde você mora)!

Eu sou relativamente novo no desenvolvimento do Android e atualmente estou trabalhando para mover a funcionalidade de um aplicativo iOS existente para o Android. Parte dessa funcionalidade é analisar um arquivo RSS XML "grande" (~ 13.000 linhas) que contém cerca de 500 entradas. Passei de 10 a 15 horas pesquisando a análise XML no Android e testando os principais analisadores XML: DOM, SAX e análise de pull. Aqui estão os meus resultados, rodando em 'o emulador na minha caixa (Windows Vista de 32 bits, 2.2 GHz Dual CPU, 3 GB de RAM):

SAX: ~ 6: 00 minutos

Captura de dados: ~ 4: 00 minutos

DOM: Maior que 4:00 minutos, mas não tive tempo quando tive essa implementação codificada.

Eu também tentei este RSS Reader do github, mas demorei> 10 minutos:

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

As implementações para o SAX, o PP e o DOM foram tiradas de threads do stackoverflow.com, por isso sinto-me bastante confiante de que não fiz nada de não padronizado nelas (embora não descarte isso). Decidi apelar a uma multidão maior e mais experiente para obter algumas idéias sobre o que mais posso tentar.

Eu não tenho nenhum controle sobre o formato do arquivo. Se eu estivesse implementando isso de ponta a ponta, eu apenas escreveria um Web Service que fizesse todo o trabalho pesado no servidor e, em seguida, enviasse uma lista pequena, compacta e serializada por JSON. Em vez disso, eu tenho o arquivo de linha 13K. :)

Alguma informação sobre o que posso fazer? Parece ser um problema bastante comum, mas a maioria das respostas diz apenas para experimentar um dos diferentes analisadores XML principais. No meu caso, eu tentei todos os três e até o mais rápido parece muito lento.

O que estou fazendo de errado? Existe algum problema de "newbie" normal que as pessoas geralmente encontram ao fazer análise de XML pela rede no Android ???

Obrigado antecipadamente por qualquer ajuda que você pode fornecer!

questionAnswers(2)

yourAnswerToTheQuestion