自從AndroidStudio更新到2.2,就有了CMake和傳統JNI兩種開發NDK的方法,主要就是在目錄結構和build.gradle上的區別,下面咱們將分別介紹目錄區別和build.gradle種配置的區別(提示:在第一次用CMake時,最好在新建項目時勾選Include C++ Support,這樣這個項目的NDK開發就是CMake方式,這估計也是Android之後主推的方式,建好項目,熟悉CMake方式的目錄結構,這樣對之後建普通項目再轉CMake開發NDK有很大幫助,後面會講到普通項目轉NDK開發)android
傳統JNI:gradle
CMake:ui
這兩種方式在目錄上的區別就是兩點:spa
1.之前的jni目錄改爲cpp,位置不變 .net
2.以前對c文件的編譯配置Android.mk文件放在jni目錄下,如今改爲CMakeLists.txt文件開發
(提示:其實Android.mk文件和CMakeLists.txt能夠放在任意目錄下,不過最好放在當前工程目錄下任意位置。後面說build.gradle配置區別就知道了)get
傳統JNI:it
CMake:io
從上面兩幅圖能夠發現,只有兩個紅框中的內容有區別,對於傳統JNI,其實第二個紅框中的內容能夠不須要,它全部的配置都在編譯
不然Build項目的時候會報錯。
裏面配置。CMake的語法規則能夠百度。
經過選擇CMake或者ndk-build使開發NDK採用CMake或者JNI方法,不過此種轉化方法必須符合CMake或者JNI的目錄,也就是說,在上圖操做完成以前,必須先在項目中建好符合CMake或者JNI規則的目錄,假如文件中有對用cpp/c文件,在jni目錄新建好對應得文件.(androidstudio2.2以後新建NDK項目只能獲得CMake方式,只能普通項目轉)。