Android app的文件缓存目录:app的内置Flash私有目录和 外置sdcard目录

本文详细介绍了Android应用程序在内部Flash存储和外部SD卡上的缓存目录,包括文件缓存、数据库、SharedPreferences的位置。讨论了如何创建自定义子目录,并强调了外置缓存目录在卸载应用后的处理方式。同时,针对手机挂载外置T卡的访问问题提出了Stack Overflow链接作为参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 APP 的应用目录(Flash上,不是内存) ,是APP内置私有目录

  1. /data/data/[packagename]/files 文件缓存目录,一般存小的文件缓存,如果是图片,不建议放这里,一般放到外置卡。

    File file = Context.getFilesDir(); 返回该目录 
    写文件到该目录下可以像这样

    FileOutputStream fos = null;
        try {
            fos = appontext.openFileOutput(name, Context.MODE_PRIVATE);
            fos.write(content.getBytes());
        } catch (Exception e) {
        }finally{
            try {
                if(null != fos){
                    fos.close();
                } 
            }catch (Exception e) {
            }
        }
    
  2. /data/data/[packagename]/cache目录,存放一些其他缓存File cache =Context.getCacheDir();

  3. /data/data/[packagename]/databases,存放数据库

  4. /data/data/[packagename]/lib,应用的so目录

  5. /data/data/[packagename]/shared_prefs 应用的SharedPreferences保存

可以自己创建其他目录吗? 可以的 
使用 File ownDataPath =Context.getDir(“service”,Context.MODE_PRIVATE); 
使用它可以创建app_service目录,放什么自己定义 (应该是建立子目录:/data/data/[packagename]/service

2 APP(使用)SD卡目录,是外置SDCARD目录,外部APP和用户手动可查看

  1. 外置缓存目录(File sdcache = getExternalCacheDir();) 
    /storage/emulated/0/Android/data/[packagename]/cache  真机: /storage/adcard0/Android/data/[packagename]/cache
    一些重要性不高的cache或者大文件放到这里,比如图片缓存

  2. 外置文件缓存目录(File sdfile = getExternalFilesDir(null);), 
    /storage/emulated/0/Android/data/[packagename]/files  真机: /storage/adcard0/Android/data/[packagename]/files
    一些重要性不高的file cache或者大文件放到这里 
    注意: /storage/emulated/0/Android/data/[packagename]   /storage/adcard0/Android/data/[packagename]在android2.2之后,在应用卸载后也会一并卸载。所以不需要用什么清理缓存的软件清理的。

3 APP清理内存缓存和本地缓存数据(内存+应用内置私有目录+外置SD卡目录)

内存缓存数据:内存;
本地缓存数据:应用内置私有目录+外置SD卡目录(本地缓存都是APP开发者手动建的);

PS: 现在手机支持外置挂载T卡的,如何访问外置T卡目录呢?

  1. 可以参考 !http://stackoverflow.com/questions/5694933/find-an-external-sd-card-location
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值