Android NDK調用c/c++

Android NDK博客目錄

簡單建一個android ndk工程(android環境+android-ndk-r8)

Android NDK 概述,翻譯OVERVIEW.html整體瞭解NDK

Android.mk語法

Application.mk語法

Android NDK調用c/c++



前提:命令行 -javac 和-javah好使,就是你已經配置了java的環境變量。

java裏聲明方法 比如你的com.test.jni目錄下Main類裏聲明瞭

方法

class Main{

public native String getString (String string);

}

方法,然後c/c++裏怎麼實現它呢;

如圖

你程序編譯後 通過命令行到達程序的  bin目錄下

運行

-javah -d jni -classpath classes come.test.jni.Main            (這是你java裏聲明的方法)


然後 你的jni目錄下會多了個com_test_jni_Main.h 一個c的頭文件


內容如下

#include <jni.h>
/* Header for class com_test_jni_Main */


#ifndef _Included_com_test_jni_Main
#define _Included_com_test_jni_Main
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     com_test_jni_Main
 * Method:    getString
 * Signature: (Ljava/lang/String;)Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_com_test_jni_Main_getString
  (JNIEnv *, jobject, jstring);

#ifdef __cplusplus
}
#endif
#endif


然後你就可以通過 c/c++知識實現裏面的方法了(上面的紅字方法)

至於怎麼生成動態庫(真正連接Android和c/c++)我博客裏有。


(JNI最難的是傳遞的參數的轉換,這裏有詳細介紹和實例http://helloxuweifu.iteye.com/blog/1168647

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章