Unity3d呼叫Android版so庫
阿新 • • 發佈:2019-01-05
C原始碼封裝Android版函式庫
工具介紹
需要Android NDK工具包,下載地址為:
https://developer.android.google.cn/ndk/downloads/index.html
下載後解壓後即可使用。
(警告: 解壓的路徑不能帶空格,最好都是英文路徑)
新增ndk-build 指令的路徑到path全域性變數中
測試安裝成功,使用CMD視窗執行ndk-build,如下圖結果說明安裝配置成功
程式編寫
test.h檔案內容如下:
test.cpp檔案內容如下:
編譯配置指令碼
Android NDK需要編寫兩個指令碼:Android.mk 和 Application.mk。
Application.mk的內容如下:
(注意:此檔案儘量不要改動)
Android.mk 檔案內容如下:
此檔案中的LOCAL開頭的變數都是AndroidNDK編譯時會自動使用的,每個變數的意義參見變數的命名。LOCAL_MODULE 是生成的函式庫名稱。
編譯出函式庫
在CMD中執行編譯指令結果如下:
生成的所有的不同Android平臺的函式庫路徑為:
測試編譯出的函式庫正確性:
將libtest.so 上傳到linux系統下,執行指令如下圖,表明函式庫正常。
Unity3D呼叫函式庫
Unity3D對於動態連結庫的存放位置有規則說明,將網址:
將libs目錄複製到 Assets/Plugins/Android目錄下。如果沒有目錄,手動創建出來。
(注意:層次關係一定要如上圖所示。我之前沒有建立或複製libs目錄,導致在Android系統上執行一直報錯:system.dllnotfoundexception: test)
如果配置成功,選中函式庫檔案時,會相應的展示inspector的CPU等平臺配置資訊。
函式庫呼叫測試程式碼如下: