Android Studio NDK
来源:互联网 发布:青苹软件 编辑:程序博客网 时间:2024/06/05 20:21
Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互。NDK开发是为了项目需要调用底层的一些C/C++的一些东西;另外就是为了效率更加高些,安全性更高。
一 、新建项目
把NDK 环境配置好,新建一个文件
public class JniUtils { public static native String getStringFromC(); static { System.loadLibrary("NdkJniDemo"); }}
然后 Make Project
完成以后去查看,这时候打开如下图的文件夹看是否生成了classes文件夹,没有生成请重新来过。
再打开Terminal输入指令,
<span style="white-space:pre"></span>cd app/build/intermediates/classes/debug然后再输入指令
<span style="white-space:pre"></span>javah -jni ndktest.ndkdemo.JniUtils这时候打开classes/debug下面的文件发现多了一个文件 ndktest_ndkdemo_JniUtils.h
然后在src/main下新建文件夹jni,把生成的.h文件复制或者剪切到jni文件夹下面去,新建一个c类随便取一个名字,添加代码如下
#include "ndktest_ndkdemo_JniUtils.h"JNIEXPORT jstring JNICALL Java_ndktest_ndkdemo_JniUtils_getStringFromC (JNIEnv *env, jobject obj){ return (*env)->NewStringUTF(env,"Jni String ");}在gradle.properties文件末尾添加
android.useDeprecatedNdk=true
就ok啦然后在 build.gradle ->defaultConfig括号内添加如下代码
ndk { moduleName "NdkJniDemo" abiFilters "armeabi", "armeabi-v7a", "x86"}
在JniUtils类里面添加如下代码 ,方法里代码名字和build.gradle ->defaultConfig->ndk ->moduleName 必须一致
static { System.loadLibrary("NdkJniDemo");}
打开app->intermediates-ndk-debug发现生成了三个文件夹,并且对应了之前我们在build.gradle配置的abiFilters
大功告成。
在main目录下新建Jnilibs文件夹把这三个文件夹放进去,删除jni下的文件。即可调用。
1 0
- android studio + NDK
- NDK With Android Studio
- Android studio NDK开发
- NDK With Android Studio
- windows+Android studio+ndk
- Android Studio NDK 编译
- android studio ndk
- Android Studio开发NDK
- Android Studio + NDK
- Android Studio ndk开发
- android studio 配置 NDK
- Android studio开发NDK
- Android Studio NDK配置
- Android Studio NDK编译.
- android studio NDK编程
- android studio 使用NDK
- Android Studio NDK使用
- Android Studio 与 NDK
- 如何写出一个返回多个值的c语言子函数
- [字符编码]Invalid byte 1 of 1-byte UTF-8 sequence终极解决方案
- Android中scrollview滑动监测
- iOS 常用小技巧大杂烩(下)
- EL表达式在Tomcat上正常,换到WebSphere上无法解析
- Android Studio NDK
- 关于苹果审核,应用需支持IPV6的解决办法
- qt下QWT编译 配置和使用
- AngularJS之input指令
- MAVEN项目标准目录结构
- java实现查找数组中重复次数最多的字符串
- Xamarin.Forms项目无法添加服务引用
- 最大和子矩阵
- 实例深入理解Java wait/notify执行机制