android NDK——搭建Android Studio的NDK环境

我接触jni的时候正在用android studio,所以我记录一下在as上部署ndk环境的步骤。

首先先看一下大概步骤: 
1,下载ndk 
2,配置环境变量 
3,配置as属性 
4,java测试代码 
5,创建.h的头文件 
6,创建.c的测试c代码 
7,生成so文件 
8,测试ndk环境

ok。接下来我们就来一步一步的实现。 
1,下载ndk。这里推荐使用as内部下载,google在中国也部署了服务器,所以不用翻墙也可以下载。 
这里写图片描述

2,配置as中ndk路径。如果ndk路径没有自动添加,则点击select即可。并在local.properties配置文件中检查是否正确配置路径。 
这里写图片描述 
配置文件里是你所下载ndk的路径,我这里是E:\sdk\ndk-bundle 
这里写图片描述

3,配置ndk系统环境变量,并检测 
这里写图片描述 
这里写图片描述 
dos下命令:ndk-build;出现以下信息说明配置成功 
这里写图片描述 
4,设置as。将ndk版本差异检测过滤掉,要不然项目无法编译。添加:android.useDeprecatedNdk=true 
这里写图片描述 
5,编写调用c的java代码。注意:这里如果方法名报错,不用管他。

public class JniKit {

    /**如果你的native方法报错,没关系,配置完成自然会编译通过
     * @param num
     * @return
     */
    public static native int calculate(int num);

    static {
        System.loadLibrary("JniDemo");
    }

}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

6,生成调用本地方法的.h头文件。用as自带的Terminal工具来生成。 
命令: 
进入你项目的java文件夹下 
cd app/src/main/java 
com.lh.jni是你的完整包名,后面跟具体写有调用c代码的java类 
javah -jni com.lh.jni.JniKit 
这里写图片描述

7,生成jni文件夹。用于存放.h和.c文件 
这里写图片描述

8,将步骤6中生成的.h文件移动到jni文件夹下,并创建一个.c文件来写c代码

这里写图片描述

这里写图片描述

这里写图片描述

9,写c的测试代码。 
include中指向你创建的.h头文件 
Java_com_lh_jni_JniKit_calculate;Java_包名类名方法名(参数)

#include <com_lh_jni_JniKit.h>

JNIEXPORT jint JNICALL Java_com_lh_jni_JniKit_calculate(JNIEnv *env, jclass cls, jint num) {
    return num * num;
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5

10,在as中配置生成so文件的信息。 
这里写图片描述

11,用Make Project 生成so文件,然后运行项目。 
这里写图片描述

到这里我们就可以调用本地的c/c++代码了。

12,拿出项目so文件,供其它项目使用。 
这里写图片描述

这里写图片描述

13,activity,测试本地c代码的调用(这里要注意的是,移到其他项目使用,必须把含有native方法的java文件放在与生成so文件的同包名下)

public class MainActivity extends AppCompatActivity {

    private TextView test_jni_text;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        test_jni_text= (TextView) findViewById(R.id.test_jni_text);
        test_jni_text.setText("4*4="+JniKit.calculate(4));
    }

}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

到这里,整个ndk环境的搭建、测试已经全部完成了。只有搭建好了jni环境,才能去编写c/c++。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序邦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值