android - xml数据存储的最佳方法

标签 android xml http sqlite optimization

我是一名学习 android 的 php/mysql 开发人员。我正在创建一个 android 应用程序,它从我的 php 应用程序接收信息以创建不同产品的 ListView ,这将打开该产品详细信息的 Web View 。

目前我的 php cms web 应用程序为 iphone 应用程序输出 xml 列表....(另外,单独输出 html)。我完全控制了 php 应用程序,所以如果有更好的方法来输出 android 应用程序的数据,请告诉我。

我已经创建了从网络读取 xml 并创建 ListView 的代码。列表可以每日刷新,无需每次启动应用时都从在线xml中读取数据。

所以我在考虑将检索到的数据存储在本地以提高我的应用程序的响应速度。在任何给定时间,最多可能有 500 个产品描述存储在最多 30 个不同的 xml 列表中。我开始使用一个包含大约 30 种产品的 xml 列表进行开发。

为了获得最佳性能,我应该将产品信息存储在 sqlLite 数据库中,还是应该将实际的 xml 文件存储在缓存/数据库或其他一些方法(如应用程序缓存)中。

我还想将数据更新创建为服务,这是个好主意吗?

最佳答案

存储数据最有效的方法是 RAM。但是如果你想缓存它,那么最有效的方法是数据库。

我建议您将数据存储在 sqlite android 数据库中。

您还可以考虑压缩 xml 以加快网络传输速度,并通过 java.util.zip 包类解压缩。您甚至可以考虑使用数据输入/输出流来传输数据的更简单格式,比 xml 更简洁。 (我在我的应用程序中这样做,效果很好)

这里是数据输入/输出流方法的一些细节:

  • 为您的数据设想一个专有协议(protocol),只提供您所需要的。没有标签,没有属性,只有按顺序排列的原始值。
  • 在客户端,使用 URL.getContent() 获取数据的输入流并将其转换为输入流。
  • 仍然在客户端,构建一个数据输入流来封装您的套接字输入流并按顺序读取数据。使用 readInt、readDouble、readUTF 等。
  • 在客户端,从 php 开始,您需要找到一种方法来以与客户端期望的数据格式兼容的格式保存数据。我不太了解 PHP,我只使用 java 编程。

这种技术的优点是可以节省带宽,因为只有数据,没有因 xml 导致的冗长修饰。您应该阅读有关 java 规范的内容,以了解如何在数据输出流中写入 double、int 和 strings。但是使用两种语言来获取正确的数据可能很困难。

如果php不能以合适的方式保存格式,使用xml,会简单很多。首先尝试使用纯 xml,然后尝试使用 zip、tarball 或 xml 文件。

但这一切都是关于网络连接期间的速度增益。

您必须做的第二部分是将列表的每一行存储在 SQL 表中。然后您可以使用 CursorAdapter 为您的 ListView 快速检索它(它打破了迷人的 MVC 模型,但它非常快!)。

关于android - xml数据存储的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6347122/

相关文章:

java - 获取 ISP IP 地址 Android

android - Android 相当于 Apple 的 b2b 程序吗?

php - SimpleXML 仅解析顶层

java - Tomcat 实例中 webapps 之间的连接重置

android - Xamarin android、Xamarin iOS 和 Xamarin 跨平台项目之间的区别

php - 通过 PHP 唯一且持续地识别移动设备

c# - 如何从 XML 文件中获取属性?

java - JAXB - 如何以两种方式解析元素

http - 截击 body 400错误

http - Azure blob 文件下载链接