我正在开发一个应用程序,它在很大程度上呈现了大量的静态文本信息。我打算让应用程序脱机,因此无法从服务器获取数据。正如我在许多帖子中已经讨论的那样,根据我的理解,我有以下选项:
虽然最初我决定使用XML,但是对于正确的排序,过滤和数据索引等功能,SQLite非常方便。我读了here,here和here关于各种方法之间的权衡。现在,如果我在SQLite中存储数据:
然后读取表以在Views中显示数据,从而导致冗余(因为我可以在解析XML之后直接填充视图)并且还将数据的大小增加一倍(XML和数据库)。我确定android studio中没有任何内容,比如“在生成apk时从某些资源中提供数据库,而不是将该资源作为apk的一部分捆绑”。所以我的问题基本上是如何有效地将SQLite用于大型静态文本数据?由于
(对不起,如果我的描述有点冗长)
编辑:在使用应用程序时也不会有数据操作。
答案 0 :(得分:0)
要明确的是,您的问题更具描述性。 以下是关于如何在没有冗余处理的情况下解决此问题的观点:
以下是两个要处理的方案:
场景1:可用网络
步骤1:从服务器获取数据时,将数据转换为XML。现在创建一个AsynTask" ParseXML"它将解析XML。
步骤2:现在,在" ParseXML"的postExecute方法中做两件事。
一种是将解析后的数据存储到SQLite数据库中以供离线使用。
其次是直接将已解析的XML数据填充到您的视图中,正如您在问题中已经提到的那样,您可以将XML数据考虑在内并显示它。
我相信这样你就可以节省将数据存储到dB然后显示的时间。
场景2:互联网不可用时离线显示数据 正如您所说,从SQLite查询数据并显示在您的UI上。
另外,为了回答你的问题的其余部分,你不是在浪费内存,因为你需要离线存储,而SQLite对于需要进一步处理的这种存储是有效的。
答案 1 :(得分:-1)
我认为你应该使用 Green DAo 这是一个开源的Android ORM。 它易于处理数据。它提供了轻松访问,插入/更新和删除数据的工具。