標籤:android c style class blog code
1、需要準備的工具,eclipse,cdt(c++)外掛程式,cygwin(unix)和 android ndk.
2、開發步驟:
a.建立一個android工程b.JAVA代碼中寫聲明 native 方法 public native String helloFromJNI(); 通過javah 包名.類名產生jni的方法簽名c. 建立jni目錄,編寫c代碼,方法名字要對應。或者將產生的簽名檔案拷貝到jni目錄,然後在c代碼中引入。d.編寫Android.mk檔案e.Ndk編譯產生動態庫( ndk -build )f.Java代碼load 動態庫.調用native代碼
建立Android.mk檔案,需要將hello-jni替換成自己的c檔案模組名稱:
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := hello-jniLOCAL_SRC_FILES := hello-jni.cinclude $(BUILD_SHARED_LIBRARY)
Android.mk檔案增加LOCAL_LDLIBS += -llog
C代碼中增加
#include <android/log.h>
#define LOG_TAG "System.out"
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
LOGI("info\n");
LOGD("debug\n");
jstringJava_cn_itcast_ndk_DemoActivity_helloFromJNI(JNIEnv *env, jobjectjavaThis) {
return (*env)->NewStringUTF(env, "Hello from native code!");
}
JNIEnv類型代表了java環境 通過JNIEnv* 指標,就可以對java端的代碼進行操作.
建立java類的對象,調用java對象的方法
擷取java對象的屬性 等等.
jobject是個什麼
jobjectobj就是當前方法所在的類代表的對象.