温馨提示:这篇文章已超过412天没有更新,请注意相关的内容是否还可用!
摘要:,,本文详细解析了Android设备的外部存储和内部存储机制。内部存储通常集成在设备内部,用于存储系统文件和用户数据,其优点在于读写速度快,但容量受限于设备规格。外部存储则通过外部存储设备(如SD卡)扩展存储空间,灵活性高,容量可按需增加,但读写速度相对较慢。两种存储方式各有优劣,用户可根据需求合理选择和使用。
内部存储是应用和用户无法直接访问的文件夹,用于存放敏感数据,当应用进行数据清理或卸载时,可以清理外部存储和内部存储下的所有文件目录,且不需要读写权限。
内部存储的常用路径包括:
1、getFilesDir()
:
- 路径示例:/data/data/包名/files
或/data/user/0/包名/files
。
- 这是应用的私有文件存储区域,其他应用无法访问。
2、getCacheDir()
:
- 路径示例:/data/data/包名/cache
或/data/user/0/包名/cache
。
- 用于存放应用的缓存文件,这些文件可以被其他应用或者系统随时删除。
3、getDir(“xxxxx”, MODE_PRIVATE)
:
- 这是一个自定义的内部存储路径,例如/data/data/包名/app_xxxxx
或/data/user/0/包名/app_xxxxx
。
- 允许应用创建自定义路径来存储文件。
外部存储的私有目录:
在Android Q之前的版本,其他应用可以访问和修改外部存储的应用私有目录,使用外部存储前需检查其可用性,当应用进行数据清理或卸载时,外部和内部存储的文件目录都会被清理。
外部存储的常用路径包括:
1、getExternalFilesDir(null)
:
- 路径示例:/sdcard/Android/data/包名/files
或/storage/emulated/0/Android/data/包名/files
。
- 这是外部存储的私有目录,只能被创建它的应用访问。
2、getExternalCacheDir()
:
- 路径示例:/sdcard/Android/data/包名/cache
或/storage/emulated/0/Android/data/包名/cache
。
- 用于存放应用的外部缓存文件。
公有目录(谨慎使用,特别是在Android 10及以上版本):
公有目录是多个应用可以访问的共享存储空间,当应用进行数据清理时,不会清理这些目录,但出于安全和隐私考虑,对公有目录的使用有一定的限制。
Environment.getStorageDirectory()
通常指向设备的根存储目录,例如/storage
。
Environment.getExternalStorageDirectory()
通常指向外部存储的根目录,例如/storage/emulated/0
。
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM)
指向DCIM目录,常用于存放图片和视频,例如/storage/emulated/0/DCIM
。
关于Cache和Files的区别:
Cache获取应用的缓存路径,主要用于存放临时文件,不同手机厂商可能会有不同的缓存路径。
Files获取应用的文件路径,用于存放长期文件。
这两者在应用中对应着【清除缓存】和【清除数据】的功能,一些手机助手在清理垃圾文件时,主要清理的是Cache缓存。
还没有评论,来说两句吧...