Android 从本机代码统一访问文件

Android 从本机代码统一访问文件,android,android-ndk,native-activity,Android,Android Ndk,Native Activity,我的应用程序有两个数据源:标准资产文件夹和下载的文件。现在我使用了 AASETMeMeCurrOnOp/、代码> AASETETRIGHOR> 等访问资产(从C++代码),我用旧的代码< FPOND >代码> FRADE等读取下载文件中的数据。换句话说,我可以改变吗 AAssetManager* assetManager = g_state->activity->assetManager; AAsset* asset = AAssetManager_open(assetManage

我的应用程序有两个数据源:标准资产文件夹和下载的文件。现在我使用了<代码> AASETMeMeCurrOnOp/<代码>、代码> AASETETRIGHOR> <代码>等访问资产(从C++代码),我用旧的代码< FPOND <代码> >代码> FRADE<代码>等读取下载文件中的数据。换句话说,我可以改变吗

AAssetManager* assetManager = g_state->activity->assetManager;
AAsset* asset = AAssetManager_open(assetManager, filename, AASSET_MODE_UNKNOWN);
int ret = AAsset_read(asset, buf, size);

简短回答:没有

详细回答:不,您不能以统一的方式访问它们,因为资产位于您的APK文件中,而不是普通的文件系统中。一种解决方法可能是在安装/初始化阶段将资源提取到文件系统中,然后再从那里使用它们

char *filenameFull = SomehowGetFullPathToAssetsFile(filename);
FILE *fp = fopen(filenameFull, "rb");
int ret = fread(buf, size, 1, fp);