![]()
これまでAndroidのネイティブコードをC言語で扱った。しかしC言語だとクラスは使えないし、メモリ確保も面倒なのでこれからはC++を利用する。まずソースコードの拡張子をcppに変更する。
#include <string.h>
#include <jni.h>
#include <android/log.h>
class CTest113
{
public:
CTest113()
{
__android_log_write(ANDROID_LOG_DEBUG,"Test113","CTest113::CTest113()");
}
~CTest113()
{
__android_log_write(ANDROID_LOG_DEBUG,"Test113","CTest113::~CTest113()");
}
void TestFunc()
{
__android_log_write(ANDROID_LOG_DEBUG,"Test113","CTest113::TestFunc()");
}
};
extern "C" jstring
Java_com_Test113_Test113Act_stringFromJNI(JNIEnv* env,jobject thiz)
{
CTest113* pcTest;
pcTest = new CTest113;
pcTest->TestFunc();
delete pcTest;
return env->NewStringUTF("Test113text");
// return (*env)->NewStringUTF(env, "Test113text");
}
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := Test113jni LOCAL_SRC_FILES := Test113jni.cpp LOCAL_LDLIBS := -llog include $(BUILD_SHARED_LIBRARY)
