您的位置:首页 > 移动开发 > Android开发

android studio 使用JNI开发

2016-12-22 16:13 253 查看

eclipse 和 android studio使用JNI的区别:

  eclipse是使用Android.mk 这个mk文件来组织编译,在android studio上是使用build.gradle来编译的,因此eclipse项目迁移到as项目的时候要将mk文件转换为gradle语句。Android下使用JNI有两种情况,一是直接使用.so文件,还有就是使用c/c++源代码进行编译。

  一 使用.so文件,在src/main目录下建立jniLibs,把.so文件放在该目录下

        


这样在项目编译的时候就会自动将so文件打包进apk,然后在项目中直接使用LoadLibray就可以加载so文件了
         
例如
     
String libName="myLib";
static {
System.loadLibrary("myLib");
}


 二  使用C/C++源代码

     1,首先确保ndk版本在r9d版本以上,如果低于该版本,在使用Android studio的时候就会出现 No rule to make Target 这样的错误。 

     2,要配置ndk,在 local.properties目录配置ndk, 例如

实际目录改成自己本地所在的路径
    3,在app目录下的build.gradle目录下配置ndk使用模块
      
android {
compileSdkVersion 19
buildToolsVersion "20.0.0"
defaultConfig {
applicationId "com.example.ndksample"
minSdkVersion 9
targetSdkVersion 19
versionCode 1
versionName "1.0"
ndk {
moduleName "myLib" //这是C++代码的module文件

}
}


   4,添加C++代码,在app/src/main目录下建立jni文件夹,将C++文件放在目录下
       


      也可以自定义源代码文件目录
       
android{

sourceSet.main{
jni.srcDirs 'src/main/source'
}
}


  
    5,可以分平台配置,这样做的好处是可以指定使用的平台来编译.so文件
         
android {
productFlavors {
x86 {
ndk {
abiFilter "x86"
}
}
arm {
ndk {
abiFilter "armeabi-v7a"
}
}
mips {
ndk {
abiFilter "mips"
}
}
}
}


  



  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: