2017-01-14 7 views
1

私は大部分が大きな静的なテキスト情報を表示するアプリを開発しています。私はオフラインになるようにアプリケーションを意図しているので、サーバーからのデータのフェッチはありません。すでに多くの記事で説明したように私は私の理解あたりとしてのオプションを次のようしている。androidのSQLiteデータベースに大規模な静的テキストデータを追加する

当初、私は決めたものの、資産フォルダ内のXMLリソースファイル
  • テキストファイル
  • SQLiteデータベース
  • に格納

    1. をXMLと一緒に行くことができますが、データの適切なソート、フィルタリング、インデックス作成などの機能では、SQLiteは便利です。私はhereherehereをさまざまな方法のトレードオフについて読んでいます。さて、場合、私はSQLiteのにデータを格納しています:

      1. 私はデータを養う必要がありますどこから?最初にテキストファイルまたはStrings.xmlに保存する必要はありませんか?
      2. はい、私は希望私ができるようXML(複数のファイルでもよい)データベーステーブルに

      それを挿入し、冗長性につながる、ビュー内のデータを表示するには、テーブルを読んでするの(解析する必要がある場合XMLを解析した後に直接ビューを生成する)、データ(XMLおよびデータベース)のサイズを2倍にします。アンドロイドスタジオには、「apkを生成している間にあるリソースからデータベースにデータを渡し、そのリソースをapkの一部としてバンドルしない」のようなものはないと確信しています。だから私の質問は本質的にどのように大規模な静的テキストデータのSQLiteを効果的に使用するのですか?ありがとう
      (申し訳ありませんが私の説明が必要以上に長い場合)

      EDIT:アプリケーションの使用中にもデータ操作はありません。

    答えて

    0

    明確にするためには、あなたの質問は、より説明..ですここで は、冗長な処理をせずにこの問題を解決する方法についての私の見解である。ここでは

    が処理される2つのシナリオは以下のとおりです。

    シナリオ1:利用可能なネットワーク

    ステップ1:サーバーからデータを取得するときに、データをXMLに取得します。 XMLを解析するAsynTask "ParseXML"を作成します。

    ステップ2:今、 "ParseXML"のpostExecuteメソッドでは、2つのことを行います。

    1つは、オフラインで使用するために解析されたデータをSQLiteデータベースに格納することです。

    第2は、あなたの質問ですでに言及したように、解析されたXMLデータをビューに直接埋め込みます。これは、XMLデータを考慮して表示する方法があることを示しています。

    私はあなたがdBにデータを保存してから表示する時間を節約できると信じています。

    シナリオ2:インターネットが利用できない場合のデータのオフライン表示 あなたが言ったように、SQLiteからデータをクエリし、UIに表示します。

    また、あなたの質問の残りの部分に答えるために、あなたはオフラインストレージも必要とするため、メモリを浪費しているわけではありません.SQLiteはこのようなストレージを効率的に処理します。

    +0

    もののシナリオ1を読むには便利なようですが、私はアプリはので、私はそれのために行くことができないオフラインにするつもり言ったように。シナリオ2では、オフラインデータがアプリの要件であればメモリを浪費せず、リソースに最初にデータを格納してDBに格納することができます。 – mustafa1993

    +0

    シナリオ1を使用できないのはなぜですか?あなたはyを説明できますか?ネットワークからデータを取得することなく – ChaitanyaAtkuri

    -1

    私はあなたが使用する必要がありますと考えていますグリーンDAoオープンソースのAndroidのORMです。 データの取り扱いが簡単です。データのアクセス、挿入/更新、削除を容易にする機能を提供します。

    このhttp://greenrobot.org/greendao/

    関連する問題