Android Studio使用jni、so库

简介: Android Studio使用jni、so库在Android Studio1.1之后,AS就已经支持jni和so库了,马上发布的1.3正式版,更是可以在clion环境下编译c、c++,更加方便的使用NDK进行开发,网上有很多讲在Android Studio中使用jni的方法,但大多都是在1.1之前的,那时候还没有直接支持jni,所以需要通过给gradle增加task的方式来添加支持。

Android Studio使用jni、so库

在Android Studio1.1之后,AS就已经支持jni和so库了,马上发布的1.3正式版,更是可以在clion环境下编译c、c++,更加方便的使用NDK进行开发,网上有很多讲在Android Studio中使用jni的方法,但大多都是在1.1之前的,那时候还没有直接支持jni,所以需要通过给gradle增加task的方式来添加支持。而现在,这一切都不是事!!!

添加lib库

切换到project标签,直接将jar包复制到libs目录下,在添加dependency就可以了。

添加so库

添加so库有两个方法。但是强烈建议使用简单粗暴的方式。

简单粗暴

在main目录点击右键,添加文件夹,命名为jniLibs,需要注意的是,一个字都不能错,这是默认名。

自定义目录

在main下面你可以自定义一个目录,例如:xys。然后在build.gradle的Android标签下,添加如下修改:

sourceSets {
        main {
            jniLibs.srcDirs = ['xys']
        }
    }

指定下jniLibs的具体目录即可。

使用

在代码中,只需要:

static {
        System.loadLibrary("XXXX");
    }

并且指定native对应的方法:

public static native void nativeXXXXX();

这些应该不用讲了。

警告

在使用jni的时候,有几个地方非常需要注意。

包名

在loadLibrary的那个程序,包名一定要和so库的包名一样

so库版本

在jniLibs下,最好放置:

这里写图片描述

这样几个版本最好都要,但是实际上,放一个armeabi-v7a就够了。但是出错的时候,一定要往这个地方上去想。

为什么只用armeabi-v7a,这也是目前大多数Android 产品这样做法;
1.armeabi-v7a支持浮点操作,所以速度更快,并且目前绝大多数机器支持armeabi-v7a;(来自arm中国team的朋友以及业内信息)
2.armeabi 针对普通的或旧的arm v5 cpu,但是速度慢,得不到最新设备的CPU兼容优势(高级扩展功能,浮点运算);
3. x86 机子太少,没必要做兼容;(除非我们完全不care包size)

目录
相关文章
|
3天前
|
Android开发
Android JNI与CAN通信遇到的问题总结
Android JNI与CAN通信遇到的问题总结
37 1
|
3天前
|
存储 Java API
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
92 0
|
3天前
|
Android开发
Android JNI 报错(signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr )
Android JNI 报错(signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr )
69 1
|
1天前
|
缓存 程序员 定位技术
Android Studio 插件,那些被大厂优化的程序员们
Android Studio 插件,那些被大厂优化的程序员们
|
2天前
|
监控 安全 API
orhanobut/logger - 强大的Android日志打印库
orhanobut/logger - 强大的Android日志打印库
8 1
|
3天前
|
Android开发
Android studio 2021.3.1不生成iml文件
Android studio 2021.3.1不生成iml文件
18 5
|
3天前
|
开发工具 Android开发
解决夜神模拟器与Android studio自动断开的问题
解决夜神模拟器与Android studio自动断开的问题
9 1
|
3天前
|
Java Android开发
Android JNI 调用
Android JNI 调用
8 1
|
3天前
|
Oracle Java 关系型数据库
Android零基础入门(一)配置环境和安装Android Studio
Android零基础入门(一)配置环境和安装Android Studio
20 0
|
3天前
|
Android开发
Android Studio或IDEA 升级后 不提示错误问题
Android Studio或IDEA 升级后 不提示错误问题
15 1