C++ Android 资源管理器从应用内部目录中读取文件

C++ android assetmanager reads files from app internal directory

本文关键字:读取 文件 内部 Android 资源管理器 应用 C++      更新时间:2023-10-16

我在C++代码中使用AssetManager来加载我的资产。但是,如果应用程序内部目录中存在同名文件,则资源管理器首先检查它并加载它。

是否可以将资源管理器设置为避免内部应用程序目录中的文件并仅检查资产文件?

UPD:我错了。资产管理工作正常。

Java 和 NDK 的行为相同。两者都在引擎盖下使用资产管理器类。对于早期版本的 AssetManager.cpp,AssetManager::open(( 的工作方式相同。

从理论上讲,调整 AssetManager 行为是可能的(毕竟,AssetManager.addAssetPaths(( 是公开的,可以通过反射获取(,但没有记录的方法可以做到这一点,这意味着您无法知道您的黑客是否适用于下一个版本的 Android,或者适用于某些供应商的自定义版本系统。

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