Android JNI編程實踐:第一個JNI程序

dypm 9年前發布 | 14K 次閱讀 JNI Android開發 移動開發

先配置NDK環境,網上教程很多。安裝cygwin 。

NDK路徑D:\cygwin\home\Administrator 編輯.bash_profile這個文件

添加字段:

NDK_ROOT=/cygdrive/d/android/android-ndk-r8b
export NDK_ROOT

測試是否配置成功;

開始建立第一個TextJNI

創建Android工程 TextJNI ,

第一步 :創建一個類

package com.example.textjni;
public class TextJNI
{
    static {
        System.loadLibrary("jniinterface");
    }
 public static native int getInt();
 public static native String  getString();
}

第二步:生成 C++中的 .h文件

在工程中新建jni文件夾,把生成的文件夾復制到jni文件下面

第三步 :現在開始寫C++代碼和android.mk文件

cpp 的代碼如下

#include"com_example_textjni_TextJNI.h"
#include <stdio.h>
#include <stdlib.h>

int sum ()
{
    int x,y;
    x = 100 ;
    y = 1000;
    x += y;
    return x;

}//實現 com_example_textjni_textJNI.h 的方法
JNIEXPORT jint JNICALL Java_com_example_textjni_TextJNI_getInt
    (JNIEnv *, jclass)
{

    return sum();
}
JNIEXPORT jstring JNICALL Java_com_example_textjni_TextJNI_getString
    (JNIEnv *env, jclass)
{

    return env->NewStringUTF("HelloNDK");
}

android.mk文件

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := jniinterface//so.文件名
LOCAL_SRC_FILES := com_example_textjni_TextJNI.cpp//C++類名

include $(BUILD_SHARED_LIBRARY)

最后一步,編譯生成.so文件。

編譯成功。。


 本文由用戶 dypm 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!