@ZeroGeek
2015-09-16T07:53:52.000000Z
字数 1965
阅读 824
每周主题 android
IDE:Android Studio 1.3
操作系统:Ubuntu 14.04 LTS
public class HelloClass {static {System.loadLibrary("app"); // module的名字}public native String stringFromJNI(); // 声明本地方法}
/home/zero/Downloads/NDK/app/build/intermediates/classes/debug/
#include <string.h>#include <jni.h>jstring Java_com_zero_ndk_JNIClass_HelloClass_stringFromJNI( JNIEnv* env, jobject thiz ){#if defined(__arm__)#if defined(__ARM_ARCH_7A__)#if defined(__ARM_NEON__)#if defined(__ARM_PCS_VFP)#define ABI "armeabi-v7a/NEON (hard-float)"#else#define ABI "armeabi-v7a/NEON"#endif#else#if defined(__ARM_PCS_VFP)#define ABI "armeabi-v7a (hard-float)"#else#define ABI "armeabi-v7a"#endif#endif#else#define ABI "armeabi"#endif#elif defined(__i386__)#define ABI "x86"#elif defined(__x86_64__)#define ABI "x86_64"#elif defined(__mips64) /* mips64el-* toolchain defines __mips__ too */#define ABI "mips64"#elif defined(__mips__)#define ABI "mips"#elif defined(__aarch64__)#define ABI "arm64-v8a"#else#define ABI "unknown"#endifreturn (*env)->NewStringUTF(env, "Hello from JNI ! Compiled with ABI " ABI ".");}
ndk.dir=/home/zero/android_zip/android-ndk-r10e
mJNITv = (TextView) findViewById(R.id.ndk_tv);HelloClass jniFunc = new HelloClass();mJNITv.setText(jniFunc.stringFromJNI());
defaultConfig {applicationId "com.zero.ndk"minSdkVersion 14targetSdkVersion 22versionCode 1versionName "1.0"ndk { // 注意添加这个配置,不然方法会显示红色,但运行不会报错}}
为了使用JNI,专门定义了一套接口例如jstring替代String
