最近项目中需要用到一些资源,因此将资源放到android的assets目录下,然后c++层读取数据进行渲染操作。下面将过程记录下来,供大家参考 ,主要针对小白;)。
一、代码结构说明
1.本文使用jni native与c++映射时,使用的是动态注册方式(相关内容请自行查阅资料)
二、代码实现
1.c++层:
c++读取assets数据代码如下:
#include <android/asset_manager.h>
#include <android/asset_manager_jni.h>
AAssetManager* mgr = NULL;
//获取setAAssetManager
void nativeSetAAssetManager(JNIEnv* env, jobject obj,jobject assetManager)
{
mgr = AAssetManager_fromJava(env, assetManager);
}
//读取assets文件
char* readFileFromAssets(std::string path)
{
AAsset* asset = AAssetManager_open(CrossVectorLayer::mgr, path.c_str