V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
eyeshuaji
V2EX  ›  Android

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

  •  
  •   eyeshuaji · 2023-01-24 23:48:20 +08:00 · 9329 次点击
    这是一个创建于 673 天前的主题,其中的信息可能已经有所发展或是发生改变。
    5 条回复    2023-01-26 22:23:06 +08:00
    OneLiteCore
        1
    OneLiteCore  
       2023-01-25 13:22:50 +08:00   ❤️ 2
    感觉现在大部分时候这两个概念是混为一谈的。

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

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

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

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

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

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

    非 root 系统存在通过 adb 和用户 UI 修改外部存储内容的方法,app 需要考虑文件被外部读取和修改的情况。
    外部存储读写需要 READ_EXTERNAL_STORAGE 、WRITE_EXTERNAL_STORAGE 权限( Android/data/包名 目录有特殊的管理机制),且受新的分区存储模型限制。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1109 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 122ms · UTC 22:48 · PVG 06:48 · LAX 14:48 · JFK 17:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.