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的快速範例,可以直接幫新專案加入下面提到的這些東西。
概略步驟:
想不到過一陣子又回來弄NDK了。
但是看看Google NDK的文件發現好像跟以前有點不同,
所以來做個小筆記哩。
以下範例是為~
原專案加上全新的native library為例(非匯入現有的c/c++ libraray)
參考資料如下:
Create Hello-CMake with Android Studio
Getting Started with the NDK
JNI tips
重要推薦!: 直接看codelabs的快速範例,可以直接幫新專案加入下面提到的這些東西。
概略步驟:
- 下載NDK & tools
到Tools -> SDK Manager的SDK Tools,把這些東西下載好:
- 新增native library資料夾& .cpp檔案
(請照這個做)
新增.cpp檔案後,可以參考這個來寫JNI interface(JNI參考資料) - 連結Gradle和你的 native library
(再照這個做)
(詳細原理) - Build & Run!
// 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") } }
寫得相當簡略,
希望大家可以直接去看原文參考資料比較詳盡唷!
希望大家可以直接去看原文參考資料比較詳盡唷!
網誌管理員已經移除這則留言。
回覆刪除