android NDK 小例子step by step

兩天了都在摸索NDK編程,看了一些例子,似乎沒找到一個照着嘗試就能運行的。現在把自己的操作的過程記錄下來。

1、eclipse中設置NDK

     打開eclipse,在window->preferences->Android->NDK中設置NDK所在位置

     

2、新建andorid項目


項目右鍵->Android tools->Add Native Support


在這,把要調用的庫名字取爲:ocl,點擊finish。在項目中會多了一個jni文件夾。


在ocl.cpp中沒有什麼內容。


在項目代碼中添加如下代碼:

public class MainActivity extends ActionBarActivity {

	static 
	{
		System.loadLibrary("ocl");
	}
	public static native String callocl();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        new AlertDialog.Builder( this ).setMessage( callocl() ).show();
       
    }
}


調用ocl庫中的callocl()函數。

3、javah設置

點擊中三角形的符號,點擊點擊第二項External Tools Configurations,出來如下界面:


雙擊program,配置成如下:


location路徑是javah的路徑

Working Directory指向當前工程的src文件夾

Arguments參數設置如圖

點擊apply,run

4、生成頭文件

把鼠標放置到工程java代碼文件上


直接點擊綠色按鈕

此時在jni文件夾下會多出.h文件

    

打開ocl.cpp文件如下代碼:

#include <jni.h>
#include"com_example_ocl_MainActivity.h"
JNIEXPORT jstring JNICALL Java_com_example_ocl_MainActivity_callocl  (JNIEnv *env, jclass classtest)
{
	return env->NewStringUTF(" Hello JNI ");
}


到此,操作完成,編譯看效果吧。


執行程序看效果:、


step by step的例子。

ps:上午自己的手機插電腦上還能識別,到下午就出現這種情況了:


所以只能在虛擬機裏跑跑了。


android調用c/c++成功,下一步結合OpenCL了。

發佈了40 篇原創文章 · 獲贊 7 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章