第一章、生成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


第四章、调用NDK方法

1、载入so库文件

 static {        System.loadLibrary("hello-world");    }

2、调用so库文件native方法

HelloManager.getInstance().getHelloString()

源码下载:https://github.com/jimmy5zhang/HelloNDK.git


更多相关文章

  1. Android存储(四):读写SD卡的文件
  2. 把android db文件导入到项目中
  3. Android(安卓)在xml中配置 float 和 integer 值
  4. default.properties导致不能点Android选项问题
  5. android 读取本地图片生成 bitmap
  6. Ubuntu 下更新adt 的问题
  7. Android访问资源
  8. Ubuntu 12.04中Android(安卓)NDK r8d 编译 FFmpeg 0.11.1 并使用
  9. android通过HTTP协议上传文件至远程服务器

随机推荐

  1. Android 查看SHA1值的方法
  2. Android中TextClock中的一个abc函数
  3. 从另一种方式理解Android消息处理机制
  4. Android实现类似有Table边框的布局
  5. Android 快速学习onTouch,并完成实验单点
  6. Android Glide加载图片,宽度占满屏幕高度
  7. android 在fragment中如何监听返回键,home
  8. 【转载】Android绘图系列(五)——绘制文
  9. android linux getprop setprop wathcpro
  10. 安卓EditText控件底部红线如何解决?