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 時間だけでも永続的である必要があるため、項目をデータベースに書き込みます。
画像ファイルを内部ストレージサンドボックスに保存し、データベース内のファイル名で参照する必要があります。データベースに最小のBitmap
BLOB を保存するのは通常非効率的であるためです。