0

30 個のオブジェクトがあり、各インスタンスは 7 つの文字列フィールドと小さなビットマップで構成されています。これらのオブジェクトは毎日破棄され、再作成されます。私のAndroidアプリでは、このデータをdbから読み書きする方が効率的でしょうか? それとも単純に新しいクラスを作成して 30 個のインスタンスを作成し、それらを配列に格納しますか? メモリ効率/パフォーマンスなど。

お時間をいただきありがとうございます。

4

3 に答える 3

1

データベースの定型コードを書きたくない場合は、オブジェクトをファイルとして保存JSONまたはXMLフォーマットできます。

次の 2 つの方法があります。

  1. シリアライゼーションを使用して保存し、デシリアライゼーションを使用してファイルシステムに保存する
  2. JSONまたはネイティブXMLに保存し、クラスと必要なデータ形式の間のコンバーターを記述します

データベースは優れたソリューションですSQLite。Android では非常に高速であるなどの理由からです。ただし、テーブルの構造を変更したい場合は、メソッドのALTER TABLEクエリを作成する必要があり、その他の問題があります。onUpdate()SQLiteOpenHelper

したがって、データを使用XMLまたはJSON保存することをお勧めします。

更新

また、カスタム データ クラスをシリアライズ可能としてマークし、値を ArrayList またはその他の構造体に保存し、シリアライズして保存し、デシリアライズして読み取ることもできます。

于 2013-03-29T22:41:17.523 に答える
0

Object限られた数のオブジェクトの場合、表現を使用してバッターであると思いますArrayList。多数のエントリの DB 設計。

しかし、データを 1 日中保存する必要がある場合、データをGCメモリに残しておくとデータが失われる危険性があります。その場合、DB に保存する以外に選択肢はありません。

このデータはどこから入手していますか?

于 2013-03-29T19:42:31.813 に答える
0

24 時間だけでも永続的である必要があるため、項目をデータベースに書き込みます。

画像ファイルを内部ストレージサンドボックスに保存し、データベース内のファイル名で参照する必要があります。データベースに最小のBitmapBLOB を保存するのは通常非効率的であるためです。

于 2013-03-29T19:44:08.660 に答える