CMake的
使用过Android Studio 2.2及更高版本,可以使用NDK和CMake的 编译C和C ++代码到本机库。Android Studio中,然后构建系统使用Gradle把library打包到APK中
如果您是初次使用CMake的与Android Studio ,去C和C ++代码添加到您的项目学习添加原生资源到项目的基础,创造了CMake的构建脚本,并添加您的CMake项目作为一个gradle依赖。此页面为您提供可以使用自定义您的CMake构建一些额外的信息。
了解CMake的生成命令
当调试CMake的构建问题,它有助于知道对于Android Studio使用特定生成的参数当用交叉编译。
Android Studio中保存它使用用于执行CMake的构建,构建参数在cmake_build_command.txt
文件。对于每一个应用程序二进制接口(ABI)您的应用程序的目标,每个构建类型为那些ABI的(即,释放或调试),Android Studio中生成的副本cmake_build_command.txt
用于特定的配置文件。Android Studio中,然后将其生成在以下目录中的文件:
<project-root>/<module-root>/.externalNativeBuild/cmake/<build-type>/<ABI>/
提示:在Android Studio中,您可以快速通过使用搜索快捷键(查看这些文件shift+shift
),并进入 cmake_build_command.txt在输入字段。
下面的代码段示出的参数的CMake一个例子来构建的可调试释放hello-jni
样品靶向armeabi-v7a
架构。
Executable : /usr/local/google/home/{$USER}/Android/Sdk/cmake/3.6.3155560/bin/cmake arguments : -H/usr/local/google/home/{$USER}/Dev/github-projects/googlesamples/android-ndk/hello-jni/app/src/main/cpp -B/usr/local/google/home/{$USER}/Dev/github-projects/googlesamples/android-ndk/hello-jni/app/.externalNativeBuild/cmake/arm7Debug/armeabi-v7a -GAndroid Gradle - Ninja -DANDROID_ABI=armeabi-v7a -DANDROID_NDK=/usr/local/google/home/{$USER}/Android/Sdk/ndk-bundle -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/usr/local/google/home/{$USER}/Dev/github-projects/googlesamples/android-ndk/hello-jni/app/build/intermediates/cmake/arm7/debug/obj/armeabi-v7a -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=/usr/local/google/home/{$USER}/Android/Sdk/cmake/3.6.3155560/bin/ninja -DCMAKE_TOOLCHAIN_FILE=/usr/local/google/home/{$USER}/Android/Sdk/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_NATIVE_API_LEVEL=23 -DANDROID_TOOLCHAIN=clang jvmArgs : Build arg