Android 分区存储

1 手机存储

外部存储和内部存储

手机存储:

  • Android 4.4 之前的版本:设备的机身存储就是内部存储(internal storage),为了弥补内部存储空间的不足而插入外置的 SD 卡,被称为外部存储(external storage);
  • Android 4.4 及以上版本:很多中高端机器将自身的机身扩展到了 8G 以上,将机身存储分为内部存储和外部存储两部分。当然,依然可以插入 SD 卡来扩充外部存储空间;

2 私有存储和共享存储

对于 Android 应用而言,将应用的存储分为私有存储和共享存储。私有存储是每个应用专属的存储空间,而共享存储包含用户手动创建或共享给其他应用的文件,如相册、下载等:

  • 私有存储/目录:
    • 每个应用都有自己的私有目录,应用间无法访问;
    • 私有存储空间的数据,在应用卸载后删除;
  • 共享存储/目录:
    • 除了私有存储空间外,其他的都被认定为共享存储,比如 Downloads、Documents、Pictures、DCIM、Movies、Music 等;
    • 共享存储空间的数据管理混乱,应用能够随意的访问共享空间的数据,会导致隐私数据泄漏;
    • 共享存储空间中的文件不会随着 APP 的卸载而被删除;

在 Android 10 之前,只要应用程序获得了READ_EXTERNAL_STORAGE 和WRITE_EXTERNAL_STORAGE 的权限,就可以随意的访问和修改共享存储中的文件。从 Android 10 开始,对共享存储的读写权限变得更加严格,开发者可以选择是否使用分区存储,Android 11 中强制使用了分区存储。

分区存储/沙盒存储机制是一种安全机制,它用于限制应用对存储空间的访问权限,确保每个应用程序只能访问其被授权的资源和数据。这种机制通过为每个应用分配独立的存储区域(沙盒)来实现,每个应用都有自己的私有目录(例如 /data/data/<package_name>/)和自己创建的图片、视频、音频文件等,其他应用无法直接访问或修改其文件。

如果需要访问其他应用创建的媒体文件,则需要通过特性的 API(如 MediaStore API 或者 Storage Access Framework) 来访获取访问权限。

3 文件的读写操作

3.1 权限声明

首先在 AndroidManifest.xml 中声明必要的权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值