当前位置: 首页 > news >正文

Android 存储路径

​​一、内部存储路径(Internal Storage)​​

  1. ​​stats.codeSize(内部代码大小)​​
    ​​路径​​:/data/app/com.example.test-{随机后缀}/base.apk
    ​​说明​​:APK 安装路径,包含应用代码和资源。不同系统版本可能带有随机后缀(如 com.example.test-1)。
    ​​扩展​​:DEX 文件优化后的代码路径为 /data/dalvik-cache/arm64/data@app@com.example.test-{后缀}@base.apk@classes.dex。​​
  2. stats.dataSize(内部数据大小)​​
    ​​CE 路径​​(用户加密数据):/data/user/0/com.example.test
    ​​DE 路径​​(设备加密数据):/data/user_de/0/com.example.test
    ​​说明​​:包含 SQLite 数据库、SharedPreferences 等用户数据。
  3. ​​stats.cacheSize(内部缓存大小)​​
    ​​路径​​:/data/data/com.example.test/cache
    ​​说明​​:临时缓存文件,系统或用户清理时可删除。

二、外部存储路径(External Storage)​​

  1. ​​extStats.codeSize(外部代码大小,如 OBB)​​
    ​​路径​​:/storage/emulated/0/Android/obb/com.example.test
    ​​说明​​:存放 OBB 扩展文件(如游戏资源包),需通过 getObbDir() 获取。
  2. ​​extStats.dataSize(外部数据大小,如媒体文件)​​
    ​​应用私有目录​​:/storage/emulated/0/Android/data/com.example.test/files
    ​​公共媒体目录​​:/storage/emulated/0/DCIM、/storage/emulated/0/Pictures 等
    ​​说明​​:私有目录通过 getExternalFilesDir() 访问,媒体文件可能分散在公共目录中。
  3. ​​extStats.cacheSize(外部缓存大小)​​
    ​​路径​​:/storage/emulated/0/Android/data/com.example.test/cache
    ​​说明​​:外部临时缓存,可通过系统设置或应用自身清理。
    ​​

三、其他关联路径​​

​​Dalvik 缓存​​:/data/dalvik-cache(优化后的 DEX 文件,影响 stats.codeSize)。
​​Profiles 文件​​:
​​当前配置​​:/data/misc/profiles/cur/0/com.example.test
​​参考配置​​:/data/misc/profiles/ref/com.example.test

四、代码获取路径方式​

    public void getStorageDirPath(Context context) {
        // 获取应用在内部存储的根路径
        File file = context.getDataDir();
        Log.d("Context().getDataDir()" , file.getAbsolutePath());

        // 获取应用在内部存储的 files 路径
        File file1 = context.getFilesDir();
        Log.d("Context().getFilesDir()" , file1.getAbsolutePath());

        // 获取应用在内部存储的 cache 缓存路径
        File file2 = context.getCacheDir();
        Log.d("Context().getCacheDir()" , file2.getAbsolutePath());

        // 获取外部存储根路径
        File file3 = Environment.getExternalStorageDirectory();
        Log.d("Environment.getExternalStorageDirectory()" , file3.getAbsolutePath());

        // 获取外部存储具体公共路径
        /*
         * 参数如下:
         * public static String DIRECTORY_MUSIC = "Music"
         * public static String DIRECTORY_PODCASTS = "Podcasts"
         * public static String DIRECTORY_RINGTONES = "Ringtones"
         * public static String DIRECTORY_ALARMS = "Alarms"
         * public static String DIRECTORY_NOTIFICATIONS = "Notifications"
         * public static String DIRECTORY_PICTURES = "Pictures"
         * public static String DIRECTORY_MOVIES = "Movies"
         * public static String DIRECTORY_DOWNLOADS = "Download"
         * public static String DIRECTORY_DCIM = "DCIM"
         * public static String DIRECTORY_DOCUMENTS = "Documents"
         */
        File file4 = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC);
        Log.d("Environment.getExternalStoragePublicDirectory(Music)" , file4.getAbsolutePath());

        // 获取应用在外部存储中的 Files 路径
        File[] file5 = context.getExternalFilesDirs("");
        for (File file6 : file5) {
            Log.d("Context().getExternalFilesDirs()" , file6.getAbsolutePath());
        }

        // 获取应用在外部存储中的 cache 缓存路径
        File file7 = context.getExternalCacheDir();
        Log.d("Context().getExternalCacheDir()" , file7.getAbsolutePath());
    }
2025-04-10 20:23:38.913 30330-30330 MainActivi...tDataDir() com.example.testnativeleak           D  /data/user/0/com.example.testnativeleak
2025-04-10 20:23:38.913 30330-30330 MainActivi...FilesDir() com.example.testnativeleak           D  /data/user/0/com.example.testnativeleak/files
2025-04-10 20:23:38.913 30330-30330 MainActivi...CacheDir() com.example.testnativeleak           D  /data/user/0/com.example.testnativeleak/cache
2025-04-10 20:23:38.914 30330-30330 MainActivi...irectory() com.example.testnativeleak           D  /storage/emulated/0
2025-04-10 20:23:38.914 30330-30330 MainActivi...ory(Music) com.example.testnativeleak           D  /storage/emulated/0/Music
2025-04-10 20:23:38.922 30330-30330 MainActivi...ilesDirs() com.example.testnativeleak           D  /storage/emulated/0/Android/data/com.example.testnativeleak/files
2025-04-10 20:23:38.923 30330-30330 MainActivi...CacheDir() com.example.testnativeleak           D  /storage/emulated/0/Android/data/com.example.testnativeleak/cache

相关文章:

  • 大模型学习八:‌Sealos 私有化部署之VMware 安装ubuntu22.04 虚拟机安装(实操)
  • 【产品】ToB产品需求分析
  • 【Java SE】泛型详解
  • GAT-GRAPH ATTENTION NETWORKS(论文笔记)
  • 计算机组成原理笔记(十四)——3.4指令类型
  • 某益网络面经总结
  • 单链表专题(C语言)
  • 基于SpringBoot的电影订票系统(源码+数据库+万字文档+ppt)
  • 架构师面试(三十):IM 分层架构
  • 架构生命周期(高软57)
  • CSS padding(填充)学习笔记
  • C# Winform 入门(16)之图片合成
  • Linux--线程概念与控制
  • 突破边界:从 C# 到 Python 的范式跃迁与实战指南
  • 图像分割基础学习
  • vLLM部署Qwen2.5-Omni 提供API的详细步骤
  • CSE lesson2 chrony服务器
  • CSS margin(外边距)学习笔记
  • Redash 25.1.0 简配部署
  • vscode中gcc编译器中文路径调试成功方法
  • 中央网信办部署开展“清朗·整治AI技术滥用”专项行动
  • 建设银行南昌分行引金融“活水”,精准灌溉乡村沃土
  • 吴志朴当选福建德化县人民政府县长
  • 力箭二号火箭成功进行满载起竖试验,计划今年首飞发射轻舟飞船
  • 出行注意防晒补水,上海五一假期以多云天气为主最高33℃
  • 83岁连丽如每周登台说书,还上了15堂连派评书课