android studio3 ndk 开发例子

1 android studio建立普通项目。

2. 新建类 

NdkJniUtils.java

package com.study.bluesky.helloworld;

/**
 * Created by Administrator on 2017/11/28 0028.
 */

public class NdkJniUtils {
    public native String getCLanguageString();

}

切换到 project模式在 app ,src ,main 文件下新建 jni文件夹 

之后打开 

NdkJniUtils.java文件 
选中 
getCLanguageString 按键盘alt+回车 弹出菜单中选择建立头文件
之后在 jni文件中建立
JniLibNdkJniUtils.c完成函数体。
#include <jni.h>
#include "com_study_bluesky_helloworld_NdkJniUtils.h"
/*
 * Class:     com_study_bluesky_helloworld_NdkJniUtils
 * Method:    getCLanguageString
 * Signature: ()Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_com_study_bluesky_helloworld_NdkJniUtils_getCLanguageString
  (JNIEnv *env, jobject ojb)
  {
        return (*env)->NewStringUTF(env,"This just a test for Android Studio NDK JNI developer!");
  }
3.切换到Anroid模式下
build.gradle 下的modules:app下 文件 
添加 
android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.study.bluesky.helloworld"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        ndk {
            moduleName "JniLibNdkJniUtils"         //生成的so名字
            abiFilters  "armeabi-v7a", "x86"  //输出指定三种abi体系结构下的so库。目前可有可无。
        }

    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}

红色部分为添加部分
gradle.properties文件中添加 
android.deprecatedNdkCompileLease=1511873778596

4.build make projects
查看 gradle console 编译完成
切换到工程模式,
app/build/intermediates/ndk/debug/lib/areabi-v7a/libJniLibNdkJniUtils.so  
app/build/intermediates/ndk/debug/lib/x86/libJniLibNdkJniUtils.so
动态库成了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值