3

Android アプリのコンテンツを保存する必要があり、どのストレージを使用すべきかについてのヒントが必要です。SQLite データベースまたは XML ファイル?

アプリとデータの特徴:

  1. このアプリケーションは、体重、ウエスト、胸囲、++ の身体測定値を (毎日) 追跡するために使用されます。
  2. 測定タイプは個別のタブに分かれており、相互に依存/関連していません
  3. エンティティには少量のデータ、4 ~ 5 個の属性が含まれます
  4. データ量は中程度と予想されます。最大 (月に 30 回の測定 x 5 つの測定タイプ = 月に 150 回の測定/年に 1800 回)
  5. 高度なクエリは使用されません。主に (すべてのデータ要素) の読み取りと新しい測定値の追加。
  6. 測定データをドロップボックスや電子メールなどに簡単に共有/エクスポートできるようにしたいと考えています。

これらの要件/特性を持つ XML ファイルにデータを格納するパフォーマンスの問題はないと思います。その場合、各測定タイプを個別の XML ファイルに分け、モバイル デバイスのどこにファイルを保存する必要がありますか?

4

3 に答える 3

5

Android で利用できるストレージ オプションを読んで、さらに情報を掘り下げてみます。

あなたが説明したように、ドロップボックスにあるファイルへの書き込みは、ドロップボックスに保存されているXMLファイルへの書き込みが良い選択のように思えます。複雑なクエリは必要ありません。一度に 1 つのレコードを読み込むだけです。

ただし、SQL データベースを使用する場合はそれほど手間がかからないと思います。そして、これは長期的にはより柔軟になります。今はクエリを実行したくありませんが、いつか実行するかもしれません。さらに、データを複数のファイルに分割して解析することについて心配する必要はありません。スケーリングを試みると、解析がすぐに面倒になることがあります。

私がお勧めするのは、ContentProvider を作成し、そこにすべての詳細を入れることです。そうすれば、プロバイダーがすべての面倒な作業を行うため、後でデータを変更したい場合に備えて、プログラムはデータの保存方法を気にしません。私は他の何よりもCursorAdapterを使用したいと思います。SQLite を使用することから得られます。さらに、すべての新しいCursorLoaderにより、アプリケーションのパフォーマンスが維持されます。

于 2012-08-05T15:49:12.817 に答える
3

最善の長期的な解決策は、SQLite データベースを使用することです。

しかし、XML を使用したい場合は、優れたソリューションが既にここに示されています: Store static data in Android - custom resource?

于 2012-08-05T15:47:51.030 に答える
0

XML データが大きい場合。XML の解析と挿入は、非常にコストのかかる操作であり、時間がかかります。

XML の解析と挿入で直面するいくつかの問題。

を。XML 解析はメモリを集中的に使用するため、ヒープ サイズが大きくなります。これによりクラッシュが発生する可能性があるため、これに注意する必要があります。b. SQLite DB での挿入には、タプル (行) あたり約 100 ミリ秒かかるため、数千行のデータを取り込むのに必要な時間を計算できます。

データが大きすぎない場合は、SQLite を使用する必要はありません。

于 2012-08-05T15:45:58.523 に答える