一
1.APP被安装时系统分配在data分区上的存储路径;
2.APP访问不需要申请权限;APP私有,安全性最高;
3.(非root或非共享UID)其它APP无权访问
4.files和cache的区别:cache存储偏临时性的文件,在系统存储空间紧张时会被系统auto clean,应用设置中“清理缓存”会清理掉cache内文件;
5.APP卸载时或“清理数据”时,此2种路径下的所有文件都会被系统自动清理;
/data/../<packagename>/files/
(对应:Context.getFilesDir())
1.数据文件体积小(KB级别);
2.运行时只能在data区加载的文件(如:动态下载的so库,插件apk或hotfix Dex文件等)
3.安全性要求高的私密性文件;
4.记录方便用户继续使用的历史行为数据,不希望被频繁重置到默认值的数据文件;
/data/../<packagename>/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/<packagename>/files/
(对应:Context.getExternalFilesDir())
<内存储卡根路径> /
Android/data/<packagename>/cache/
(对应:Context.getExternalCacheDir())
三
存储卡非APP私有存储路径
存储卡上非APP私有存储的其它路径(包括内置或可插拔的外置存储卡的非APP私有存储路径)
1.Android 6.0+和部分OEM定制6.0-系统要动态申请存储卡读写权限,用户授权后才能读写;
2.可插拔存储卡被移除后就数据无法访问;
3.非系统指定的APP私有路径,卸载APP或清除数据时,对应的数据不会被清除,持久性强;
4.放置到公共存储卡上,其实更容易被工具类APP清理缓存时引导用户做清理,
因涉及用户动态权限,卸载APP后无法自动清理干净,一般不建议在此类路径下存储文件,有特殊需求的需要提出来Review审核
四
SharedPreferences
/data/../<packagename>/shared_prefs/
存储全局性的开关,基类型的键值对数据
Databse
/data/../<packagename>/databases/
存储APP内基于系统Sqlite数据库存储的文章来源:https://www.toymoban.com/news/detail-538824.html
Android APP存储路径和缓存清理规范_安卓 app存储文件_沙漠一只雕得儿得儿的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-538824.html
到了这里,关于Android APP存储路径的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!