1
10
Android序列化是 臭名昭著地 慢。我强烈建议切换到使用XML或JSON(或其他)并以这种方式编写文件。因为您已经有了一个XML解析器,所以缓存下载的原始XML文件并在必要时重新对其进行分析可能是最有意义的。 我以前在一个应用程序中已经从可序列化转换为JSON文件存储,并且速度的提高是令人难以置信的,至少达到了一个数量级。 (我可能误解了你的问题——我想你是在用序列化来写光盘。如果您正在复制XML,那么我不确定为什么它在SD卡上慢得多。另外,我同意sqlite数据库通常是最有意义的,但是正如您已经说过的,它不适合您的应用程序的需要。) |
2
3
另外,除非您的数据至少是100s的KB,否则我建议您将其存储在您的私人数据存储中,而不是存储在SD卡上。请记住,您不能依赖可用的SD卡。 |
3
0
上周我刚刚写了一个Android应用程序,基本上就是这么做的。它联机获取一些(大型)XML文件,然后在各种视图中显示部分数据。 我们通过使用SAX获取和解析XML,并(在解析时)将其全部写入一个sqlite数据库来完成这项工作。然后,每次需要显示数据集的一些视图时,我们都只是查询数据库。 工作起来很有魅力,而且速度足够快,可以在Google地图覆盖图上显示大量数据,我们在每次调用地图覆盖图的draw方法时都会查询数据库。 所以我绝对建议你去 SQLite database ,如果XML文档中的数据很容易在数据库中表示。 |
4
0
如果Web服务只能给您指定数量的结果(例如:索引1和10之间的requestdata或给我前25个结果),请尝试使用它(放置一个简单的“加载更多结果”按钮或实现自动加载机制)。如果Web服务不提供此功能,请尝试将XML保存在SD卡上,当需要数据时,尝试仅解析指定数量的结果。希望这有帮助! |
5
-2
为什么不使用数据库?见 Android Data Storage Guide |
Abhilash Das · 输入文本时,编辑文本与工具栏重叠 1 年前 |
Community wiki · 局部变量可能尚未初始化 1 年前 |
jvargas · 如何获取上个月的第一天和最后一天以及一年的第一天 1 年前 |