Java Android应用程序架构-浏览xml文件

Java Android应用程序架构-浏览xml文件,java,android,mobile,Java,Android,Mobile,这更多的是一个关于Android的总体架构问题,我很好奇社区认为什么是这种努力的最佳实践。我正在开发一个Android应用程序,它加载存储在设备上的xml文件。我的第一个问题是,当您在Android应用程序的范围内处理格式化的xml文件时,应用程序的要点是“浏览”xml的节点,将xml(不确定术语是什么)加载到内存中并以这种方式执行是否更聪明?还是更明智的做法是将xml写入内部数据库(仍然习惯于整个SQLLite概念),然后以这种方式浏览数据?后者似乎是一种迂回的方式,但我试图理解这里的核心概念

这更多的是一个关于Android的总体架构问题,我很好奇社区认为什么是这种努力的最佳实践。我正在开发一个Android应用程序,它加载存储在设备上的xml文件。我的第一个问题是,当您在Android应用程序的范围内处理格式化的xml文件时,应用程序的要点是“浏览”xml的节点,将xml(不确定术语是什么)加载到内存中并以这种方式执行是否更聪明?还是更明智的做法是将xml写入内部数据库(仍然习惯于整个SQLLite概念),然后以这种方式浏览数据?后者似乎是一种迂回的方式,但我试图理解这里的核心概念

这就引出了我的第二个问题。如果我要从这个XML中提取数据是如何“流动”的,那么就我对Android的了解而言,我脑海中最直接的答案就是一堆列表视图。节点1有两个选择。这会将两个选项加载到ListView中。单击第一个节点时,它将转到xml中相应的子节点,该子节点有四个选项。我创建了一个包含4个选项的列表视图。诸如此类


这合乎逻辑吗?我是不是看错了方法?有没有更好的方法来使用另一个更有意义的对象?任何对我已经做过的事情进行比较的参考都会很有帮助。谢谢

不要将XML转换为sqlite数据库。只需在内存中解析它

至于你的其他问题,我有一个活动是从
ListActivity
扩展而来的。重写
onListItemClick()
,并使用指向要浏览的下一个元素的某种指针使其再次启动您的活动


这样做将使活动堆栈在用户按下后退按钮时表现良好。

SQLite是关系数据库,因此只有在需要对数据执行关系操作(例如选择/更新/分组等)时,才需要将xml中的数据存储在数据库中。如果您只需要遍历DOM并执行某些操作(例如,计算特定的节点),我认为您不应该将xml解析为DB

很大程度上取决于您拥有的特定用例和XML文件的大小。在大多数情况下,我认为您将很难将XML放入数据库中,除非您已经有了用XML表示并适合持久化的数据模型。您肯定不想使用随机XML来实现这一点


如果您有小XML,您可以使用DOM将其加载到内存中。这将使导航变得容易。但是,对于大型XML,需要考虑一些流式API(STAX)并直接从文件读取。

有趣的是,我不知道STAX,但会研究它。到目前为止,xml文件相对较小,但计划最大的共同点可能是明智的。我将对此进行一些搜索,但是您是否看到过将xml加载到DOM中然后浏览节点的好教程或示例代码?这对我来说很有意义,也是我所想的。。。我对操作系统的了解还不够,还不知道是否有更好的控件用于此。