美文网首页
Android文件体系-基础

Android文件体系-基础

作者: liliLearn | 来源:发表于2019-03-25 16:51 被阅读0次

前言

对于任何一个应用来说存储肯定是必不可少的,对于很多做Android开发的同学来说可能认为文件存储很简单,但是他们未必就搞懂了他的数据到底存在了哪里,以及他的数据是否存对了地方,下面我将介绍安卓文件存储:

一、认识手机系统文件目录

先丢一个Nexus 5 手机的File Explorer获取的系统目录结构图

image
  1. acct 系统回收站,删除的系统文件。
  2. cache 缓存
  3. config 配置
  4. d
  5. data 用户的所有程序相关数据
    • app/ 所有用户安装的apk文件
    • data/
    • local
  6. dev 设备文件,Linux系统常规文件夹,里面的文件很多都是设备模拟的文件系统
  7. etc 系统主要配置文件
  8. firmware 固件
  9. met 挂载点
  10. oem oem
  11. proc 运行时文件
  12. res
  13. root 超级用户的配置文件
  14. sbin 系统工具,比如 ps/cp/pm 等
  15. scared sd卡
  16. storage 手机存储设备
  17. sys Linux 内核文件
  18. system Android 系统文件
    • app
    • bin
    • etc
    • fonts
    • framework
    • lib
    • ....
  19. vendor 供应商文件

二、常用目录介绍

根据上面的介绍这样多目录,抛开系统文件,其中/system和/data、storage/是开发者非常关心的三个目录。

  1. /system
    • /system/app:存放系统软件
  2. /data
    • data/app:存放用户安装的软件
    • data/data:存放用户软件的数据
  3. /storage
    • storage/emulated/0:存储卡
    • mnt/sdcard:虚拟路径,快捷方式,实际也指向存储卡
    • sdcard:虚拟路径,快捷方式,实际也指向存储卡

三、内存,内部存储,外部存储,概念的区分

在安卓中把文件存储分为了内部存储(Internal storage)外部存储(External storage),然后我们总把内存、内部存储、外部存储傻傻分不清楚,把外部存储私有目录认为是内部存储等等。下面我们就来认识下内部存储和外部存储和他们的区别吧!

1.概念介绍
  • 内存(Memory):也称为运行内存是一种临时的数据存储器,特点是当断电后数据就会消失,并且读取和写入的速度非常快。
  • 内部存储(Internal Storage):机身存储的私有文件,存储路径在/data/data下。相当于Linux系统的用户私有文件,除了当前用户其他用户都没有访问权限。
  • 外部存储(External Storage):机身存储公有文件和外置的存储(SDCard),所有APP共享,存储路径在/mnt 或者 /storage下。
2.区分内部存储和外部存储
image

先放上我的手机的关于手机信息介绍,系统版本8.0 运行内存4GB 手机存储64GB, 这里所谓的运行内存就是内存 而手机存储是内部存储和外部存储共用大小。我的手机是8.0系统已经把内部存储和外部存储集成在一起,所以内部存储和外部存储共用64G。

用一张图来帮助理解


image

注: 在原先的时候内部存储和外部存储是分开的,这种很好理解也很好区分(这种情况多发生Android4.4 及以前),但是随着Android手机的发展,渐渐的都做成了一体机甚至将内部存储和外部存储都集成在了一起,只是在逻辑上区分了内部存储和外部存储。甚至到了现在很多厂商连外置SD卡的卡槽都不提供了,现在手机电池也是不可拆卸。

3.内部存储和外部存储区别和特点

内部存储:总是可用的,文件默认只能被你的应用访问到,应用卸载之后,内部存储中的这些文件也被删除。相当与Linux的个人目录,只能当前用户才能看到
存储路径:data/data/[package name]/XXX

外部存储:并不总是可用的,所有应用共享,文件能被所有应用访问到,外部存储又分为公有目录和私有目录

  • public:公有目录 文件能被其他应用访问到,APP卸载后文件还会存在
    存储路径:/storage/emulated/0/XXX
  • private: 私有目录,文件能被所有应用访问到,APP卸载后文件会被删除
    存储路径:/storage/emulated/0/Android/data/XXX
1.内存存储路径
  • /data/data/[package name]/app_ 自定义文件
  • /data/data/[package name]/cache 缓存
  • /data/data/[package name]/code_cache 代码缓存
  • /data/data/[package name]/database 数据库
  • /data/data/[package name]/files 文件
  • /data/data/[package name]/no_backup 不会自动备份到远程存储的应用程序文件
  • /data/data/[package name]/shared_prefs SharedPreferences文件
2.外部存存储路径
  • 外部存储公共目录
    • /storage/emulated/0/Music
    • /storage/emulated/0/Podcasts
    • /storage/emulated/0/Ringtones
    • /storage/emulated/0/Alarms
    • /storage/emulated/0/Notifications
    • /storage/emulated/0/Pictures
    • /storage/emulated/0/Movies
    • /storage/emulated/0/Downloads
    • /storage/emulated/0/Dcim
    • /storage/emulated/0/Documents
  • 外部存储公共私有目录
    • /storage/emulated/0/Android/data/[package name]/files
    • /storage/emulated/0/Android/data/[package name]/cache
    • /storage/emulated/0/Android/obb/[package name]

由于本人水平有限,如果有错误和需要改进的地方,还希望大家多多指教,共同进步。

相关文章

网友评论

      本文标题:Android文件体系-基础

      本文链接:https://www.haomeiwen.com/subject/lfsbvqtx.html