我是Android开发的新手,想要创建一个Google地图应用。我必须使用2个带有地理数据(latlons)的大型XML文件,1个是2mb,另一个是8mb大。
访问和解析此数据的最快方法是什么?是否可能将其存储到数据库中?我认为网络服务并不是一个好主意,因为每次应用程序启动时我都需要加载10 MB ...而且这种处理速度非常慢我猜...
有人有一些好的建议吗?
谢谢!
答案 0 :(得分:2)
将整个数据保存在服务器中,并使用webservices从设备访问它。由于数据太大,最好选择SAX解析器。如果可能,最好从服务器端实现搜索功能或从服务器端实现分页。
答案 1 :(得分:1)
也许您可以创建某种元数据以与大型xml文件一起使用。此元数据可以指向大型xml文件的特定部分。每个小部分都可以是dom对象而不是sax解析器。
我建议使用sax,在某种哈希表(简单键值对)中创建所需数据的摘要并使用它。可能正在将SharedPreferences用于不会更改的数据。
此外,您还需要考虑如何/将使用何种数据以及使用频率。可能是您可以保留生产者消费者体系结构,其中线程准备数据以供使用,并且消费者在准备好通知时使用它。
你需要从3个角度思考
我不推荐整个树的DOM。您需要使用SAX和DOM的组合。
首先让它工作,然后记录响应/性能延迟,并逐步提高它从最坏到最好的方式。