Android-0.Android Studio中导入外部so包并使用
导入so包
一般外部so包会提供对应的.h和so文件夹。
1.将相关的so文件夹复制到libs文件夹里,文件夹名字自定,以上两种为习惯约定。
2.修改app下的build.gradle文件,android
节点内增加如下代码:
// 用于旧版gradle
// task nativeLibsToJar(type: Zip, description: "create a jar archive of the native libs") {
// destinationDir file("$projectDir/jniLibs")
// baseName "Native_Libs2"
// extension "jar"
// from fileTree(dir: "jniLibs", include: "**/*.so")
// into "lib"
// }
//
// tasks.withType(JavaCompile) {
// compileTask->compileTask.dependsOn(nativeLibsToJar)
// }
// 用于新版gradle
sourceSets{
main{
jniLibs.srcDirs = ['libs']
}
}
这里要注意一点,比如你的libs
文件夹在app/main/
下,那么就要写成:
sourceSets {
main {
jniLibs.srcDirs = ['src/main/Libs']
}
}
gradle修改后执行sync now,这时切换到Android界面,可以看到jniLibs文件夹,它映射的就是jniLibs.srcDir
指定的文件夹:
简单的调用方式
这里我们根据给的.h文件来建立相应的包,文件名是com_studio_hgy413_jnidemo_hgy.h,如下图: