Да! CMake работает в Android Studio так же, как и везде. Все «специальные переменные среды» прямо здесь, в документации Android
так что единственное, что вы захотите получить от чистого нативного приложения, это
# build native_app_glue as a static lib
set(APP_GLUE_DIR ${ANDROID_NDK}/sources/android/native_app_glue)
include_directories(${APP_GLUE_DIR})
add_library( app-glue STATIC ${APP_GLUE_DIR}/android_native_app_glue.c)
...
target_link_libraries(MyLibrary app-glue)
Кроме того, любые другие детали, которые вам нужны, - это больше вопросов CMake, чем NDK. Также обратите внимание, что вы можете передавать аргументы через Gradle
externalNativeBuild {
cmake {
abiFilters 'armeabi-v7a', 'arm64-v8a'
arguments '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=gnustl_static'
}
}
ЛУЧШЕЕ РЕДАКТИРОВАНИЕ - Я понял, что вопрос был нацелен на загрузку библиотеки c ++ во время выполнения из Java / Kotlin.
Здесь вы хотите убедиться, что ваше приложение build.gradle имеет
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
В твоем cmake ты все еще хочешь
add_library( MyNative SHARED
${NATIVE_SRC}/myCode.cpp)
...
target_link_libraries(MyNative otherNativeLibraries)
Затем вы просто загружаете его с помощью Java (не уверен, что для Kotlin)
System.loadLibrary("MyNative");
Отсюда вопрос создания вызовов JNI (опять-таки не уверенных в Kotlin) для подключения к вашей библиотеке libMyNative.so, МНОГО подробнее об этом здесь