Jee*_*tel 8 c java android android-assets
我在android应用程序的assets文件夹中保存了一些文件.
现在我编译该应用程序并获取apk.[当我提取那个apk我的文件在资产文件夹中时]
现在我在移动设备中安装apk
并且在该应用程序中有一些代码在c编程与JNI接口.
现在我fopen()
对该文件的c编程调用失败了.
fopen("myfile","r");
Run Code Online (Sandbox Code Playgroud)
我知道在安装apk安卓复制资产文件时 /data/data/com.packagename/something
所以,有人知道这条道路,所以我可以放弃它 fopen()
或者是否有任何其他方法在C编程中打开该文件.
如果我将这些文件保存在sdcard文件夹中并像访问那样fopen("/sdcard/myfile","r");
工作文件.但我想只将这些文件保存在assets文件夹中
您可以使用资产管理器访问JNI代码中的资产.它是NDK的一部分.
http://developer.android.com/ndk/reference/group___asset.html
就像是:
EXPORT_API void LoadAsset(char* filename, jobject assetManager){
AAssetManager* mgr = AAssetManager_fromJava(env, assetManager);
AAsset* asset = AAssetManager_open(mgr, filename, AASSET_MODE_BUFFER);
AAsset_read(asset, ...);
}
Run Code Online (Sandbox Code Playgroud)
然后在Java中:
LoadAsset("myfile", getContext().getAssetManager());
Run Code Online (Sandbox Code Playgroud)