首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android文件存储指南

Android文件存储指南
EN

Stack Overflow用户
提问于 2010-10-20 20:51:54
回答 3查看 846关注 0票数 2

我需要写一个Android应用程序,将下载声音从互联网上进一步使用。

我应该在哪里存储这些声音?Sqlite是一种选择吗?加载和播放这些文件的最佳方式是什么?

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-21 05:07:39

我建议把这些文件放在SD卡上,如果有的话。不过,有一件事需要注意,那就是你永远不应该硬编码到SD卡的路径。您可能想要做一些类似以下内容的事情:

代码语言:javascript
复制
try {
        //Create handle to SD card drectory
        exportDirectory = new File(Environment.getExternalStorageDirectory() + "/MyDir");

        //Verify export path exists.  Create otherwise.
        if (exportDirectory.exists() == false) {
            if (exportDirectory.mkdirs() == false) {

                //Directory structure could not be created.
                //Message the user here
                return false;
            }
        }

        //Create handle to SD card file.
        exportFile = new File(exportDirectory.getAbsolutePath() + "/whatever.mp3");

        //Do whatever here

} catch(Exception e) {
        //Exception.  Message user and bail
        return false;
}

从那里开始,只需将您想要的任何数据传输到文件中就可以了。对于这个应用程序来说,SQLite数据库可能会被过度使用,除非你打算存储大量的额外信息。除非您将文件直接存储到数据库中作为BLOB,否则也不能保证用户在应用程序运行期间不会扰乱文件系统。然而,在MP3s等的情况下,曲目/艺术家类型信息可以经由ID3标签直接存储到文件中,而不是使用数据库。

至于播放文件,请参考Android的音频API文档。有一大堆很棒的信息,绝对不能在这里重复。

票数 4
EN

Stack Overflow用户

发布于 2010-10-20 20:56:02

我想说最好的地方是将它们作为单独的文件存储在SD卡上的您自己的文件夹下,即File("/sdcard/com.example.myapp/sound12345.mp3");

编辑:请看phobos51594's answer,它比我的完整得多。

票数 2
EN

Stack Overflow用户

发布于 2010-10-20 20:58:00

最好将它们直接保存在文件系统上。为什么要将其存储在数据库中?是否有其他信息需要与其存储在一起?(如标题、描述等)?如果没有,我会直接将其写入文件系统。

基本上,您可以将其保存到应用程序的data文件夹中(共享首选项和sqlite数据库也存储在其中)。然而,我个人认为应该不鼓励这样做,因为它减少了/data分区上的可用内存(在安卓手机上已经太小了)。大多数手机的可用数据不到50MB(这意味着:应用程序的可用空间不到50MB,不能部分移动到SD卡)。

如果可能的话,你应该总是在SD卡上安全这样的罚款,这样你就不会在数据分区上减少太多的可用空间。即使有了Froyo的A2SD功能,也不是所有已安装应用程序的数据都会被移动到SD卡上。*.dex文件(通常在应用程序总大小的10-50%之间)仍然保留在/data分区上。这个应用程序使用的设置和sqlite数据库也是如此。因此,即使使用A2SD,用户安装的应用程序越多,空间也会变得越来越小

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3977998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档