天天看點

Android Studio NDK 入門demo

針對剛入門NDK的同學簡化一下入門程式的編寫,哈哈

一、建立NdkTest項目。

二、直接在目錄下建立native方法工具類,友善調用。

Android Studio NDK 入門demo

三、MainActivity中調用Native方法更新UI。

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        NdkUtils ndkUtils=new NdkUtils();
        TextView textView=new TextView(this);
        textView.setText(ndkUtils.getStrinFromC());
        setContentView(textView);

    }
}
      

四、Rebuild Project,檢視目錄下是否生成了相應的class檔案

Android Studio NDK 入門demo

五、利用AS中的指令視窗Terminal的javah指令生成native方法的頭部檔案 javah -jni 包名.類名,執行指令之後再目前目錄下會生成.h的檔案

Android Studio NDK 入門demo

六、在main中右鍵建立jni檔案夾,把剛剛生成的.h的頭部檔案剪切到此目錄下,建立名為ndkdemo(随便起)的c檔案,把頭部檔案中的方法複制到該檔案中,改寫傳回資訊

#include <com_cg_ndktest_NdkUtils.h>

/*
 * Class:     com_cg_ndktest_NdkUtils
 * Method:    getStrinFromC
 * Signature: ()Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_com_cg_ndktest_NdkUtils_getStrinFromC
  (JNIEnv * env, jobject jject){

   return (*env)->NewStringUTF(env,"hello ,My name is JNI Demo");
  }      

七、在module的build.gradle中配置ndk的相關資訊,點選箭頭右上角,整理編譯,根據錯誤資訊,在配置檔案中加入錯誤資訊

Android Studio NDK 入門demo
Android Studio NDK 入門demo

八、記得在MainActivity中導入so檔案庫,運作項目,成功編譯,可以在項目編譯目錄下面找到so檔案庫

static{
    System.loadLibrary("ndkdemo");
}      
Android Studio NDK 入門demo
Android Studio NDK 入門demo

九、得到了so檔案,直接引用so檔案就更簡單了,隻需要在main中建立名為jniLibs的檔案夾,把相應的so檔案都複制進去,隻要包名和方法名都相同,在其他項目中就是這樣麼簡單的引用so庫。

Android Studio NDK 入門demo

繼續閱讀