-1

我正在尝试构建一个预加载数千个数据的应用程序(这些数据包含歌曲的歌词和作者)。最初我想使用 SQLite,但由于资产文件夹中预加载数据库的额外副本存在问题(因为这会增加应用程序的大小),我不得不考虑文件;即将每个歌词存储在原始文件夹中,并通过我的活动的输入流调用它们。

我想知道哪种技术最好。我应该使用 SQLite 还是应该使用文件?

4

4 回答 4

0

首先,在大多数情况下,使用 SQLite DB 在 android 中访问索引数据比使用行文件更快。所以如果是我,我会选择 DB 选项。

但是您可以使用许多技巧来优化 UX,例如,您可以在以下阶段复制数据:

  • 想想应该在午餐时立即可用的数据并首先复制它。(也许歌曲名称表)。

  • 在后台线程中复制其余数据,用户甚至不会注意到发生了什么。

请记住,可以将用户屏蔽几秒钟,然后再为他们提供完美的体验。而不是不阻塞并给他们缓慢的体验(文件IO)。

于 2013-05-26T10:21:48.213 回答
0

我目前正在自己​​制作 MediaPlayer,并且我使用 SQLite。我以前用过File,速度很慢。我有 350 首歌曲,我在数据库中存储了很多信息。(除了 AlbumArt 之外的所有内容,在运行时加载)。我存储来自 IDV3tag 的完整音乐信息。使其正常工作有点困难,但速度要快得多。如果您有任何问题,请联系我寻求帮助。EIDT:如果您有大量文件,请使用索引,但要小心在数据库重建时将其删除。

于 2013-05-26T09:53:43.660 回答
0

SQL 数据库应该可以很好地为您服务。

确保将批量更新作为 SQL 数据库事务执行。

每秒的事务数非常少,但您可以在单个事务中更改数千行。

我还建议从 FTS 表开始,这将提供良好的查询性能和功能。

于 2013-05-26T09:58:06.817 回答
0

APK 扩展文件可能是您的最佳选择:

  1. 它们存储在外部共享内存中
  2. 您可以在不压缩的情况下将它们发布到 Google Play
  3. 这使得不在设备上存储数据库的两个副本
于 2013-05-26T10:10:23.923 回答