DCC 缓存不在系统的 cache 目录下,而是在 files/LayaCache/appCache/ 下。你看的 Android/data/com.test.game/cache 是 Android 的系统缓存目录,DCC 不往那里写。
具体调用链:
- Java 层把
activity.getFilesDir()(即 /data/data/com.test.game/files)传给 C++ 层(LayaConch5.java:313)
- C++ 初始化时拼接路径:
s_cachePath = OS::getFilesDir() + "/LayaCache/appCache"(JCConch.cpp:79)
- JS 层通过
conch.getCachePath() 拿到这个路径(JSRuntime.cpp:161),layadcc.js 的所有文件读写都基于这个路径
所以正确的缓存目录是:Android/data/com.test.game/files/LayaCache/appCache/objects/
用 AS 的 Device File Explorer 到这个路径看,应该能看到按 hash 前两位分目录存储的缓存文件。
关于 .dcc 和 resources 的区别:
resource/.dcc 是 DCC 仓库数据,里面是内容寻址的对象文件(按 hash 存储在 objects/ 下),配合 head.json 做版本管理和增量更新。
resource/resources 是原始资源文件,保持原始路径结构,给 Web、小游戏等非 DCC 场景用的。
你删掉 .dcc/objects 后还能运行,是因为 DCC 客户端下载失败后会走原始 URL(从 resources 目录拉)。但这样就没有缓存和增量更新能力了,每次都全量下载。正常使用不要删 .dcc/objects。