2012-03-17 19 views
2

私はAndroid開発が初めてで、Googleマップアプリを作成したいと考えています。私はジオデータ(latlons)を持つ2つの大きなXMLファイルを使用しなければなりません.1は2MBで、もう1つは8MBです。Androidで大きなXMLファイルを扱う

このデータにアクセスして解析する最も速い方法は何ですか?これをデータベースに保存する方がいいでしょうか? Webサービスは良いアイデアではありません。毎回アプリが起動するので、10MBをロードする必要があります...そして、それは非常に遅く処理されますね...

誰かに良いアドバイスがありますか?

ありがとうございます!

+0

ウェブサービス**は**良いアイデアです。そのデータをAndroidアプリケーションに読み込ませると、ダウンロードのサイズが大きくなり、読み込み時間が遅くなる可能性があります。 –

答えて

2

サーバーにデータ全体を保存し、webservicesを使用してデバイスからアクセスします。データが大きすぎるため、SAXパーサの方がいいです。可能であれば、サーバー側からの検索機能を実装するか、サーバー側からページネーションを実装する方がよいでしょう。

1

大規模なxmlファイルと一緒に行くために、ある種のメタデータを作成することができます。このメタデータは、大きなxmlファイルの特定の部分を指すことができます。そして、各小さな部分は、サックスパーサーの代わりにdomオブジェクトにすることができます。

サックスを使って、何らかのハッシュテーブル(単純なキー値のペア)で必要なデータの要約を作成し、それを使用することをお勧めします。変更されないデータに対してSharedPreferencesを使用している可能性があります。

また、どのように/どのデータを使用するか、どのくらいの頻度で使用するかについて考える必要があります。スレッドが使用するためのデータを準備するプロデューサコンシューマアーキテクチャを維持することができ、消費者は通知や準備の準備が整ったときにそれを使用します。

あなたは3つの角度

  • あまりないシリアル処理
  • は、すでにデータの右の量子を使用して
  • 解析を解析されてきたものをやり直していないから考える必要があります。小さな部品のためのdomは、あなたのデザインをより簡単に始めることができると考えています。

そして、ツリー全体でDOMを推奨しません。 SAXとDOMの組み合わせを使用する必要があります。

最初に動作させてから、レスポンス/パフォーマンスの遅延を記録し、最悪から最悪まで改善するために作業を進めてください。