JNI&NDK

1322 ワード

JNI:Java Native Interface(Javaローカルインタフェース、ローカルインタフェースCとC++が開発したインタフェース)→呼び出しインタフェースNDK:Native Development Kit(オリジナル開発キット)→ツールセット
一:NDKを使ってsoファイルを生成する
  1.      ,     native         。
  2.  app build.gradle  
        Android{}    
        sourceSets {
            main {
                  jniLibs.srcDirs = ['libs']
                  jni.srcDirs = ['src/main/jni', 'src/main/jni/']
            }
      }
  3.  gradle.properties   android.useDeprecatedNdk=true
  4.   app/src/main  :cd app/src/main  javah  :javah -d jni -classpath ./Java   .     
     <<    :  -d jni         jni   (   \app\src\main   ,  .h      \app\src\main\jni )
     -classpath ./java         java         >>
  5.    c  c++  ,       ,     demo  。

            #include 
            #include 
            #include 
            //  string        , JNICALL java_  _  _   (JNIEnv *env,jobject thiz)
            jstring JNICALL Java_com_yunange_drjing_JniTest_getPackageName(JNIEnv *env,jobject thiz) {
            //     *env(   ->)
            return (*env)->NewStringUTF(env, "I`m bug_king!");}
    6.   ndk-build  so 。
    7.      system.System.loadLibrary("so   ");