android百度路径规划简书,Android存储及路径

Android存储及路径

Android手机存储分类

分为:内部存储和外部存储

如何区分内部存储和外部存储:可以从物理和逻辑区分

从物理的角度区分,内部存储就是手机自带存储空间,外部存储就是外部接入的存储空间例如SD卡

从逻辑意义上区分,data,system 目录就是手机的内部存储,而 mnt 或者 storage目录下的sdcard0指向的sdcard目录就是外部存储。如果是手机自带的外部存储被称为机身外部存储,外置的SD卡则称之为外部存储。当然两者都称为外部存储也没关系。这里描述的内部存储和机身外部存储都属于机身存储;

逻辑区分是从4.4以上版本开始的;

bbde25a855b0

image

二,内部存储

获取内部存储路径和api对应关系

1,通过Environment

Environment.getDataDirectory() /data

Environment.getRootDirectory() /system

Environment.getDownloadCacheDirectory() /cache

2,通过上下文Context

getCacheDir() /data/data/0/包名/cache

getFilesDir() /data/data/0/包名/files

Build.VERSION_CODES.LOLLIPOP及以上版本新增的API

getDir("靓仔", MODE_PRIVATE) /data/data/0/包名/app_靓仔

getNoBackupFilesDir() /data/data/0/包名/no_backup

getCodeCacheDir() /data/data/0/包名/code_cache

Build.VERSION_CODES.N及以上版本新增的API

getDataDir() /data/data

特点:

1、内部存储路径中的文件是分类存储的,我们无法干涉,除了cache目录,别的目录系统不会自动创建

2、除了files目录,别的目录我们几乎都是无法手动操作的

3、别的App几乎无法访问内部存储中的数据,除了用非法手段或者我们主动暴露

4、内部存储目录下的文件夹及文件会随着app的卸载而被系统自动删除

三,外部存储

外部存储又可分为共有目录和私有目录;

私有目录

私有目录:不需要访问权限

Android 在外部存储空间中也提供了特殊目录供App存放私有文件,该路径为:/storage/emulated/0/Android/data/包名/

注意:应用安装之后/storage/emulated/0/Android/data/是没有对应的应用文件夹的,需要手动调用对应的API创建;

获取私有目录路径

getObbDir() /storage/emulated/0/Android/obb/com.xjkj.autorepair

getExternalCacheDir() /storage/emulated/0/Android/data/com.xjkj.autorepair/cache

getExternalFilesDir(null) /storage/emulated/0/Android/data/com.xjkj.autorepair/files

共有目录

共有目录:需要申请权限才能访问

权限:6.0以上需要动态申请

获取共有目录的API 29中已过时:

Api

路径

Environment.getExternalStorageDirectory()

/storage/emulated/0

Environment.getExternalStoragePublicDirector(Environment.DIRECTORY_DOWNLOADS)获取共有目录,例如Download共有目录

/storage/emulated/0/Download

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值