AndroidStudio使用JNI編程有兩種方式克懊,一種就是我們前面說的用ndk-build,
還有一種就是我們這里要說的CMake,AndroidStudio用戶構(gòu)建原生庫默認(rèn)工具就是CMake.
下載構(gòu)建工具
開始之前,需要下載一些工具谭溉,這里我直接貼了官網(wǎng)文檔的一張圖:
創(chuàng)建支持C/C++的項(xiàng)目
和普通的創(chuàng)建Android項(xiàng)目一樣 New Project ,填寫完一些項(xiàng)目信息之后巧勤, 需要勾住Include C++ support
之后點(diǎn)擊一路Next
弄匕,最后會有一個(gè)C++下拉框,下面直接給出官網(wǎng)的解釋:
- C++ Standard:使用下拉列表選擇您希望使用哪種 C++ 標(biāo)準(zhǔn)剩瓶。選擇 Toolchain Default 會使用默認(rèn)的 CMake 設(shè)置。
- Exceptions Support:如果您希望啟用對 C++ 異常處理的支持延曙,請選中此復(fù)選框亡哄。如果啟用此復(fù)選框,Android Studio 會將 -fexceptions 標(biāo)志添加到模塊級 build.gradle 文件的 cppFlags 中愿卸,Gradle 會將其傳遞到 CMake。
- Runtime Type Information Support:如果您希望支持 RTTI擦酌,請選中此復(fù)選框赊舶。如果啟用此復(fù)選框赶诊,Android Studio 會將 -frtti 標(biāo)志添加到模塊級 build.gradle 文件的 cppFlags 中,Gradle 會將其傳遞到 CMake舔痪。
最后finish.在創(chuàng)建完項(xiàng)目之后锄码,在IDE左側(cè)Android視圖如下:
cpp 里面是我們的C/C++源碼,而下面的CMakeLists.txt
痛悯,則是描述如何來構(gòu)建原生庫。
這里我什么都沒做载萌,就是讀取了一個(gè)字符串,然后顯示在界面垮衷,之后點(diǎn)擊運(yùn)行搀突,界面上就出現(xiàn)了這個(gè)字符串熊泵。當(dāng)然也可以根據(jù)自己的需求,編寫CMakeLists.txt
,這里我就加了一行生成動態(tài)分享庫:
# Set shared library output directory
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/libs/${ANDROID_ABI}")
重新運(yùn)行,則會在下面的目錄生成對應(yīng)的so庫筒扒。