Android NDK Android Studio NDK初入门

4 篇文章 0 订阅

先上一张NDK学习的视频截图,对NDK有个简单了解
在这里插入图片描述

  1. NDK目录配置

我们打开Android Studio Project Structure ,配置好已下载好的NDK包
在这里插入图片描述

  1. 配置NDK环境后,来实现一个简单helloJni功能。我们首先创建一个Hello.java
package cn.cutcopy.jni;

public class Hello {
	// 就一个native方法
    public static native String sayHello();
}

如下图所示,cd 到 src/main/java目录下,直接执行javah命令
在这里插入图片描述

  1. 第二步执行完毕后,我们会生成一个jni目录
    在这里插入图片描述

  2. 接下来创建一个简单的Hello.cpp文件

//
// Created by Aaron on 2019/5/6.
// 导入第三步的.h文件
#include "cn_cutcopy_jni_Hello.h"
// 实现最简单返回一个字符串的方法
JNIEXPORT jstring JNICALL Java_cn_cutcopy_jni_Hello_sayHello(JNIEnv * env, jclass jclass1){
    return env->NewStringUTF("from c");
}
  1. 然后我们还需要创建一个Android.mk文件
# 定义模块当前路径
LOCAL_PATH := $(call my-dir)

# 清空当前环境变量
include $(CLEAR_VARS)

# 编译该模块所需的源码
LOCAL_SRC_FILES := \
	Hello.cpp \

LOCAL_LDLIBS := -ldl -llog

# 编译生成的文件名
LOCAL_MODULE := Hello

# 告诉Ndk编译成动态库
include $(BUILD_SHARED_LIBRARY)

在这里插入图片描述

  1. 此时需要在app的module下做一下配置
android {
	......
    externalNativeBuild {
        ndkBuild {
            path 'src/main/jni/Android.mk'
        }
    }
}
  1. 此时将第二步的Hello.java稍微做下修改
public class Hello {

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

    public static native String sayHello();
}

  1. 如果上面7步没报错的话,可以在Java中调用测试一下
@ContentView(R.layout.jni_act)
public class JniAct extends BaseActivity {

    TextView text;

    @Override
    protected void onCreate( Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        text = findViewById(R.id.text);

        findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                text.setText(Hello.sayHello());
            }
        });
    }
}

此时最简单的Hello jni应该算是完成了

  1. 那么我们生成的.so文件了?
    在这里插入图片描述
    项目build目录下即可看到,当然我们也可以通过abiFilters配置生成指定架构的.so

文章最开始图中,应该有涉及到:
NDK环境配置jni头文件编写native方法Android.mk

6. 参考

  1. Android Studio NDK 入门教程
  2. Android Studio 开发JNI笔记
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

初心一点

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

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

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

打赏作者

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

抵扣说明:

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

余额充值