Android · 2021年9月22日 0

Android 存储

1.存储方式

Android文件系统分为 内部存储(internal storage) 和外部存储(external storage)

其中存储路径为:

内部存储 : data/user/0/packageName
外部存储 : storage/emulated/0/android/data/packageName

安卓存储主要变化阶段分类可以按照安卓版本进行大的范围划分,主要改变分别在Android 4.4以前以及以后,直至Android 11 及以后,Android 4.4以前主要为内部存储和外部存储,其中内部存储就是安卓内部存储空间,外部存储为SD卡存储,在Android 4.4到Android 10之间,则氛围,内部存储为Android应用包下分配的存储位置进行存储,外部存储为SD卡存储和手机内置存储空间的存储,到Android 11及以后,则出现了沙盒模式,规范了存储空间,所以存储方式发生了改变,存储也分为内部存储又称为沙盒模式,外部存储等

2.分区存储适配

如果以Android 11为目标平台的应用,需要在manifest清单中标记preserveLegacyExternalStorage 为true,这样在Android11的机器上覆盖安装时,才能访问旧版存储位置,卸载重装会失效。覆盖安装可以访问旧版存储,且将manifest清单中标记requestLegacyExternalStorage 为true。
当然,为了系统安全和更高适配,建议使用提供对应存储

3.推荐存储方式

而Environment.getExternalStorageDirectory() 在 API Level 29 开始已被弃用,开发者应迁移至 Context#getExternalFilesDir(String)
,在getExternalFilesDir传参,可以传null,也可以传递为Environment.DIRECTORY_DOWNLOADS等官方提供的公共存储地址