Mac 下android studio 中ndk 环境配置

本文详细介绍如何使用Android NDK进行开发,包括配置环境、创建JNI接口并生成对应的C/C++文件,最后编译成so库供应用调用。通过实际案例演示整个流程,并提供动态注册JNI方法的参考资料。

1.下载NDK
这里写图片描述
gradle.properties 中配置 android.useDeprecatedNdk=true
build.gradle 中

defaultConfig {
applicationId “com.enjni.myndkproject”
minSdkVersion 19
targetSdkVersion 26
versionCode 1
versionName “1.0”
testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner”
ndk{
moduleName “helloJni”//*生成的so文件名,必填
abiFilters “armeabi”, “armeabi-v7a”, “x86” //输出abi体系结构下的so库
}
}

主activity 中写入

static {
System.loadLibrary(“helloJni”);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
                    setContentView(R.layout.activity_my_ndk_main);
    TextView textView = (TextView)findViewById(R.id.text_show);
    textView.setText(helloJni());

public native String helloJni();

helloJni是native方法,点击option+enter,会自动生成cpp文件夹的.c文件,在这个.c 文件下可以传入值

2.运行程序看到界面

这里写图片描述

以下博主写的文章更加直观的解释了 jni 文件 .c 和 .h 生成的原理,请参考

http://blog.csdn.net/eastmoon502136/article/details/50759209

主要步骤
cd app/build/intermediates/classes/debug
javah -jni com.jared.emjnistudy.NdkJniUtils
在当前目录下生成
com_jared_emjnistudy_NdkJniUtils.h
接着在main目录下新建jni目录,然后把这个头文件拷贝到jni目录下,然后新建一个c文件,命名为jnitest.c

编代码会生成 .so 文件。

这里写图片描述

以上是静态实现jni注册的方法,由于弊端很多,最好采用动态注册jni的方法

参考地址:

http://blog.csdn.net/xsf50717/article/details/54693802

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值