NDK를 쓰다보면 Asset에 접근해야 하는 경우가 심심치 않게 발생하는데, 일시적으로 만들어놓고 돌려쓰는 부분이다보니.. 잘 잊어먹게 되는 부분입니다.
간단하게 정리를 해보도록 하겠습니다.
Java
public class MainActivity extends Activity {
readAssetsNative(getAssets()); }
} } |
NDK
#include <jni.h>
#include <assert.h>
#include <android/asset_manager.h>
#include <android/asset_manager_jni.h>
void
Java_com_test_test_MainActivity_testAsset(JNIEnv *env, jobject thiz, jobject assetManager)
{
AAssetManager* mgr = AAssetManager_fromJava(env, assetManager);
AAsset* testAsset = AAssetManager_open(mgr, "text.txt", AASSET_MODE_UNKNOWN);
AAsset_close(testAsset);
}
간단히 코드를 작성해보면 위와 같이 진행됩니다.
AssetManager_fromJava함수는 android/asset_manager.h에 포함되어있으며, AssetManager_open, Asset_close등은 android/asset_manager.h에 포함되어있습니다.
API Level 9 부터 사용이 가능합니다.
참고가 될지 모르겠지만 reference는 다음 링크에서 참고하시면 될 것 같습니다.
https://developer.android.com/ndk/reference/asset__manager_8h.html
'개발 > 소프트웨어 개발 정리' 카테고리의 다른 글
git username & email 설정 (0) | 2024.02.19 |
---|---|
[UWP] 이미 떠있는 ContentDialog 체크 방법 (0) | 2017.09.05 |
[Android] NDK에서 java method를 호출할 때 type에 대한 정리 (0) | 2017.02.23 |