1.内部存储和外部存储
所有 Android 设备都有两个文件存储区域:内部存储空间和外部存储空间。这些名称是在 Android 早期确定的,那时候大部分设备都提供内置的非易失性内存(内部存储空间)以及可移动存储媒介(如 Micro SD 卡,提供外部存储空间)。现在,很多设备将永久性存储空间划分为单独的“内部”和“外部”分区。因此,即使没有可移动存储媒介,这两种存储空间也始终存在,并且无论外部存储空间是否可移动,这两种存储空间的 API 行为都是相同的。
内部存储空间:
- 始终提供。
- 只有您的应用可以访问保存到此处的文件。
- 如果用户卸载您的应用,系统会从内部存储空间中移除您应用的所有文件。
如果您希望确保用户和其他应用都无法访问您的文件,最好使用内部存储空间。
将文件保存到内部存储空间时,您可以通过调用以下方法之一,获取相应目录作为 File 对象:
返回表示应用内部目录的 File
。
返回表示应用临时缓存文件的内部目录的 File
。请务必删除各个不再需要的文件,并对在任何给定时间使用的内存量设定合理的大小限制(例如 1 MB)。
外部存储空间:
- 并非始终提供,因为用户可以将外部存储空间装载为 USB 存储设备,也可以在某些情况下将其从设备中移除。
- 全局可读,因此保存到此处的文件可能在您的控制范围之外被读取。
- 如果用户卸载您的应用,系统会从此处移除您应用的文件(仅当您通过
getExternalFilesDir()
将这些文件保存到目录中)。
对于不需要访问限制的文件以及您希望与其他应用共享或允许用户通过计算机访问的文件,外部存储空间是最佳位置。
外部存储通常是通过可移动设备(例如 SD 卡)来提供的。Android 使用路径(例如 /sdcard
)来表示这些设备。尽管现在的手机已经自带了大存储,仍保留了这个命名习惯。