Android Studio NDK开发浅谈
2015-04-16 19:01
239 查看
环境:
Android Studio 1.1.0
NDK-r10d
1、新建项目---》包名:com.mxl.az.ndk
新建包含native方法的类:JniOperation.class
2、然后使用javah命令生成.h文件
打开“小黑框”,进入项目目录的.../app/build/intermediates/classes/debug/中
执行命令后,会在debug目录下生成.h文件
3、在src/main目录下新建jni文件夹
把.h文件copy到jni文件夹中
4、新建main.c,include-->.h文件,并实现其中的俩个方法
5、在local.properties中配置ndk路径
6、配置一下build.gradle文件中的ndk
7、在Activity中加载库,运行
Android Studio 1.1.0
NDK-r10d
1、新建项目---》包名:com.mxl.az.ndk
新建包含native方法的类:JniOperation.class
public class JniOperation { public static native String getString(); public native int add(int a, int b); }
2、然后使用javah命令生成.h文件
打开“小黑框”,进入项目目录的.../app/build/intermediates/classes/debug/中
javah -jni com.mxl.az.ndk.JniOperation
执行命令后,会在debug目录下生成.h文件
3、在src/main目录下新建jni文件夹
把.h文件copy到jni文件夹中
4、新建main.c,include-->.h文件,并实现其中的俩个方法
#include "com_mxl_az_ndk_JniOperation.h" #include <android/log.h> #define LOG_TAG "HelloJni" #define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__) #define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__) JNIEXPORT jstring JNICALL Java_com_mxl_az_ndk_JniOperation_getString (JNIEnv * env, jclass cla) { int i; int size = 4; for(i=0; i<size; i++){ LOGI("MXL"); } return (*env)->NewStringUTF(env, "JNI 运算结果:"); } JNIEXPORT jint JNICALL Java_com_mxl_az_ndk_JniOperation_add (JNIEnv * env, jobject obj, jint a, jint b) { return a + b; }
5、在local.properties中配置ndk路径
ndk.dir=/Users/mxl/Android/android-ndk-r10d
6、配置一下build.gradle文件中的ndk
defaultConfig { minSdkVersion 8 targetSdkVersion 22 versionCode 1 versionName "1.0" ndk { abiFilter "armeabi" moduleName "hellojni" ldLibs "log", "z", "m", "jnigraphics", "android" } }
7、在Activity中加载库,运行
public class MainActivity extends ActionBarActivity { static { System.loadLibrary("hellojni"); } private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv = (TextView) findViewById(R.id.tv); JniOperation jniOperation = new JniOperation(); tv.setText(JniOperation.getString() + jniOperation.add(2,8)); } }
相关文章推荐
- 基于NDK开发完JNI代码后,Android studio中引入对应的so文件的方法
- android studio 中的NDK开发(1)
- 环境配置之Android Studio开发NDK
- [Android]Android Studio上的NDK开发
- Android Studio上面使用Ndk JNI 开发工程
- JNI和NKD入门系列二,mac环境下配置NDk,并在android studio上进行JNI开发
- android studio下的NDK开发详解(一)
- 使用Android Studio 进行NDK开发和调试
- Android Studio中的NDK开发
- 用Android Studio进行NDK开发(简化流程)
- Android Studio 2.2.3 NDK开发基础教程
- 【android 开 发 】 - Android studio 下 NDK Jni 开发 简单例子
- Android Studio下NDK开发流程
- [Android] 环境配置之Android Studio开发NDK
- android studio下ndk开发
- NDK开发 从入门到放弃(七:Android Studio 2.2 CMAKE 高效NDK开发)
- Android studio下增量升级功能的NDK开发
- 使用Android Studio与Eclipse开发NDK的对比
- Android实战技巧之二十三:Android Studio的NDK开发
- Android studio的NDK开发基础