30 個のオブジェクトがあり、各インスタンスは 7 つの文字列フィールドと小さなビットマップで構成されています。これらのオブジェクトは毎日破棄され、再作成されます。私のAndroidアプリでは、このデータをdbから読み書きする方が効率的でしょうか? それとも単純に新しいクラスを作成して 30 個のインスタンスを作成し、それらを配列に格納しますか? メモリ効率/パフォーマンスなど。
お時間をいただきありがとうございます。
30 個のオブジェクトがあり、各インスタンスは 7 つの文字列フィールドと小さなビットマップで構成されています。これらのオブジェクトは毎日破棄され、再作成されます。私のAndroidアプリでは、このデータをdbから読み書きする方が効率的でしょうか? それとも単純に新しいクラスを作成して 30 個のインスタンスを作成し、それらを配列に格納しますか? メモリ効率/パフォーマンスなど。
お時間をいただきありがとうございます。
データベースの定型コードを書きたくない場合は、オブジェクトをファイルとして保存JSONまたはXMLフォーマットできます。
次の 2 つの方法があります。
JSONまたはネイティブXMLに保存し、クラスと必要なデータ形式の間のコンバーターを記述しますデータベースは優れたソリューションですSQLite。Android では非常に高速であるなどの理由からです。ただし、テーブルの構造を変更したい場合は、メソッドのALTER TABLEクエリを作成する必要があり、その他の問題があります。onUpdate()SQLiteOpenHelper
したがって、データを使用XMLまたはJSON保存することをお勧めします。
更新
また、カスタム データ クラスをシリアライズ可能としてマークし、値を ArrayList またはその他の構造体に保存し、シリアライズして保存し、デシリアライズして読み取ることもできます。
Object限られた数のオブジェクトの場合、表現を使用してバッターであると思いますArrayList。多数のエントリの DB 設計。
しかし、データを 1 日中保存する必要がある場合、データをGCメモリに残しておくとデータが失われる危険性があります。その場合、DB に保存する以外に選択肢はありません。
このデータはどこから入手していますか?
24 時間だけでも永続的である必要があるため、項目をデータベースに書き込みます。
画像ファイルを内部ストレージサンドボックスに保存し、データベース内のファイル名で参照する必要があります。データベースに最小のBitmapBLOB を保存するのは通常非効率的であるためです。