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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值