Android NDK開發步驟(r9)

1. 創建Android Project

 

File -> New -> Android Application Project

 

 

 

2. 定義調用C函數的java類,並生成(Eclipse中是自動編譯的)。

 

 

 

Java代碼:

 

package lw.example.hellondk;

 

public class HelloJni {

    public native String getStringFromJni();

    

    public static native String getStringFromJniStatic();

    

    static {

        System.loadLibrary("HelloNdk");

    }

}

 

3. 生成h文件

 

在Project新建gen_h.bat文件,輸入內容如下:

 

javah -classpath bin\classes -d jni lw.example.hellondk.HelloJni

@pause

 

運行該bat文件後,會在jni目錄生成lw_example_hellondk_HelloJni.h文件。

 

4. 添加Native支持

 

右擊Project -> Android Tools -> Add Native Support…

 

 

 

5. 附加Android Native C的h文件

 

右擊project -> Properties,設置如下:

 

 

 

6. 在cpp文件中實現函數。

 

#include "lw_example_hellondk_HelloJni.h"

 

jstring

Java_lw_example_hellondk_HelloJni_getStringFromJni(JNIEnv* env, jobject thiz)

{

    return env->NewStringUTF("Hello JNI!");

}

 

jstring

Java_lw_example_hellondk_HelloJni_getStringFromJniStatic(JNIEnv* env, jclass thiz)

{

    return env->NewStringUTF("Hello JNI!(static)");

}

 

7. 編譯so文件

 

點擊工具欄,編譯成功後,會生成so文件。

 

 

 

8. 在Activity中添加測試代碼。

 

package lw.example.hellondk;

 

import android.app.Activity;

import android.widget.TextView;

import android.os.Bundle;

 

public class MainActivity extends Activity {

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

 

        /* Create a TextView and set its content.

         * the text is retrieved by calling a native

         * function.

         */

        TextView  tv = new TextView(this);

        tv.setText( HelloJni.getStringFromJniStatic() );

        setContentView(tv);

    }

 

}

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *