Android Studio中NDK開發傻瓜教程(CMake)

繼上篇文章《Android Studio中NDK開發傻瓜教程(JNI)》以後,本篇介紹CMake技術在Android Studio中的NDK開發。java

源碼地址:android

https://github.com/xiaoliang0227/NDKDemo002git

Step1:新建項目,命名爲NDKDemo002,記得勾選「Include C++ support」github

Step2:一路點擊「Next」,最終點擊「Finish」完成新項目的建立app

Step3:默認項目會自動生成一個cpp文件夾,在main下,該目錄存放C相關的文件,項目自己是能夠運行NDK的,感興趣的你們能夠直接運行試一下。咱們本次教程不使用默認的native-lib.cpp,因此咱們後邊會刪除掉他。原來的項目結構以下:測試

 

Step4:建立類包「cpp」,並在該包中建立文件」HelloNDK」,內容與結構以下:gradle

Step5:build項目ui

Step6:build完成後app/build/intermediates/classes/debug中結構以下:this

Step7:經過Android Studio 自帶的Terminal定位到文件夾app/build/intermediates/classes/debug,以下:debug

Step8:使用指令,生成c語言頭文件。指令:javah -jni com.zyl.ndkdemo002.cpp.HelloNDK,目標頭文件在app/build/intermediates/classes/debug下,文件名爲「com.zyl.ndkdemo002.cpp.HelloNDK.h」,若是看不到請刷新下項目。示例以下:

」com.zyl.ndkdemo002.cpp.HelloNDK.h「內容以下:

Step9:把「com.zyl.ndkdemo002.cpp.HelloNDK.h」剪切到src/main/cpp中:

Step10:在「src/main/cpp」目錄中新建c source文件「com.zyl.ndkdemo002.cpp.HelloNDK.c」,內容以下:

Step11:配置app目錄下的build.gradle文件,在defaultConfig標籤中將externalNativeBuild修改成如下內容:

externalNativeBuild {

    cmake {

        cppFlags ""

        // 指定只用clang編譯器

        // clang是一個C語言、Objective-C、C++語言的輕量級編譯器

        arguments "-DANDROID_TOOLCHAIN=clang"

        // 生成.so庫的目標平臺

        abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86", "x86_64", "mips", "mips64"

    }

}

 

Step12:修改「CMakeLists.txt」文件,將配置的「native-lib」修改成「hellondk」,並配置「com_zyl_ndkdemo002_cpp_HelloNDK.c」

的注入路徑,修改後內容以下:

Step13:「make project」

Step14:生成的動態連接庫文件在項目中的結構以下:

Step15:把該lib下的全部爲文件拷貝到,app下的libs中,刪除掉先前提到 的無用的「native-lib.cpp」,並從MainActivity中刪除相關代碼

Step16:激動人心的時刻到了,測試,若是可以彈出「this is a android ndk hello.」,恭喜你,你成功了。代碼以下:

相關文章
相關標籤/搜索