1. 程式人生 > >JNI---在c中使用log 和生成so庫

JNI---在c中使用log 和生成so庫

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檔案是不行的。這個之後介紹咯