内部存储
保存在内部存储路径下的文件是应用的私有文件,其余应用不能访问这些文件(除非拥有 Root 访问权限),很是适合保存用户无需直接访问的内部应用数据。对内部存储中的文件进行操作时,不需要权限。
当卸载应用后,保存在私有路径中的文件也会被删除。所以,不应该将那些应用卸载之后还保留的数据文件放在私有路径中。
主要有如下几个经常使用的目录:
-
files目录
完整路径为:/data/data//files。
String path = getFilesDir().getAbsolutePath(); -
cache目录
完整路径为:/data/data//cache
String path = getCacheDir().getAbsolutePath(); -
shared_prefs目录
完整路径为:/data/data//shared_prefs。用于保存SharedPreferences的数据文件。 -
databses目录
完整路径为:/data/data//databses。用于保存Sqlite数据库文件。
外部存储
之前手机存在外置SD卡的情况下,外部存储空间指的就是SD卡,但是由于SD卡读写速度慢(限制了应用比如游戏的加载速度)等原因。现在几乎全部手机都会自带比较可观的内部存储容量,没有SD卡同样能够拥有外部存储了,这个外部存储严格意义上叫作内置外部存储。
- 外部存储私有目录
路径:/storage/emulated/0/Android/data/
-
files目录
路径:/storage/emulated/0/Android/data//files
String path = context.getExternalFilesDir(Environment.DIRECTORY_PICTURES).getAbsolutePath(); // /storage/emulated/0/Android/data//files/Pictures
getExternalFilesDir(String type)是须要一个字符串参数的,若是咱们传入空字符串,则获取到/storage/emulated/0/Android/data//files。 -
cache目录
路径:/storage/emulated/0/Android/data/com.saltedfish.barcodedemo/cache
String path = this.getExternalCacheDir().getAbsolutePath();
外部存储中私有目录中的内容同内部存储一样,当卸载应用时,数据会同样消失。
- 外部存储公有目录
外部存储中,除了私有目录之外的目录,都是公有目录。程序保存在公有目录中的数据,在应用被删除后,仍然保留。