Android Studio使用jni、so库
来源:互联网 发布:荷塘月色淘宝卖家论坛 编辑:程序博客网 时间:2024/05/29 17:52
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)
- Android Studio使用jni、so库
- Android Studio使用jni、so库
- JNI使用实例:Android Studio使用JNI编译so库
- Android Studio JNI配置及.so库使用
- Android studio 初步使用JNI(二)制作.so库
- Android Studio中使用JNI和第三方.so库
- Android Studio JNI生成so库
- Android Studio JNI 开发.so库
- JNI的入门使用及so库的生成(Android Studio环境)
- Android Studio cmake方式jni开发,在c层使用其它动态链接库*.so
- Android studio使用JNI实例(2)- 调用外部so库
- Android Studio 使用JNI库
- Android studio通过JNI调用动态链接库SO
- Android studio项目中添加JNI so库
- Android studio 下JNI编程实例并生成so库
- Mac 下Android Studio JNI 制作so库
- Android studio 下JNI编程实例并生成so库
- Android NDK——使用Android Studio引用so库,jar包及module并使用JNI的正确姿势
- Android开发教程--onConfigurationChanged不执行的解决办法
- Oracle EBS R12.2 新特性文档
- Android VLC播放器二次开发1——程序结构分析
- Oracle菜鸟之grant授权
- 我将要出去工作了
- Android Studio使用jni、so库
- Android VLC播放器二次开发2——CPU类型检查+界面初始化
- 通讯类
- javascript Date format(js日期格式化)
- Android VLC播放器二次开发3——音乐播放(歌曲列表+歌词同步滚动)
- SQL Server中raiserror的介绍
- 微软100题(52)求二叉树的深度
- PyCharm配置整理
- UVA11605 Lights inside a 3d Grid(概率公式)