在Android中处理大型XML文件
问题描述:
我是Android开发新手,想要创建Google地图应用。我必须使用2个大的XML文件和地理数据(latlons),1是2mb,其他8mb大。在Android中处理大型XML文件
什么是访问和解析这些数据的最快方法?这可能是存储在数据库中的吗?我认为web服务不是一个好主意,因为每次应用程序都会启动,我必须加载10 MB ...而且这会处理非常慢的我猜...
有没有人有一些很好的建议?
谢谢!
答
将整个数据保存在服务器中,并使用webservices从设备访问它。由于数据太大,最好去SAX解析器。如果可能,最好从服务器端实现搜索功能或从服务器端实现分页。
答
也许你可以创建一些类型的元数据与大型XML文件一起去。这个元数据可以指向大型XML文件的特定部分。每个小部分可以是一个dom对象而不是sax解析器。
我建议使用sax,在某种类型的散列表(简单键值对)中创建您需要的数据摘要并使用它。可能会将SharedPreferences用于不会更改的数据。
此外,您还需要考虑如何/将使用哪些数据以及使用频率。也许你可以保留一个生产者消费者体系结构,一个线程准备数据供用户使用,而消费者在准备好通知或其他东西时使用它。
你需要从3个角度
- 没有太多的串行处理想
- 没有重做你所使用数据的右量子已经被解析
- 解析。事实上,想象一下小部件的dom可以让你的设计更容易开始。
而我不推荐整个树的DOM。您需要使用SAX和DOM的组合。
首先让它工作,然后记录响应/性能延迟并按照自己的方式将其从最坏的状态改善到最佳状态。
Web服务**是一个好主意。由于下载的大小以及可能较慢的加载时间,将数据加载到您的Android应用程序中会吸引人。 – 2012-03-17 07:27:31