android+外部存储+大小限制,Android存储

本文主要介绍了Android的存储路径,包括内部存储和外部存储。内部存储如/data/data目录存放应用私有数据,外部存储有公共目录和私有目录。还提到了/data/app和/system/app的区别,如权限、卸载方式和大小限制等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android存储路径

先来看一张大图:

format,png

内部存储Environment.getDataDirectory().getParentFile();也就是根目录,一般就是指/data/data目录下的数据,需要root之后可以看见

/data/app

该文件存放着系统中安装的第三方应用apk

Android的应用安装就是将应用安装包拷贝到/data/app目录下面,每个包本质是一个zip压缩文件。为了提升启动效率,Android会将解压的dex提取出来,缓存在/data/dalvik-cache目录下

api

路径

getDataDirectory()

/data

getDownloadCacheDirectory()

/cache

getRootDirectory()

/system

/data/data

该文件夹存放存储包==私有数据==,对于设备中每一个安装的App,系统都会在内部存储空间的 data/data 目录下以应用包名为名字自动创建与之对应的文件夹。用户卸载 App 时,系统自动删除data/data目录下对应包名的文件夹及其内容。该目录下又把存储内容进行了分类:

地址

说明

api

data/data/包名/cache

存放缓存信息

context.getCacheDir()

data/data/包名/database

APP数据库信息

context.getDataDir() / context.getDatabasePath(name)

data/data/包名/files

存放APP的文件信息

context.getFilesDir()

外部存储

每个兼容 Android 的设备都支持可用于保存文件的共享“外部存储”。 该存储可能是可移除的存储介质(例如 SD 卡)或内部(不可移除)存储。 保存到外部存储的文件是全局可读取文件,而且,在计算机上启用 USB 大容量存储以传输文件后,可由用户修改这些文件。

format,png

获取外部存储路径及状态

Environment.getExternalStorageState()

Environment.getExternalStorageDirectory()

公共目录

Android在外部存储上提供了十个公共目录来存储对应的文件,通过api:Environment.getExternalStoragePublicDirectory(type)来访问

名称

地址

DIRECTORY_MUSIC

/storage/emulated/0/Music

DIRECTORY_PODCASTS

/storage/emulated/0/Podcasts

DIRECTORY_RINGTONES

/storage/emulated/0/Ringtones

DIRECTORY_ALARMS

/storage/emulated/0/Alarms

DIRECTORY_NOTIFICATIONS

/storage/emulated/0/Notifications

DIRECTORY_PICTURES

/storage/emulated/0/Pictures

DIRECTORY_MOVIES

/storage/emulated/0/Movies

DIRECTORY_DOWNLOADS

/storage/emulated/0/Downloads

DIRECTORY_DCIM

/storage/emulated/0/Dcim

DIRECTORY_DOCUMENTS

/storage/emulated/0/Documents

3. 私有目录

Android2.2 引入了基于扩展存储器的应用缓存目录,该目录指向大容量的扩展存储器。==与应用的内存私有目录一样,缓存目录会随着应用的卸载一并删除。==

==和内部存储一样,会在 SD 卡的 Android/data ++目录下生成对应包名的文件夹++==

地址

api

/storage/emulated/0/Android/data/应用包名/files

context.getExternalFilesDir(type)

/storage/emulated/0/Android/data/应用包名/cache

context.getExternalCacheDir()

/storage/emulated/0/Android/obb/应用包名

context.getObbDir()

Android其它目录/system/app 和 /data/app 的区别

/data/app 里软件权限没全开,/system/app 里的软件获取了所有权限

/data/app 可以应用卸载,/system/app 只能 root 后删除

/data/app 文件夹大小随便,/system/app 文件夹有大小限制

卸载/system/app 目录下的文件并不会增加系统空间,即可用 ROM 空间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值