JNI---在c中使用log 和生成so庫
阿新 • • 發佈:2019-02-17
1、使用log
ndk{
moduleName "AI3_API"
ldLibs "log", "z", "m"
abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
}
配置ldLibs “log”, “z”, “m”
2、c和.so檔案
要生成.so檔案,其實在app gradle裡面新增下列配置就可以了
ndk{
moduleName "jniLibrary"
abiFilters "armeabi", "armeabi-v7a", "x86" , "mips"
}
....
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
abiFilters 指定生成哪幾種.so檔案
sourceSet配置生成.so檔案的位置
由於在上面配置庫的時候 配置了abi
abiFilters “armeabi”, “armeabi-v7a”, “x86”, “mips”
在Project–app–build–intermediates–ndk–debug–下面就生成了很多型別的.so包
使用.so檔案
c已經編譯成.so檔案的情況下,將生成的.so檔案複製到專案的libs目錄下,
然後刪除jni檔案下面的檔案,再執行的時候你發現,也是可以的。
注:該.so檔案並不能在其他專案中被執行
你把jni下面的內容刪掉能夠正常執行,在生成該jni下面額相關方法的時候,使用到了專案的東西,包名呀什麼的,在其他專案環境下是不一樣的,不過要想.so檔案被其他專案使用也是有辦法的,只是說簡單的直接拷貝.so檔案是不行的。這個之後介紹咯