第一个ndk
第一步:MainActivity中定义一个方法:
public static native String getStringFromC();
第二步生成头文件:
①我的项目位置:E:\android\HelloNdk
②我的sdk中android.jar包的位置:G:\android\AndroidX86\AndroidX86\sdk\platforms\android-19\android.jar
首先定位到自己项目的位置:
C:\Users\Administrator>cd E:\android\HelloNdk
C:\Users\Administrator>E:
编译头文件:
javah -classpath bin/classes;G:\android\AndroidX86\AndroidX8 6\sdk\platforms\android-19\android.jar -d jni com.example.hellondk.MainActivity
结果:在jni文件夹中生成:comexamplehellondk_MainActivity.h
其中有个方法:
JNIEXPORT jstring JNICALL Javacomexample_hellondkMainActivitygetStringFromC (JNIEnv *, jclass);
写c语言方法和结果
#include <stdio.h>
#include <stdlib.h>
#include "com_example_hellondk_MainActivity.h"
JNIEXPORT jstring JNICALL Java_com_example_hellondk_MainActivity_getStringFromC
(JNIEnv * env, jclass jclass)
{
return (*env)->NewStringUTF(env, "Hello from JNI !");
}
jni文件夹下面生成Android.mk
可直接复制下载好的ndk中的Android.mk
LOCAL_MODULE := hello//输出的名字
LOCALSRCFILES := hello.c//编译的名字
生成.so文件
定位到项目,然后输入ndk-build
在mainactivity中加载so文件
static {
System.loadLibrary("hello");
}
注意:生成的so文件的文字是libhello.so文件
Eclipse下配置ndk
Window->Preferences ->Android ->NDK->选择ndk的位置
右击项目->Properties->Builders->New->Program->Location选择ndk的ndk-build.cmd->Working Directory选择Workspace->选择Build Options->勾选During auto builds->点击ok