-1

何千ものデータをプリロードするアプリを構築しようとしています (このデータには曲の歌詞と作者が含まれています)。最初は SQLite を使用することを考えていましたが、アセット フォルダーにプリロードされたデータベースの余分なコピーの問題があったため (これによりアプリのサイズが大きくなるため)、ファイルについて考える必要がありました。これは、各歌詞を生のフォルダーに保存し、アクティビティの入力ストリームを介してそれらを呼び出すことです。

この技術のどれが最適か知りたいです。SQLite を使用する必要がありますか、それともファイルを使用する必要がありますか?

4

4 に答える 4

0

まず第一に、インデックス付きデータへのアクセスは、ほとんどの場合、行ファイルを使用するよりも SQLite DB を使用する Android の方が高速です。それが私なら、DBオプションを使用します。

ただし、UX を最適化するために使用できる多くのトリックがあります。たとえば、次のような段階でデータをコピーできます。

  • 昼食時にすぐに利用できるデータを考えて、最初にコピーします。(たぶん曲名表)。

  • ユーザーが何が起こっているのかさえ気付かずに、バックグラウンド スレッドで残りのデータをコピーします。

また、ユーザーを数秒間ブロックし、その後は完璧なエクスペリエンスを提供しても問題ないことを覚えておいてください。ブロックせずに遅いエクスペリエンスを提供する代わりに (ファイル IO)。

于 2013-05-26T10:21:48.213 に答える
0

SQL データベースはあなたに役立つはずです。

一括更新は必ず SQL データベース トランザクションとして実行してください。

1 秒あたりのトランザクション数はかなり少ないですが、1 回のトランザクションで数千行を変更できます。

また、優れたクエリ パフォーマンスとパワーを提供する FTS テーブルから始めることもお勧めします。

于 2013-05-26T09:58:06.817 に答える
0

私は現在 MediaPlayer を自分で作成しており、SQLite を使用しています。以前は File を使用していましたが、かなり遅かったです。私は 350 曲あり、データベースに多くの情報を保存しています。(実行時に読み込まれる AlbumArt を除くすべて)IDV3tag から完全な音楽情報を保存します。正しく機能させるのは少し難しいですが、はるかに高速です。問題がある場合は、私に連絡して助けを求めてください。EIDT: 多数のファイルがある場合は Index を使用しますが、データベースの再構築時に削除するように注意してください。

于 2013-05-26T09:53:43.660 に答える