Android Studio NDK开发入门
来源:互联网 发布:centos 查看空间大小 编辑:程序博客网 时间:2024/05/22 04:43
第一章、生成JNI的.h文件
1、新建android工程HelloNDK,新建包com.hteng.ndk.hello,在包下编写HelloManager.java类,定义本地getHelloString()方法;
public native String getHelloString();
2、 将HelloManager.java类拷到E盘根目录, 打开cmd命令行窗口,切换到E盘根目录,指令一生成class文件,指令二生成C语言JNI的.h文件;
E:\>java com.hteng.ndk.hello.HelloManagerE:\>javah com.hteng.ndk.hello.HelloManager
第二章、实现头文件相关业务逻辑
1、在HelloNDK的main目录底下新建jni文件夹,拷贝com_hteng_ndk_hello_HelloManager.h到该目录;
2、在jni新建Hello.c文件,内容如下:
#include<stdio.h>#include<stdlib.h>#include<jni.h>#include"com_hteng_ndk_hello_HelloManager.h"JNIEXPORT jstring JNICALL Java_com_hteng_ndk_hello_HelloManager_getHelloString (JNIEnv * env, jobject clazz){ return (*env)->NewStringUTF(env,"hello NDK");}
第三章、配置NDK参数
1、修改build.gradle文件,新增NDK配置内容
apply plugin: 'com.android.application'android { compileSdkVersion 15 buildToolsVersion "23.0.3" defaultConfig { applicationId "com.hteng.ndk.hello" minSdkVersion 15 targetSdkVersion 19 versionCode 1 versionName "1.0" ndk { moduleName "hello-world" } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }}dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12'}
2、修改gradle.properties文件,新增NDK配置
android.useDeprecatedNdk=true
3、修改local.properties文件,增加NDK路径配置
ndk.dir=E\:\\android-soft\\android-ndk-r10e
1、载入so库文件
static { System.loadLibrary("hello-world"); }
2、调用so库文件native方法
HelloManager.getInstance().getHelloString()
源码下载:https://github.com/jimmy5zhang/HelloNDK.git
0 0
- Android Studio NDK开发入门
- Android Studio NDK开发入门
- Android Studio NDK JNI开发入门记录
- Android Studio NDK开发简单入门
- Android Studio 进行NDK开发入门
- Hello 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 开发
- makefile 编写
- 神经网络不可思议的声誉
- 讯飞语音 20006 错误,已解决
- Cookie 实现WebView自动登录
- 新工程添加到自己的Github上
- Android Studio NDK开发入门
- ServletConfig 总结
- 剑指offer替换空格问题
- mybatis 和 Hibernate对比
- 设计模式学习第五天
- Java微信公众号开发
- 软件设计模式——桥接模式(Bridge)
- MediaRecorder类介绍
- 随机森林原理篇