Android NDK (使用Android Studio 3.4)

Hi 大家好,我是Taco.

想不到過一陣子又回來弄NDK了。
但是看看Google NDK的文件發現好像跟以前有點不同,
所以來做個小筆記哩。

以下範例是為~
原專案加上全新的native library為例(非匯入現有的c/c++ libraray)

參考資料如下:
Create Hello-CMake with Android Studio
Getting Started with the NDK
JNI tips

重要推薦!: 直接看codelabs的快速範例,可以直接幫新專案加入下面提到的這些東西。

概略步驟:
  1. 下載NDK & tools

    到Tools -> SDK Manager的SDK Tools,把這些東西下載好:
    • NDK: 讓你可以在Android上執行C/C++ code
    • CMake: 讓Gradle可以build你的 native library.
    • LLDB: dubug 工具


  2. 新增native library資料夾& .cpp檔案
    (請照這個做)
    新增.cpp檔案後,可以參考這個來寫JNI interface(JNI參考資料)

  3.  // native-lib.cpp
    #include 
    #include 
    
    extern "C" JNIEXPORT jstring JNICALL
    Java_com_stan_taco_testnative_MainActivity_stringFromJNI(
            JNIEnv *env,
            jobject /* this */) {
        std::string hello = "Hello from C++";
        return env->NewStringUTF(hello.c_str());
    }
    

    // MainActivity.kt
    external fun stringFromJNI(): String
    
    companion object {
        // Used to load the 'native-lib' library on application startup.
        init {
            System.loadLibrary("native-lib")
        }
    }
    

  4. 連結Gradle和你的 native library
    (再照這個做)
    (詳細原理)
  5. Build & Run!

寫得相當簡略,
希望大家可以直接去看原文參考資料比較詳盡唷!

留言

張貼留言

這個網誌中的熱門文章

電信帳單開立電子發票之中獎領取流程(以台灣大哥大為例)

Android Studio Logcat Color 顏色修改

在Mac的Android Studio 2.1 中使用Android NDK(Native Development Kit) Part 4: ndk-build以及如何在Android中呼叫C/C++ function