前言
海南ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!這幾天專門研究了下JNI編程,在網(wǎng)上找了好多資料,不過好多都是以前的,沒有更新,而且有的還是錯誤的,讓人不得不吐槽一把。所以覺得自己來一篇,本文將詳細介紹關(guān)于android搭建ndk開發(fā)環(huán)境及第一個jni調(diào)用程序的相關(guān)內(nèi)容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。
一:ndk環(huán)境搭建
1:開發(fā)環(huán)境
我使用的是android studio 2.3.3版本,搭建ndk開發(fā)環(huán)境比較簡單,打開File----Settings----Appearance&Behavior----System Settings----Android SDK,選擇SDK Tools,將CMake,LLDB,NDK 前的復選框勾上,點擊Apply,然后就是等待ndk下載完成。
安裝成功后,右鍵項目----open module setting,Android NDK location會自動賦值
二:第一個jni程序
1:創(chuàng)建ndk項目
創(chuàng)建ndk項目和普通android項目有一點區(qū)別,需要把Include C++ support前面的復選框勾上,然后直接下一步。但在最后一步,有一個c++下拉框選項,可以根據(jù)你的實際情況適當修改,C++ Standard :點擊下拉框,可以選擇標準 C++,或者選擇默認 CMake 設(shè)置的 Toolchain Default 選項。Exceptions Support :如果你想使用有關(guān) C++ 異常處理的支持,就勾選它。勾選之后,Android Studio 會在 module 層的 build.gradle 文件中的 cppFlags 中添加 -fexcetions 標志。Runtime Type Information Support :如果你想支持 RTTI,那么就勾選它。勾選之后,Android Studio 會在 module 層的 build.gradle 文件中的 cppFlags 中添加 -frtti 標志。
項目創(chuàng)建好后,app下多了一個cpp目錄,該目錄用于存放c程序的源碼,頭文件,預(yù)編譯項目等,android studio 會默認幫我們創(chuàng)建一個native-lib.cpp文件,該文件已有一個測試方法,結(jié)構(gòu)圖如下:
通過上圖看到,在External Build Files 下面多了一個CMakeLists.txt文件,該文件用于c程序需要生成so文件的配置文件。
cmake_minimum_required(VERSION 3.4.1):這是版本信息,我們不用管它
add_library():這個命令是,通過add.library()定義多個庫,CMake會去自動構(gòu)建他們,一個*.cpp文件對應(yīng)一個add_library命令.
add_library( # Sets the name of the library.生成so文件的名字,建議和cpp文件同名 native-lib # Sets the library as a shared library. SHARED # Provides a relative path to your source file(s). 需要生成so文件的cpp文件名稱 src/main/cpp/native-lib.cpp )