我正在构建一个 android 应用程序,它从远程 url 获取 xml 并保存在 SD 卡位置。
Xml 相对较大(3 MB - 大约 30000 个元素)。我需要解析整个文档并从中构建一个 java 模型..
我使用了开箱即用的 android 的 SAX 和 Pull 解析器实现,但性能并不理想。我用不同类型的移动设备 armv7/998MHZ、500MHZ、260MHZ 进行了测试,但是当测试更多时性能并没有线性提高强大的设备..
萨克斯:
xmlIn.parse(new InputSource(new FileInputStream(myfile)));
拉:
parser.setInput(new FileInputStream(myfile), null);
就我而言,SAX 比 Pull 做得好一点。有什么方法可以改进这些解析器吗?像 NIO 一样,使用非阻塞/缓冲技术来提高性能?
由于 Android 不支持 StAX,因此我无法使用 FasterXML Aalto。
任何输入表示赞赏。