什麼是共享庫
C++代碼可以編譯成類庫,直接分發給其它應用調用,這使得可以很容易地將自己的代碼以庫文件的形式共享給他人使用,同時還能保護源碼不泄漏
C++共享庫在Windows中以dll文件的形式存在,而在Linux系統中則以so文件的形式存在,這兩種文件想必大家都不陌生,其實它們都是C++共享庫,只是適用於不同平臺的軟件,並且都可以被JNI調用
將C++代碼編譯爲dll共享庫
現在我們已經知道,Windows系統中常見的dll文件,其實和Android中的so文件是同一性質的東西
爲了讓大家視野看得更寬廣些,不侷限於安卓開發,我們先來講解如何編譯dll庫
雖然Android根本不可能調用dll庫,因爲dll是Windows動態鏈接庫,依賴於Windows底層系統接口
但是大家以後開發做得多了,Java開發是免不了要和dll打交道的,dll調用也是JNI的重要一部分
至於so庫,我們後面有的是機會講,因爲編譯so庫是NDK開發的第一步,不怕大家不會
我們這次使用CLion來編譯dll庫,相對於Visual Studio,CLion功能佈局更清晰點,更重要的是,CLion和Android Studio一樣,都是在IntelliJ Idea的基礎上擴展而來,用法基本一樣,只是適用語言不一樣,因此基本沒有學習成本
創建一個【C++ Library】工程
下載並配置MinGW
這是一個C++編譯器,代碼要靠它編譯成程序或庫,直接下載解壓,配置下路徑就可以了
編譯工程,【Build】-【Build Project】
在編譯目錄下找到生成的dll文件
OK,完工!
這次我們只演示如何編譯dll,用的是默認的C++代碼
實際dll想要被JNI調用,在命名上是有規則的,這個我們下節再講