Android的存储系统主要分为内部存储和外部存储,它们在数据存储、访问权限、数据持久性等方面存在显著差异。以下是详细介绍:
内部存储与外部存储的定义
- 内部存储:设备的内置存储,专门用于保存应用的私有数据。每个应用都有自己的内部存储空间,其他应用不能访问。
- 外部存储:设备的共享存储区域,可以是内置存储(如主存储)或可移动存储(如SD卡)。外部存储可以被多个应用访问,但需要申请相应的权限。
访问权限
- 内部存储:每个应用的内部存储空间仅允许自己访问,除非有更高的权限,如root。
- 外部存储:需要申请读写权限。所有应用都可以读外部存储而不需要任何权限,但写操作需要申请WRITE_EXTERNAL_STORAGE权限。
数据持久性
- 内部存储:应用卸载后,该目录也会被删除。
- 外部存储:应用卸载时,只有存在
/storage/emulated/0/Android/data/package_name/
路径下的文件会消失。
使用场景
- 内部存储:适用于存储应用的配置文件、用户数据等私有文件。
- 外部存储:用于存放用户可见的文件,如图片、音频、视频等,或应用希望与其他App共享或传到电脑上的文件。
存储位置
- 内部存储:路径为
/data/data/<package_name>/
。
- 外部存储:路径为
/storage/emulated/0/
或Environment.getExternalStorageDirectory()
。
权限申请
- 内部存储:不需要申请额外权限。
- 外部存储:需要申请
READ_EXTERNAL_STORAGE
和WRITE_EXTERNAL_STORAGE
权限。
可信度
- 内部存储:永远可用(Permanent)。
- 外部存储:可能不可用,最典型的当设备作为USB存储被mount时不可用。
通过上述对比,可以看出内部存储和外部存储各有其特点和适用场景,开发者在设计应用时,应根据数据的重要性和访问需求,选择合适的存储方式。