Android Studio JNI開發,Java+C++
前提:Mac平臺,windows平臺僅供參考。
1,準備工作。
1.1,檢視你的jdk是否有javah編譯功能:終端-》whereis javah
如果沒有找到這條指令,請檢視你是否安裝的是JDK較高版本,如果是jdk10,恭喜你這裡邊沒有javah的命令了,你需要更換你的jdk為1.8。如果你的jdk中有,你可以看到在Java Home的檔案路徑下看到如下圖:
如何配置你本機的jdk環境,請自行百度。
還可以使用你Android Studio中自帶的Java編譯,其中也是包含有javah的你只需要按照如下圖設定:
1.2,還需要三個外掛工具:
具體你可以參考google的Android開發者指導頁面:https://developer.android.com/studio/projects/add-native-code?hl=zh-cn
您可以使用 SDK 管理器安裝這些元件:
- 在開啟的專案中,從選單欄選擇 Tools > Android > SDK Manager。
- 點選 SDK Tools 標籤。
- 選中 LLDB、CMake 和 NDK 旁的複選框,如圖 1 所示。
圖 1. 從 SDK 管理器中安裝 LLDB、CMake 和 NDK。
- 點選 Apply,然後在彈出式對話方塊中點選 OK。
- 安裝完成後,點選 Finish,然後點選 OK。
好了,準備工作完成。
2,新建一個帶有C/C++的Android 工程
其中最重要的會自動生成:
1,cpp資料夾,這裡邊有範例的C++檔案。
2,CMakeLists.txt關聯庫名稱和檔案路徑。
3,app的build.gradle檔案中會自動生成
4,我們可以觀察cpp檔案,和MainActivity.java 能夠知道他的命名規則,和呼叫規則。
c++檔案函式名的命名規則:Java+包名+Activity名+方法名
在Activity中用CMakeLists.txt檔案中的別名靜態載入c++檔案。
該呼叫方法需要在Activity中申明為Native方法。
之後就可以直接呼叫該方法獲取C++檔案中傳遞的值了。
這樣jni加入C++檔案開發就可以正常運行了。
下一篇將說明,如何引入c檔案呼叫。其實和c++很像,也有不同的方法,需要用到上邊說的javah。