内部存储
总是可用的
这里的文件默认是只能被你的app所访问的。
当用户卸载你的app的时候,系统会把internal里面的相关文件都清除干净。
Internal是在你想确保不被用户与其他app所访问的最佳存储区域。
外部存储
并不总是可用的,因为用户可以选择把这部分作为USB存储模式,这样就不可以访问了。
是大家都可以访问的,因此保存到这里的文件是失去访问控制权限的。
当用户卸载你的app时,系统仅仅会删除external根目录(getExternalFilesDir())下的相关文件。
External是在你不需要严格的访问权限并且你希望这些文件能够被其他app所共享或者是允许用户通过电脑访问时的最佳存储区域。
内部存储
getCacheDir()的存储路径为/data/data/package_name/cache
1、在用户卸载app或者使用(设置->应用)清除数据时,均可清除这个路径下的文件
2、我们可以把少量图片缓存cache文件中,但是不建议存储大量的图片,在内部存储不足的时候,cache目录的文件会有选择性的被删除。
外部存储
getExternalCacheDir()
getExternalFilesDir()
1、私有存储路径为/sdcard/Android/date/package_name,这个路径对于用户来说是私有的,用户无法操作。
2、在app被卸载时缓存数据均会被删除,如果使用设置->应用清除数据时,getExternalFilesDir()和getExternalCacheDir()的数据都会被清除,但是如果是使用设置->应用清除缓存时,getExternalFilesDir()下的数据不会被清除。
3、如果需要存储下载的音频或者视频或者重要文件的话,建议存在getExternalFilesDir()下。
4、在对大量图片进行缓存的时候,我们可以考虑存储到getExternalCacheDir()下