在 Android 中,“内部存储”和“外部存储”到底指哪个路径?

2023-01-24 23:48:20 +08:00
 eyeshuaji
5206 次点击
所在节点    Android
5 条回复
OneLiteCore
2023-01-25 13:22:50 +08:00
感觉现在大部分时候这两个概念是混为一谈的。

如果记得没错的话最开始的时候 Android 设备是能够插 TF 存储卡的,此时 TF 卡被称之为外置存储,设备自带的不可拆卸的被称之为内部存储。后面 TF 插卡的设计已经被淘汰了因而只剩下内置存储。

然而在开发中获取内置存储路径的 API 是 Environment.getExternalStorageDirectory() 名字上又让人觉得是外部存储。

现在的话基本上也就用户反馈的时候解释一些东西时才会用都这个概念。
ysc3839
2023-01-26 08:11:21 +08:00
@OneLiteCore 因为一开始设备内置的存储容量不够大,所以只有私有存储空间,共享存储空间需要插入 SD 卡才有,所以后者被称为外置存储。
内置存储一般指的是私有存储空间。
OneLiteCore
2023-01-26 10:53:24 +08:00
@ysc3839 关于私有存储空间,我一般理解为 “/data/data/应用包名” 这个路径的目录也就是 Android 应用的私有空间。

我个人比较费解的点是我自己的设备是小米,而在小米的文件管理器中的 “内置存储设备” 是指向 Environment.getExternalStorageDirectory() 这个目录的。对于非软件行业的普通用户而言这个目录就是他们认为的内置存储。

在手机上类似的概念还有“手机内存” 按理说应该指的是 RAM 但是有不少人是理解成“手机的存储空间”,比如 “我的手机内存 256GB” 这种话。
ysc3839
2023-01-26 11:10:00 +08:00
@OneLiteCore 我说的有问题,内置存储在以前指的是私有存储空间,而在后来共享存储空间内置后指的都是共享存储空间,外置存储指的都是 SD 卡
jim9606
2023-01-26 22:23:06 +08:00
惯例内部存储指 /data/data/包名 / ,其余都是外部存储,可以有多个,插 tf 卡的机子普遍有两个。

最关键区别是内部存储永远可用,而外部存储不作此保证,也不保证受加密保护,app 使用前需要通过 API 检测。对于内置存储的机子,等于多了一个永远可用且受加密保护的外部存储。

非 root 系统存在通过 adb 和用户 UI 修改外部存储内容的方法,app 需要考虑文件被外部读取和修改的情况。
外部存储读写需要 READ_EXTERNAL_STORAGE 、WRITE_EXTERNAL_STORAGE 权限( Android/data/包名 目录有特殊的管理机制),且受新的分区存储模型限制。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/910509

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX