Android Studio jni开发

1、创建一个android工程

2、配置Anroid Studio
打开File ->Settings -> Tools -> External Tools
找到 external tools 然后点击右边方框的“+”。
填写相应的内容

//添加javah 命令
Name:javah
Description:javah

Program:$JDKPath$\bin\javah.exe
Parameters:-classpath . -jni -d $ModuleFileDir$/src/main/jni $FileClass$
Working directory:$ModuleFileDir$\src\main\java
//添加ndk-build 命令
Name:ndk-build
Description:ndk-build

Program:D:\androidSDK_NDK\android-sdk\ndk-bundle\ndk-build.cmd
Parameters:
Working directory:$ProjectFileDir$\app\src\main

//添加ndk-build clean 命令
Name:ndk-build clean
Description:ndk-build clean

Program:D:\androidSDK_NDK\android-sdk\ndk-bundle\ndk-build.cmd
Parameters:clean
Working directory:$ProjectFileDir$\app\src\main

3.新建jni目录
单击app右键 ->New ->Folder ->JNI Folder ->Finish

4.修改app下的build.gradle文件

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.0"
    defaultConfig {
        applicationId "com.example.ndktest"
        minSdkVersion 17
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"

        ndk{
            moduleName "jniTest"
            abiFilters "armeabi", "armeabi-v7a", "x86"
        }
        sourceSets.main{
            jni.srcDirs = []
            jniLibs.srcDir "src/main/libs"
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

5.修改gradle.properties文件

//添加
android.useDeprecatedNdk=true

6.新建
JniTest.java

public class JniTest
{
    static
    {
        System.loadLibrary("jniTest");
    }

    public native String getString();
}

7.选中JniTest类 右键 External Tools ->javah 生成头文件

8.在jni目录下新建 testjni.cpp文件 写入内容

#include "com_example_ndktest_JniTest.h"

JNIEXPORT jstring JNICALL Java_com_example_ndktest_JniTest_getString(JNIEnv * env, jobject obj)
{
    return (*env).NewStringUTF("hello from jni!");
}

9.在jni目录下新建 Android.mk 文件

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := testJni
LOCAL_SRC_FILES =: testJni.cpp
include $(BUILD_SHARED_LIBRARY)

10.选中jni目录 右键 External Tools ->ndk-build 生成so文件

11.在MainActivity 中调用 运行

public class MainActivity extends AppCompatActivity
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView tv = (TextView)findViewById(R.id.testJni);
        tv.setText(new JniTest().getString());
    }
}

这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值