Android JNI环境搭建
来源:互联网 发布:only淘宝有几家店 编辑:程序博客网 时间:2024/06/06 23:51
环境工具
ubuntu,android studio,ndk
步骤
新建项目TestJNI
配置ndk目录Ctrl+Alt+Shift+S打开Project structure,点选SDK location,配置Android NDK location。将ndk根目录配置到该项中
app module的 build.gradle 文件中 配置(module name,生成的so文件的名字,例如,moduleName=”test” 那生成的so名字就是libtest.so,modulename 配置的名字
不需要加上lib前缀;ldLibs则定义了链接时使用到的库, log指liblog.so,是 程序中用到android/log.h需要引入; z-libz,压缩库 ; m-libm 数学运算,不配置ldLibs时,只会链接标准库libc。这三个不是必须,依赖于项目需要,还可以添加或者去掉并不需要的库;
abiFilters 则定义了支持的ABIs; 在defaultConfig中还可以添加其他一些设置,不多赘述
defaultConfig { ndk { moduleName = "×××" ldLibs "log", "z", "m" abiFilters "armeabi", "armeabi-v7a", "x86" }}
- 项目中package下新建class,例如在com.test包下面新建NativeUtils.java 文件,我们在这个类里面定义native方法方便调用。
首先在该类中加载我们的so文件
static{ System.loadLibrary("libtest"); }
定义 native方法,跟普通方法一样,但是需要加上native关键字,表明是native方法:
public static void **native** testJNI();
5.open terminal,切换到项目目录下
javah -d 生成的jni目录 -classpath 生成对应.h文件的class目录 -jni class全包名类名
例如:我们cd 到项目根目录下面(TestJNI)
cd TestJNIjavah -d ./src/main/jni/ -classpath ./build/intermediates/classes/debug/ -jni com.test.NativeUtils
-d ./src/main/jni/
表明生成的.h头文件在src/main/jni/ 文件夹
-classpath ./build/intermediates/classes/debug/
该class文件在这个目录
-jni com.test.NativeUtils` 该class全名
这时,切换到src/main/jni/ 目录下面就可以看到生成的对应的.h文件
6.编写自己的c文件,然后打包app测试
- android jni 搭建环境
- Android JNI环境搭建
- android-jni 之 环境搭建
- android JNI--- 搭建环境(1)
- android ndk jni 环境搭建
- Android JNI开发环境搭建
- Android Jni开发环境搭建
- Android Studio JNI 环境搭建
- android studio jni环境搭建
- Android JNI环境搭建及开发入门
- cocos2d-x-jni-android,环境搭建手记
- Android NDK&&JNI 编译环境的搭建
- Android Jni开发环境搭建完整版
- android JNI学习之一环境搭建
- Android NDK+JNI开发环境搭建
- Android JNI入门搭建环境(一)
- Android Jni开发环境搭建完整版
- Android Jni开发环境搭建完整版
- Android 深入理解Android中的自定义属性
- rails 中的form_for汇总总结
- 存储过程详解
- Android 实现高斯模糊效果及低版本兼容
- mysql中文编码
- Android JNI环境搭建
- Storm_关停supervisor 以及 worker 进程, 利用kill
- 本地MAVEN仓库搭建之nexus
- PhotoSwipe简介
- centos 搭建 tomcat
- Zhao Jinglei: ReadSense Ltd Pay more attention to the commercialization of the ground, research AI c
- websocekt-python与Js交互(2)
- C++
- Android 自定义View (一)