Android Studio中JNI NDK开发(一)

NDK,JNI第一种方式


建议安装LLDB,2.2之后可安装CMake。


ndk也可以在此安装

1.cd 进入classes文件路径
cd E:\MyWorkSpace\NDKDemo\app\build\intermediates\classes\debug


2.生成.h文件
javah -jni  com.cjf.ndkdemo.NdkJniUtils
如果上个命名不行,不妨用以下命令试试,记得是包全名。
javah -classpath . -jni  com.cjf.ndkdemo.NdkJniUtils


.h文件类似
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_cjf_ndkdemo_JniUtils */


#ifndef _Included_com_cjf_ndkdemo_JniUtils
#define _Included_com_cjf_ndkdemo_JniUtils
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     com_cjf_ndkdemo_JniUtils
 * Method:    getStringFormC
 * Signature: ()Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_com_cjf_ndkdemo_JniUtils_getStringFormC
  (JNIEnv *, jclass);


#ifdef __cplusplus
}
#endif
#endif


3.在main目录下建立jni目录。
将第2步骤中生成的文件剪切至该目录。


4.建立任意名的.c文件,
#include "com_cjf_ndkdemo_JniUtils.h"
/* * Class: io_github_yanbober_ndkapplication_NdkJniUtils * Method: getCLanguageString * Signature: ()Ljava/lang/String; */
JNIEXPORT jstring JNICALL Java_com_cjf_ndkdemo_JniUtils_getStringFormC
  (JNIEnv *env, jobject obj){
     return (*env)->NewStringUTF(env,"This just a test for Android Studio NDK JNI developer!");
  }


在app下的build.gradle
android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.cjf.ndkdemo"
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"




        ndk {
            moduleName "NdkJniDemo"   //生成的so名字
            ldLibs "log", "z", "m"    //添加依赖库文件,因为有log打印等//非必填加项
            abiFilters "armeabi", "armeabi-v7a", "x86" //输出指定三种abi体系结构下的so库,目前可有可无。//不填写则生成所有
        }
    }


    sourceSets { main { jni.srcDirs = ['src/main/jni'] } }


    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}


gradle.properties
加上
android.useDeprecatedNdk=true


jni文件下建立.c和.h的文件


目录结构



Demo下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值