XML ファイルを使用して、Android アプリが生成するデータを保存しようとしています。それを念頭に置いて、コミュニティに 2 つの質問があります。
Android にデータを保存する最良の方法であり、データが
XML
毎秒または 1 秒未満で追加または変更される可能性がある場合に最も効率的です。#1 で説明したシナリオに本当に最適な場合
XML
、どのように設定すればよいですか?
XML ファイルを使用して、Android アプリが生成するデータを保存しようとしています。それを念頭に置いて、コミュニティに 2 つの質問があります。
Android にデータを保存する最良の方法であり、データがXML
毎秒または 1 秒未満で追加または変更される可能性がある場合に最も効率的です。
#1 で説明したシナリオに本当に最適な場合XML
、どのように設定すればよいですか?
XML は、Android でローカル データを保持するための最悪のアイデアの 1 つです。
最も一般的に使用されるのは、Android プラットフォームで利用可能な SQLite ですが、それはすべて、どのデータをどのように使用するかによって異なります。
多くのモバイル アプリケーションでは、次のいずれかの理由でリレーショナル データベースは必要ありません。
どのような代替手段を使用できますか? 共有設定 - プリミティブ オブジェクトの単純なキー/値ストレージ データのシリアライゼーション - 検討用 - バイナリ (ネイティブ Java)、JSON、パーセル可能 (共有設定と組み合わせることができます)
私のアプリのほとんどで、現在「ローカルストレージ」にバイナリシリアル化を使用しています。- 十分に高速です (通常、ローカル SQLite エンジンを起動するよりもはるかに高速です)。特に、POJO オブジェクトに解析された json/xml ダウンロード データに使用する場合は、実装が非常に簡単で迅速です。あなたがする必要があるのは、「extends serializable」を入れて、数行のコードを入れて構造全体をシリアライズ/デシリアライズするだけです-データをローカルに保持し、バックエンドと通信するために同じクラスを使用できます
もちろん、すべては状況によって異なります。あるセンサーからのデータのログをローカルに保持したい場合、または他のアプリがこのデータを使用できるようにしたい場合、1k 以上のレコードをすばやくフィルター処理する必要がある場合、または数百行のコードを書きたい場合SQLite が最適なオプションです。しかし、ほとんどのモバイル アプリケーションには、リレーショナル エンジンを使用する明確な理由がありません (完全なエンジンではありません)。
XML ではなく JSON を使用し、Google のGSONを使用することを強く検討します。独自の構造を持つデータベースに直接書き込むことを検討し、トランザクションとセットを使用することをお勧めします。JSON/XML を使用する理由はありますか?