Android應(yīng)用程序使用NDK的意義在這里就不說(shuō)了,本文主要講解如何在Android Studio 2.2下如何一步步搭建NDK開(kāi)發(fā)環(huán)境。
下載NDK和工具
Android Studio2.2開(kāi)始推薦開(kāi)發(fā)者使用CMake去構(gòu)建本地代碼,在構(gòu)建之前疏哗,我們需先安裝下面三個(gè)依賴(lài):
- NDK: a set of tools that allows you to use C and C++ code with Android.
- CMake: an external build tool that works alongside Gradle to build your native library. You do not need this component if you only plan to use ndk-build.
- LLDB: the debugger Android Studio uses to debug native code.
我們可以使用SDK Manager進(jìn)行下載混滔,菜單位置:Tools > Android > SDK Manager,勾選后安裝即可
創(chuàng)建或者導(dǎo)入native項(xiàng)目
創(chuàng)建工程
在這里要注意勾選這個(gè)
Include C++ Support
接下來(lái)一路next最后finish绕德,工程就創(chuàng)建好了殃姓。創(chuàng)建好之后系統(tǒng)默認(rèn)生成了個(gè)demo翔冀。在Android Studio2.2下导街,目錄結(jié)構(gòu)發(fā)生了變化
所有c/c++文件都應(yīng)放置在src/main/cpp/目錄(以前是在jni目錄)
配置build.gradle
android {
...
defaultConfig {
...
externalNativeBuild {
cmake {
//設(shè)置編譯工具鏈
arguments "-DANDROID_TOOLCHAIN=clang"
//需編譯生成的ABI類(lèi)型
abiFilters 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'arm64-v8a'
}
}
ndk {
//打包進(jìn)APK的ABI類(lèi)型
abiFilters "armeabi", "armeabi-v7a", "x86"
}
}
externalNativeBuild {
cmake {
//配置CMakeLists.txt的路徑
path 'CMakeLists.txt'
}
}
...
}
配置之后,我們就會(huì)發(fā)現(xiàn)工程終于變成這種結(jié)構(gòu)了纤子,其中
cpp
里面的是源文件搬瑰,External Build Files
是CMakeLists文件。
當(dāng)然控硼,想要正常編譯泽论,我們還需要學(xué)習(xí)CMake文件,這里推薦一篇文章:CMake 入門(mén)實(shí)戰(zhàn)