Android存储目录
- 问:三个概念,你弄清楚了吗?
内存:Memory
内部存储:InternalStorage
外部存储:ExternalStorage - 答:说到这三个概念,就不得不说一下平时我们选购手机的参数 6G+128G、8G+256G 等,这里的 6G 和 8G 指的是手机内存(手机运行时存储),而 128G 和 256G 指的是手机存储空间(由内部存储的空间和外部存储的空间构成)。PS:所以如果追求手机的运行速度,内存买大一点。可以理解为手机内存是操场,而手机存储空间是教室,要想学生们跑得快自然操场得大一些,教室的大小只决定了可以容纳多少学生。
- 你了解 Android 手机的存储目录吗?
- 你知道 Android 手机 App 应用数据都存放在哪了吗?
- 你知道 Android 手机存储存在的隐私安全问题吗?
那么开始今天的故事。
虚拟世界
Android 存储目录的化身——A 州 M 社区。
众所周知,A 州是一座正在蓬勃发展的城市。M 社区是 A 州引以为傲的设施完备的高档社区(各家各户都是独门独幢),有几户大户人家住在 M 社区,陶钱豹陶家、魏欣魏家、窦银窦家等是其中翘楚。
- M 社区总占地 30 万平方米,公共区域面积大,绿化率高。住宅区是各家各户私有区域(有围墙大门),未经主人允许不得擅自闯入。除此之外,社区设有专门的停车区来实现人车分离,当然停车区也属于私有区域,与住宅绑定。私有区域都有尊贵的户主标识。
- 除了私有区域,社区还拥有相册公园、音乐游泳馆、图片图书馆等九大公共区域,由物业统一管理,各家各户共享资源。
- 如果有一户人家搬出社区,物业会对这户人家的私有区域(包括住宅区和停车区)进行打扫,保证不会残留垃圾,给下一户人家良好的居住体验,同时也会保留上一户人家在公共区域所留下的记录和贡献(这是社区的共享资源)。
- 社区公共区域虽然受物业管辖,但限制不大,各家各户几乎可以自由地使用和享受公共资源,所以公共区域的文明建设就要靠对社区居民的自觉性了。
把目光拉回到现实来。
现实世界
小米 5 真机文件存储目录:
附上包含针对开发者的 Android 存储目录 Api 整理:
内部存储根目录:/data
内部存储私有目录根目录:/data/user/0/包名(如 com.taobao.taobao)
内部存储普通文件私有目录:/data/user/0/包名(如 com.taobao.taobao)/files
内部存储缓存文件私有目录:/data/user/0/包名(如 com.taobao.taobao)/cache
外部存储根目录:/storage/emulated/0
外部存储私有目录根目录:/storage/emulated/0/Android/data/包名(如 com.taobao.taobao)
外部存储普通文件私有目录:/storage/emulated/0/Android/data/包名(如 com.taobao.taobao)/files
外部存储缓存文件私有目录:/storage/emulated/0/Android/data/包名(如 com.taobao.taobao)/cache
清理数据的两个选项:
- 清理数据:会清理所有私有目录(内部存储私有目录根目录和外部存储私有目录根目录)
- 清理缓存:会清理所有缓存文件目录(内部存储缓存文件私有目录和外部存储缓存文件私有目录)
总结
本文基于 Android4.4 及以上系统说明,因为 Android4.4 以下存储目录有细微区别,这里不做探讨。
- Android 存储目录主要分为内部存储私有目录、外部存储私有目录和外部存储公共目录。
- Android 手机 App 应用的数据中与应用相关的缓存数据等(这些数据会随着应用卸载一起删除)一般存储在外部存储私有目录,在外部存储私有目录不可用的情况下才考虑内部存储私有目录(内部存储空间较少,比较珍贵);Android 手机 App 应用的数据中与应用无关的数据(例如保存的照片,这些数据不会随着应用卸载一起删除)存储在外部存储公共目录或外部存储自定义的其他目录下。
- Android 手机存储对外部公共存储部分的限制较少,存在隐私安全隐患。(据说你在“猫西”上搜索耳机商品,它会将这个隐私信息存储到你手机的外部存储,然后你在打开“明日底线”的时候会读取这个隐私信息,给你推送耳机的广告)
思考
造成当前 Android 存储目录使用混乱的局面有多种因素。一是谷歌在 Android系统层面没有杜绝这种情况的发生;二是国内 Android开发者水平良莠不齐,有像我这样的菜鸟(哭)程序员对 Android 存储目录不甚了解,复制粘贴网上的模板代码就会导致对存储目录的胡乱使用,也有明知不可为而为之的“黑心”程序员,故意利用 Android 存储目录“漏洞”来达到不可告人的目的。
最后,提醒各位,作为开发者,还是要恪守底线;作为 Android 用户,要加强隐私安全意识,不要随意下载未知来源的 App,多加注意各类 App 所需的应用权限(它们可能在背后偷偷利用你所赋予的权限干你不知道的事)。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!