JNI入门,使用NDK编写自己的SO库
来源:互联网 发布:mac层随机竞争算法 编辑:程序博客网 时间:2024/06/05 23:13
很多时候我们开发会使用到第三方的.so文件,这个.so文件是如何生成的呢?当然和NDK有关了,其实NDK开发的一般步骤很简单,只需简单的几步就可完成。
一、和使用JDK开发一样,想要使用NDK开发,首先必须得下载NDK
studio里面可以直接下载ndk
下载好了之后在你的local.properties路径配置中自动会加上NDK路径(与SDK的添加路径一样)
二、在gradle.properties的配置中添加
android.useDeprecatedNdk=true //允许使用过时的NDK
这是解决ndk版本低不能自动编译jni的问题
三、在build.gradle配置中添加
四、生成.so文件
1、编写java类和native方法
2、点击Build—>Make Project,生成class文件(在app—>build—>intermediates—>classes—>debug目录下)
3、在studio底下菜单中的Terminal命令行中通过javah命令生成.h头文件
注意:路径只能切换到cd debug目录,不能直接将目录切到项目里面,比如cd xxx/org/hugh/jni,不行!
此时,debug目录下会生成.h文件
4、将.h头文件剪切到新建的jni目录中,在jni目录中新建一个.c或者.cpp文件,生成.so库
新建jni目录
将之前生成的.h文件剪切到jni目录中
在jni目录中新建一个.c或者.cpp文件
点击Build—>Make Project进行编译,生成.so库文件(路径:app—>build—>intermediates—>ndk—>debug—>lib下)
可以将这些.so文件拷贝出来
将含有JniUtil.java的jar拷贝出来,可以给classes.jar重命名(这里也可以通过gradle的task来执行)
五、在新建项目中使用.so文件
将生成的.so文件和调用so方法的jar包复制到新项目的lib文件夹中
gradle中配置so库的存放位置
这样就可以调用了
运行结果
一般调用.so文件的类都会打包成jar包提供出来(比如调用.so文件的JniUtil类),这是因为.so文件中的方法是严格按照包名及类名来命名的。
- JNI入门,使用NDK编写自己的SO库
- Android Studio使用NDK编译自己的.so库
- android NDK JNI so文件的制作和使用
- android NDK JNI so文件的制作和使用
- Android NDK--自己编写调用JNI
- Android NDK编程,我的第一个hello-jni程序,如何调用自己编译的so库
- Ndk(jni)调用第三方的so库
- 编写自己的动态连接库.so
- ubuntu下使用NDK 生成so库文件时MK文件的编写
- Android 使用NDK-build生成so文件 C++ JNI NDK
- Android使用已有so库自己实现jni封装
- [JNI学习]----NDK生成so库
- 开发so动态库模版(NDK、JNI)
- android ndk jni so库生成
- Android NDK——使用Android Studio引用so库,jar包及module并使用JNI的正确姿势
- JNI NDK SO DLL
- android JNI 使用的两种形式 --自己实现c和调用第三方so库
- 超详细的JNI(NDK)入门与使用
- 微信小程序 —— 自定义带进度条的音频播放控件audio
- 3-8 跳跃步数
- springboot访问页面报错:This application has no explicit mapping for /error, so you are seeing this as a fa
- 关于缘起
- Android微信之简单文本分享(集成官方SDK-Android Studio)
- JNI入门,使用NDK编写自己的SO库
- 初识python
- 音悦台免积分下载器
- [codevs2192][bzoj1922]大陆争霸
- C# foreach 中获取索引index方法的补充
- 关于用Java实现发送邮件(部分代码参考网络来源)
- 一篇简单的实用的代码,教你如何写GPS
- JAVA面试题
- 最小公倍数之和 V2 51Nod