JNI(二)—創(chuàng)建JNI項目,生成so文件

前言

在上節(jié)中,我們已經(jīng)學(xué)習(xí)了NDK環(huán)境的搭建,那么今天我們就來學(xué)習(xí)下JNI項目創(chuàng)建即so文件的生成。這里需要說明一下,生成so文件可以有兩種方式,一種是傳統(tǒng)方式,一種是利用Cmake方式。由于之前沒怎么接觸過JNI相關(guān)知識,這幾天學(xué)習(xí)起來比較混亂,然后等慢慢熟悉以后,才知道有這兩種方式。鑒于Androidstudio的強大,個人建議使用Cmake方式。因為Androidstudio有對應(yīng)cmake工具,可以方便的生成jni模板,如果用傳統(tǒng)方式的話,c/c++代碼報錯了很難找到錯誤,特別是你不熟悉c/c++的話,更是痛苦。
JNI環(huán)境搭建請參考:JNI(一)—NDK環(huán)境搭建
今天涉及內(nèi)容:

  1. 新建JNI項目
  2. 了解JNI項目結(jié)構(gòu)
    • native-lib.cpp文件
    • CMakeLists.txt 文件
    • app_moduel對應(yīng)的build.gradle中多了以下NDK相關(guān)配置
    • 再看看Android代碼中的MainActivity
  3. 運行JNI項目模板
  4. 修改JNI項目模板,弄自己的接口方法
    4.1 在app/src/main/路徑下建jni文件夾
    4.2 將native-lib.cpp文件改為自己想定義的名字
    4.3 將JniControl.cpp剪切至jni文件夾里
    4.4 將CMakeLists.txt移動到app/目錄下(與src同級)
    4.5 打開配置文件CMakeLists.txt,修改對應(yīng)lib名稱和cpp文件路徑
    4.6 修改app_moduel的build.gradle中ndk配置
    4.7 編寫java類(用于Java調(diào)用c/c++)
    4.8 修改JniControl.cpp代碼
    4.9 測試Jni方法
  5. so文件的生成和路徑
  6. 項目結(jié)構(gòu)圖

先來波截圖


image.png

一.新建JNI項目

新建Android項目,選擇 C++

image.png

next,然后給項目命名,next
image.png

選擇Toolchaiin Default,然后finish
image.png

二.了解JNI項目結(jié)構(gòu)

在新建完JNI項目后,項目中會自動生成一個可運行的JNI模板項目。讓我們來看看項目結(jié)構(gòu)。

image.png

項目中多了一個.cxxcpp文件夾。
打開cpp文件夾
image.png

可以看到里面有一個.cpp文件和一個CMakeLists.txt配置文件。讓我們來一 一看看。

  • native-lib.cpp文件
    native-lib是模板自動生成的名字,讓我們來看看它里面的代碼:
還有 74% 的精彩內(nèi)容
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
支付 ¥3.00 繼續(xù)閱讀

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容