android studio NDK 开发初探

  1. 环境配置
    1)下载ndk
    2)在android studio中配置ndk 路径
    android studio NDK 开发初探_第1张图片
    3)配置gradle
    在gradle.properties中加入 android.useDeprecatedNdk=true配置 开启ndk
    在开发过程中我们有时还会用到c++中到stl库这时我们就需要在build.gradle 中加入
    defaultConfig {
    ndk {
    moduleName “jnitest”
    stl “stlport_static”
    abiFilters “armeabi”, “armeabi-v7a”, “x86”
    }
    }
    因为android studio 中Android.mk文件不可配置。而是根据gradle中的配置自动生成的Android.mk文件
  2. 新建工程
    在工程目录main下单击鼠标右键新建一个jni folder ,之后使用到c/c++程序代码都放在这个文件夹中
    在main文件夹下的 java文件夹下新建一个类例如:JniUtils
    并加入代码 public static native String getStringFromJNI();
    然后make module一下,目的就是编译成对应的class文件。然后根据生成的class文件,利用javah生成对应的 .h头文件。
    点开android studio 的Terminal标签页,默认进入到该项目的app文件夹下。如果在该目录下输入cd src/main 切换到main目录下。
    javah -d jni com.vvgool.jni.JniUtils(-d即使没有手动生成jni目录到情况下使用-d也会生成jni目录并在目录中生成)
/* DO NOT EDIT THIS FILE - it is machine generated */#include <jni.h>/* Header for class com_vvgool_jnitest_JniUtils */#ifndef _Included_com_vvgool_jnitest_JniUtils#define _Included_com_vvgool_jnitest_JniUtils#ifdef __cplusplusextern "C" {#endif/* * Class: com_vvgool_jnitest_JniUtils * Method: getStringFromJni * Signature: ()Ljava/lang/String; */JNIEXPORT jstring JNICALL Java_com_vvgool_jnitest_JniUtils_getStringFromJni  (JNIEnv *, jclass);#ifdef __cplusplus}#endif#endif

然后我们就可以在jni文件中新建.cpp文件或者.c文件我这里是新建到test.cpp文件

最后在JniUtils中加入
static{
System.loadLIbrary(“jnitest”);
}在Activity中调用JniUtils.getStringFromJni()方法获取字符串就可以了。

更多相关文章

  1. Android LayoutInflater加载.xml文件原理分析
  2. 利用Android源码工具链直接编译c文件
  3. ffmpeg入门教程之Android使用FFmpeg so(API文件格式转换)
  4. ANDROID对文件的操作
  5. android 签名文件获取 MD5、SHA1
  6. Android studio怎么创建一个Java类文件
  7. Android分别使用HTTP协议和TCP协议实现上传文件
  8. android添加文件打开方式以及参数传递

随机推荐

  1. Android界面编程——Android基本控件
  2. 使用android SDk帮助文档(英文) 下载中文
  3. 2014非常好用的开源Android测试工具
  4. Android Studio下的目录结构
  5. Android(安卓)IT资讯网络阅读器应用源码
  6. android ImageButton示例
  7. android(NDK+JNI)---Android使用JNI实现J
  8. Android属性动画使用浅析
  9. Android开发学习之基本控件概览
  10. Android Studio 第六十四期 - Android业