You can simply use the AAssetManager class in C++.
Basically you need to:
- During the init of you library get a pointer on:
AAssetManager* assetManager
Use it to read your file:
// Open your file AAsset* file = AAssetManager_open(assetManager, filePath, AASSET_MODE_BUFFER); // Get the file length size_t fileLength = AAsset_getLength(file); // Allocate memory to read your file char* fileContent = new char[fileLength+1]; // Read your file AAsset_read(file, fileContent, fileLength); // For safety you can add a 0 terminating character at the end of your file ... fileContent[fileLength] = '\0'; // Do whatever you want with the content of the file // Free the memoery you allocated earlier delete [] fileContent;
You can find the official ndk documentation here.
Edit: To get the AAssetManager object:
- In a native activity, you main function as a paramater android_app* app, you just need to get it here: app->activity->assetManager
- If you have a Java activity, you need so send throught JNI an instance of the java object AssetManager and then use the function AAssetManager_fromJava()