Android Q 存储体系适配(一)

简介

由于Android10 Android系统开始引入沙盒系统,且Android11 进一步的对沙盒系统进行了限制,以此为契机,梳理一下Android 的存储体系。

内部存储和外部存储

内部存储的位置是挂载在Android系统中的/data目录下面的存储空间。外部存储时挂载在Android系统中的/sdcard目录下面的存储空间。
在Android4.4 以前,手机端的存储设备非常小,因此可以类比PC机,机身内部的存储设备就是内部存储。外置的SD卡就是外部存储。随着手机设备存储设备的越来越大,机身的存储设备就分为内部存储机身外部存储,当然手机的存储设备肯定有一部分是用于存储系统相关的比如说**/system** 等等。关于内部存储和外部存储的相关知识参考博客

存储体系和读写权限

在Android存储系统中有非常多的目录,如果是做应用开发,可以把存储系统进行一个简化,简化后存储结构图如下
在这里插入图片描述
根据存储结构图,存储相关目录可以分为:内部存储和外部存储。

内部存储

内部存储用于存储应用相关数据目录和系统相关目录。由于系统相关目录需要root权限,且Android 7.0以后取消了root权限,因此不考虑系统相关目录,只考虑某个应用相关数据目录(/data/data/)。
内部存储用于存储某个应用相关数据的目录可分为

  • app_textures 应用使用webview时,会生成
  • app_webview 应用使用webview时,会生成
  • cache 应用缓存目录,官方文档介绍目录存储的内容不能超过1M,如果超过1M,系统会删除一些内容。适用于存储删除后对客户使用无关的数据,最为常用的是 lrucache 相关的数据。
  • database 应用默认数据库存储目录
  • files 应用文件存储目录,该目录可以存储任意格式的文件,且没有大小限制,在手机应用管理"删除数据",才会删除该目录下的文件。
  • share_prefs 应用默认存储sharedpreferences相关文件的目录。

在一般的场景下,真的可以随意操作的目录,只有cache目录和files目录。此目录适合存放应用自身使用的文件,且不适合提供给其他使用的文件,虽然可以通过一些方式提供给其他应用读写,但是不建议这样操作。

外部存储

外部存储可以分为机身外部存储和外置外部存储,由于外置存储比较少接触,因此重点介绍机身外部存储,机身外部存储可以分为:APK 扩展目录,应用专有目录,应用多媒体目录,公共目录,其他自定义目录。

APK扩展目录

APK扩展目录路径为 /sdcard/Android/obb/。主要在google play 中使用,由于在google play 发布的应用对大小有限制,因此存在APK扩展目录。此目录在国内的场景下面不使用。

应用专有目录

应用专有目录下可以创建两个文件夹cache 和 files 文件夹。两者的区别和内部存储的cache 和 files相同。此目录适合存放属于应用自己本身的文件,又可以提供给其他应用读写的文件。

应用多媒体目录

应用专有目录的路径是 /sdcard/Android/media。此目录用于存储多媒体文件,与公共多媒体目录的区别是,该目录存储的多媒体文件,在应用卸载时也同步删除。公共目录存储的多媒体文件在应用卸载时不会删除。此目录在API >=29 时被弃用。

公共目录

公共目录用于存储多媒体文件,此目录所有APP都可以访问,且应用卸载不会删除保存在公共目录的多媒体文件。
Android系统中公共目录有

  1. Environment.DIRECTORY_MUSIC 音乐存放的标准目录
  2. Environment.DIRECTORY_PODCASTS 标准目录,在其中放置任何音频文件,应该在用户可以选择的播客列表
  3. Environment.DIRECTORY_NOTIFICATIONS 系统通知铃声存放的标准目录
  4. Environment.DIRECTORY_ALARMS 系统提醒铃声存放的标准目录
  5. Environment.DIRECTORY_RINGTONES 系统铃声存放的标准目录
  6. Environment.DIRECTORY_AUDIOBOOKS 音频书籍存放的标准目录 (API >=29 新增)
  7. Environment.DIRECTORY_MOVIES 视频文件存储的标准目录
  8. Environment.DIRECTORY_DCIM 通过摄像头得到的视频或者照片存储的目录
  9. Environment.DIRECTORY_PICTURES 图片存放的标准目录
  10. Environment.DIRECTORY_SCREENSHOTS 截屏文件存储的标准目录,默认在Pictures下 (API >=29 新增)
  11. Environment.DIRECTORY_DOWNLOADS 下载文件存储的标准目录
  12. Environment.DIRECTORY_DOCUMENTS 文档存储标准目录
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值