Android 应用内部存储之应用文件缓存

        前言        

        Android 应用内部存储之应用文件缓存的重点在最后总结,如果想快速学习,直接查看最后总结。


        在向手机上保存数据,一般是把数据保存在sdcard中的。大部分应用是直接在sdcard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。这样当该应用被卸载后,这些数据还保留在sdcard中,留下了垃圾数据。如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢?
        如果Android应用程序需要缓存临时文件,需要存储到Android 应用内部存储,Android 应用内部存储之应用文件缓存有两种,一种是不可见的存储(存储在App内部缓存中,root之前无法查看文件,root之后才可查看,路径是/data/user/0/packname/cache)getCacheDir()存储,另一种是可见的存储getExternalCacheDir()(存储在App外部缓存中,名字看起来像是外部缓存,其实是Android 应用内部存储,路径是/storage/emulated/0/Android/data/packname/cache),可以从当前上下文(context)访问它们。

1.getCacheDir()
存储在App内部缓存中的文件在一个用程序卸载的时候将会被删除,当系统运行在低运行空间中也可能会被删除,属于临时存储。
2.getExternalCacheDir()
但是存储在App外部缓存(名字看起来像是外部缓存,其实是Android 应用内部存储)的文件则不会被删除,因为Android系统不允许追踪外部媒介的空用控件。通过context.getExternalCacheDir()方法可以获取到/storage/emulated/0/Android/data/packname/cache目录,一般存放临时缓存数据。


最后总结:
(1)getCacheDir()是存储在App内部缓存中,是不可见的存储(root之前无法查看文件,root之后才可查看,路径是/data/user/0/packname/cache)。
(2)getExternalCacheDir()是存储在App外部缓存中,是可见的存储(名字看起来像是外部缓存,其实是Android 应用内部存储,路径是/storage/emulated/0/Android/data/packname/cache)。
(3)如果使用上面的方法,当你的应用在被用户卸后,/storage/emulated/0/Android/data/packname这个目录下的所有文件都会被删除,不会留下垃圾信息。
(4)getCacheDir()对应设置->应用->应用详情里面的”清除数据“选项,getExternalCacheDir()对应设置->应用->应用详情里面的”清除缓存“选项。

如对此有疑问,请联系qq1164688204。

推荐Android开源项目

项目功能介绍:RxJava2和Retrofit2项目,添加自动管理token功能,添加RxJava2生命周期管理,使用App架构设计是MVP模式和MVVM模式,同时使用组件化,部分代码使用Kotlin,此项目持续维护中。

项目地址:https://gitee.com/urasaki/RxJava2AndRetrofit2

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值