1

我在 C++ 代码中使用 AssetManager 来加载我的资产。但是如果应用内部目录 AssetManager 中存在同名文件,请先检查并加载。

是否可以设置 AssetManager 以避免内部应用程序目录中的文件并仅检查资产文件?

UPD:我错了。AssetManager 工作正常。

4

1 回答 1

0

Java 和 NDK 的行为相同。两者都在底层使用AssetManager 类。对于AssetManager.cpp 的早期版本AssetManager::open()的工作方式相同。

从理论上讲,可以调整 AssetManager 的行为(毕竟AssetManager.addAssetPaths()public,并且可以通过反射获取),但是没有记录的方法可以做到这一点,这意味着你无法知道你的 hack 是否会在下一个版本的 Android 上工作,或者在某些供应商的自定义版本的系统上工作。

我建议不要这样做。检查内部目录中是否存在相同的文件,并在必要时删除或重命名它更安全。但无论如何,资产管理器通常不会从应用程序的内部文件目录中读取。

于 2017-11-12T11:01:49.210 回答