天天看點

androidStudio3.5版本在項目中調用C/C++

Android開發主流工具已變成AndroidStudio,新版AS已經支援CMake編譯工具,可以用于編譯C/C++檔案,增強了Android調用jni代碼的便捷性。相比于之前繁雜的ndk配置方式,cmake較為簡單友善。

本文使用androidStudio3.5

1.環境配置

    在SDK Tools裡選擇 CMAKE/LLDB/NDK點選OK 安裝這些插件.

androidStudio3.5版本在項目中調用C/C++

2.建立CMakeLists.txt檔案

  在Project 目錄下,右鍵app,點選建立File檔案,命名為CMakeLists.txt,并配置檔案

  在CMakeLists.txt檔案裡添加如下代碼(具體含義自行百度):以下為我添加的

androidStudio3.5版本在項目中調用C/C++

3.建立一個新類

在想要目錄裡建立一個新類Test_lib.java

androidStudio3.5版本在項目中調用C/C++

在此類中添加代碼

package com.driss.myjnitext;

public class Test_lib {
    static {
        System.loadLibrary("test_lib");
    }
    public static native String getStr(String str);

}
           

4、在main下面建立jni目錄,建立test_lib.c檔案,名字必須與CMakeLists.txt檔案的源檔案所在目錄一緻,裡面可以暫時不添加任何東西

5、右鍵app,點選Link C++Project with Gradle

顯示如下,選擇CMakeLists.txt檔案所在路徑,點選ok

androidStudio3.5版本在項目中調用C/C++

建構完後會自動生成一些配置,如圖所示

androidStudio3.5版本在項目中調用C/C++

6、回到Test_lib.java檔案,選中getStr(),按下Alt+Enter,點選Create function...如下圖所示

androidStudio3.5版本在項目中調用C/C++

此時會在test_lib.c檔案裡自動生成C/C++函數,接着在.c檔案裡編寫C/C++接口函數了。

7、然後Make Project成功後,會在如下目錄生成.so檔案,此時.so庫生成成功,可随時調用

androidStudio3.5版本在項目中調用C/C++

8、在其他類中調用C/C++函數

androidStudio3.5版本在項目中調用C/C++

現在使用CMake比傳統的jni調用方式要友善很多了