【问题标题】:What are the differences among Internal storage, external storage, sd card and removable storage?内部存储、外部存储、SD卡和可移动存储有什么区别?
【发布时间】:2011-02-23 15:00:37
【问题描述】:

来自official documentation

使用外部存储

每台兼容 Android 的设备都支持共享的“外部存储” 可以用来保存文件。 这可以是可移动存储 媒体(例如 SD 卡)或内部(不可移动) 存储...

我真的对这个问题感到困惑。据我了解,使用外部存储并不一定意味着使用可移动卡,对吗?但是,在谈到外部存储时,它总是被称为“sd 卡”。

我正在开发一个从 Internet 下载 .mp3 文件的应用程序。我想将这些文件保存在手机内存中(不想使用任何可移动设备),但据我所知,这些文件必须保存在外部存储器中。但是,我想提供导入的可能性可移动设备中的文件。我应该在哪里以及如何保存这些文件?

谢谢

【问题讨论】:

标签: android


【解决方案1】:

内部存储、外部存储(也称为主外部存储)和辅助外部存储之间的区别?

内部存储:是用户无法访问的存储,除非通过已安装的应用程序(或通过 root 设备)。示例:data/data/app_packageName

外部存储有两种类型:

主外部存储:内置共享存储,“用户可以通过插入 USB 电缆并将其作为驱动器安装在主机上来访问”。示例:当我们说 Nexus 5 32 GB。

辅助外部存储:可移动存储。示例:SD 卡。

【讨论】:

【解决方案2】:

在构建使用内部存储的应用时,Android 操作系统会创建一个唯一文件夹,该文件夹只能从应用访问,因此其他应用甚至用户都无法看到文件夹中的内容。

外部存储更像是公共存储,所以现在它是 sdcard,但可以成为任何其他类型的存储(远程硬盘驱动器或其他任何东西)。

内部存储只能用于存储应用程序数据(应用程序运行的首选项文件和设置、声音或图像媒体)。 如果您打算下载许多 mp3,我建议您将它们保存到外部存储中,因为外部存储通常更大。此外,将数据存储在内部存储器上可能会阻止用户安装其他应用程序。

【讨论】:

  • 首先,非常感谢您的快速回答。好吧,但是,当您谈论外部存储时,它不是可移动存储卡,不是吗?我正在做的是:首选项保存在内部存储上,.mp3 文件保存在外部存储上(称为 sdcard?),除此之外,我想使用可移动卡让用户将文件导入应用程序。这可能吗?
  • 外部存储目前通常是 SD 卡,所以它是可能的。
  • SD 卡被称为“外部存储”以兼容其他独立于系统的存储方式。所以 SD 卡是外部存储(两者都是一样的)。您需要做的是为您的 mp3 创建一个特定文件夹,然后扫描外部存储(或让用户浏览)以查找自己的文件。
  • “只能从应用程序访问,因此没有其他应用程序,甚至用户”甚至都没有关闭。您可以在 Settings>Storage>Files>Android>data>package.name>files 中访问getFilesDir() 下的文件。所以不,你说的不正确
【解决方案3】:

根据 Google/官方 Android 文档的内部和外部存储术语与我们的想法完全不同。

根据官方 Android 文档:-

内部存储:默认情况下,保存到内部存储的文件是您的应用程序私有的,其他应用程序无法访问它们。当用户卸载您的应用程序时,这些文件将被删除/删除。您的应用用户也无法使用文件管理器访问它们;即使在文件管理器中启用“显示隐藏文件”选项后。要访问内部存储中的文件,您必须 root 您的 Android 手机。因此,这不是我们认为的手机内部存储器 - Nexus 5 的 32 GB 内部存储器。

外部存储:

这可以是可移动存储介质(例如 SD 卡)或 内部(不可移动)存储

这意味着,Nexus 6P 的 64 GB 内部存储器和我们插入手机卡槽的可移动 microSD 卡等存储类型都被视为外部存储。

可移动存储仅表示 microSD 卡存储,而不是内部存储器。

要将您的应用程序文件存储在 SD 卡中,您可以使用 Context 类中的 File[] getExternalFilesDirs (String type) 方法。通常,第二个返回路径是 microSD 卡(如果有)的存储路径。

注意:我已编辑 - 在@Tunaki 发表评论后使我的答案更有用。

【解决方案4】:

来自Developer docs

所有 Android 设备都有两个文件存储区域:“内部”和“外部”存储。这些名称来自早期的 Android,当时大多数设备都提供内置的非易失性存储器(内部存储),以及可移动存储介质,例如 micro SD 卡(外部存储)。有些设备将永久存储空间划分为“内部”和“外部”分区,因此即使没有可移动存储介质,也始终存在两个存储空间,无论外部存储是否可移动,API 行为都是相同的。

【讨论】:

    【解决方案5】:

    我认为在操作系统中,它将外部存储定义为与实际操作系统文件结构无关的任何内容。如果您还记得,当您写入“内部存储”时,Android 将为您的应用程序创建一个私有文件夹。因此,基本上,如果这是某种隐藏文件夹,则意味着外部存储可能有资格被操作系统自动隐藏或直接管理。因此,这意味着内部存储的定义取决于手机制造商,因为他们可以拥有 1 个内部闪存的主块,上面有两个分区。一个分区用于存放操作系统,另一个分区用于存储手机上的所有内容。

    基本上我的意思是:这更多是与硬件相关的事情,“外部存储”的概念甚至可以扩展到制造商添加的额外内部存储(闪存)。您甚至可以考虑存储选项用户也将其定义为外部存储。

    【讨论】:

    • 如果设备同时有一个内部分区和一个用于“外部存储”的 sdcard,您可以选择在这两者之间存储文件的位置,还是操作系统会自动降级外部存储?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-08
    • 2020-01-11
    • 2016-03-19
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多