Android APP存储路径

1.APP被安装时系统分配在data分区上的存储路径;
2.APP访问不需要申请权限;APP私有,安全性最高;
3.(非root或非共享UID)其它APP无权访问
4.files和cache的区别:cache存储偏临时性的文件,在系统存储空间紧张时会被系统auto clean,应用设置中“清理缓存”会清理掉cache内文件;
5.APP卸载时或“清理数据”时,此2种路径下的所有文件都会被系统自动清理;

/data/..//files/
(对应:Context.getFilesDir())


1.数据文件体积小(KB级别);
2.运行时只能在data区加载的文件(如:动态下载的so库,插件apk或hotfix Dex文件等)
3.安全性要求高的私密性文件;
4.记录方便用户继续使用的历史行为数据,不希望被频繁重置到默认值的数据文件;

/data/..//cache/
(对应:Context.getCacheDir())


1.文件体积小(KB级别);
2.被频繁删除或重置后不影响用户历史状态功能的文件;
3.存储数据安全性相对较高,不希望被第三方获取到的临时文件



内置存储卡(或分区)(APP私有存储路径)

1.系统为每个APP分配的基于不可插拔内置存储卡(或分区)的路径;
2.APP私有的在存储卡上的空间,读写不需要特殊权限;
3. 三方应用在获取到存储卡动态权限后可以读写该目录下文件,在存储安全性相比data区要低;
4.files和cache的区别:cache存储偏临时性的文件,在系统存储空间紧张时会被系统auto clean,应用设置中“清理缓存”会清理掉cache内文件;
5.APP卸载时或“清理数据”时,此2种路径下的所有文件都会被系统自动清理;

1.存储体积较大的文件(例如:分发或自动更新的APK,下载的视频类文件,图片,ZIP压缩包等体积较大的文件);
2.存储对安全和隐私性要求不高的文件;

3.没有单独的编辑删除入口,频繁删除或重置后不影响用户历史状态功能的文件放在cache目录中;


<内存储卡根路径>/

Android/data//files/

(对应:Context.getExternalFilesDir())

<内存储卡根路径> /

Android/data//cache/
(对应:Context.getExternalCacheDir())



存储卡非APP私有存储路径

存储卡上非APP私有存储的其它路径(包括内置或可插拔的外置存储卡的非APP私有存储路径)

1.Android 6.0+和部分OEM定制6.0-系统要动态申请存储卡读写权限,用户授权后才能读写;
2.可插拔存储卡被移除后就数据无法访问;

 3.非系统指定的APP私有路径,卸载APP或清除数据时,对应的数据不会被清除,持久性强;

4.放置到公共存储卡上,其实更容易被工具类APP清理缓存时引导用户做清理,

因涉及用户动态权限,卸载APP后无法自动清理干净,一般不建议在此类路径下存储文件,有特殊需求的需要提出来Review审核


SharedPreferences
/data/..//shared_prefs/

存储全局性的开关,基类型的键值对数据

Databse

/data/..//databases/

存储APP内基于系统Sqlite数据库存储的


Android APP存储路径和缓存清理规范_安卓 app存储文件_沙漠一只雕得儿得儿的博客-CSDN博客

你可能感兴趣的:(A1_android开发基础,android,缓存)