|
1 2 3 4 5
|
/data/data/{packageName}/files/ context.getFilesDir().getAbsolutePath(); /data/data/{packageName}/cache/ context.getCacheDir().getAbsolutePath();
|
storage 分区(External Storage/Shared Storage)
External Storage/Shared Storage,不需要 root 权限就可以操作。可能包含可移除的存储介质,在使用之前需要判断是否挂载(mounted)
对于 4.4 以前的手机,设备存储很小,存在一个内置的存储空间,这部分空间就是内部存储。另外,还支持一个可以移除的存储介质,就是外部存储,比如 SD 卡。随着硬件升级,大部分大于 Android 4.4 的设备内置的存储空间可以划分为 “内部存储” 和 “外部存储”。同时,若此时还支持插入 SD 卡,则外部存储空间等于 “外部存储” 和 “SD卡存储” 之和。
查看方式
|
1 2 3
|
/storage/emulated/0 @Deprecated Android10 版本上不再推荐使用该 Api Environment.getExternalStorageDirectory()
|
主要目录
storage/emulated/0/Android/
media/{packageName}
,以包名的形式区分,app的私有多媒体空间,5.0 Api可用obb/{packageName}
,以包名的形式区分,游戏 obb 数据文件data/{packageName}
以包名的形式区分,app的私有存储空间/cache
缓存空间,可通过context.getExternalCacheDir()
获取/files
数据存储空间,可通过context.getExternalFilesDir()
获取, Android 10 通过以下方法进一步操作/Music
, 通过context.getExternalFilesDirs(Environment.DIRECTORY_MUSIC)
获取/Podcasts
, 通过context.getExternalFilesDirs(Environment.DIRECTORY_PODCASTS)
获取/Ringtones
, 通过context.getExternalFilesDirs(Environment.DIRECTORY_RINGTONES)
获取/Alarms
, 通过context.getExternalFilesDirs(Environment.DIRECTORY_ALARMS)
获取/Notifications
, 通过context.getExternalFilesDirs(Environment.DIRECTORY_NOTIFICATIONS)
获取/Pictures
, 通过context.getExternalFilesDirs(Environment.DIRECTORY_PICTURES)
获取/Movies
, 通过context.getExternalFilesDirs(Environment.DIRECTORY_MOVIES)
获取media
,obb
,data
Android10及以上 按包名为应用划分 沙盒目录,跟随 app 卸载而删除,外部无法访问storage/emulated/0/Music/
Android 10及以上 无法通过路径访问