1

私は Android 用のメモ作成アプリケーションの初期段階にあり、誰かがメモ データを保存するための優れたソリューションを教えてくれることを願っています。

理想的には、次のようなソリューションを探しています。

  • 各メモ ドキュメントは個別のファイルです (ドロップボックスの同期用)。
  • メモは複数のページで構成できます
  • ノート ページにはバイナリ データ (画像など) を含めることができます。
  • ドキュメント全体をメモリに解析しなくても、1 つのページを読み込むことができます。
  • スレッド セーフ: 複数の読み取り/書き込みが同時に発生する可能性があります。

一度に 1 つのページを抽出する良い方法がないため、XML は (少なくともファイル全体に対して) ありません。zip ファイルの使用を検討しましたが (特に圧縮されている場合)、ファイル全体の読み込みも滞ると思います。

これを行うJavaライブラリがそこにあるはずのようですが、私のgoogle-fuは失敗しています。私が考えることができる他の唯一の代替手段は、すべてのメモに対して個別の sqlite データベースを作成することです。

この問題の良い解決策を知っている人はいますか? ありがとう!

4

2 に答える 2

2

ここではリレーショナル データベースが機能するようです。スキーマを少しいじる必要があるだけです。

たとえば、ページが属するドキュメントのフィールドと、ドキュメント内での順序のフィールドを含む各ページで Pages テーブルを作成します。ページには、別のテーブルに含まれている可能性のあるバイナリ データ用のフィールドもある場合があります。ドキュメント自体に追加のデータがある場合は、ドキュメント用のテーブルもある可能性があります。

私は Android デバイスで SQLite トランザクションを使用したことはありませんが、スレッド セーフに対処するにはそれが良い方法のようです。

于 2011-04-03T03:38:37.897 に答える
1

ドキュメントの保存には SQLite を使用することをお勧めします。最終的には、メモにアクセスするたびにファイル I/O を処理するよりも簡単です。次に、誰かが Dropbox にアップロードしたい場合、その場でファイルを生成してアップロードします。少なくとも、Notes テーブルと Pages テーブルを用意することは理にかなっています。そうすれば、各ページを個別に読み込むことができ、メモはページの集まりにすぎません。さらに、特定のページのデータベースに画像を BLOB として保存できます。基本的に、ページごとに 1 種類のコンテンツのみが必要な場合は、ページ テーブルに id 列とコンテンツ列のようなものが必要です。あるいは、複数のタイプのコンテンツなど、より複雑なものをサポートしたい場合は、ページを「エンティティ」などの他のもののコレクションにする必要があります。

IMO、リレーショナル データベースは、ファイル全体をロードすることなく、特定のページから読み取るという要件を達成するための最も簡単な方法になります。

于 2011-04-03T04:07:30.617 に答える