Android(安卓)Studio NDK开发入门
16lz
2021-01-26
第一章、生成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
更多相关文章
- Android存储(四):读写SD卡的文件
- 把android db文件导入到项目中
- Android(安卓)在xml中配置 float 和 integer 值
- default.properties导致不能点Android选项问题
- android 读取本地图片生成 bitmap
- Ubuntu 下更新adt 的问题
- Android访问资源
- Ubuntu 12.04中Android(安卓)NDK r8d 编译 FFmpeg 0.11.1 并使用
- android通过HTTP协议上传文件至远程服务器