Android Studio用cmake开发C++代码

  1. Android Studio 工程的 Project 预览方式设置为 Project,好总览工程的目录结构。
  2. 在工程里的app/src目录下添加cpp目录。
  3. cpp目录里添加实现jni桥接函数的文件 main.cpp 。 (cpp文件名可自定)
  4. 在app目录下添加 CMakeLists.txt 文件。
  5. CMakeLists.txt 文件写入内容模板如下:
cmake_minimum_required(VERSION 3.18.1)
project(AndroidCMakeExample) # AndroidCMakeExample 为安卓工程名,可自定义

set(CMAKE_CXX_STANDARD 20)

add_library(
        native-lib # native-lib 为库名,可自定义
        SHARED
        src/cpp/main.cpp
)

target_link_libraries(native-lib)  # native-lib 为库名,可自定义
  1. 在 app 目录下的 build.gradle 添加如下内容
android {
    externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
        }
    }
    # 此处是原来的内容
}
  1. 编写用于JNI桥接的类 JniNative (可自定义名字),填写内容如下
package com.example.androidcmakeexample; // 包名,写你自己的

public class JniNative {
    static {
        System.loadLibrary("native-lib"); // native-lib 为库名,由 CMakeLists.txt 定义
    }
    public static native String JNIString();
}
  1. 在 main.cpp 里添加实现如下,桥接函数名可以通过渐入关键字自动补齐,比如键入JniNative
#include <jni.h>

extern "C" {
    JNIEXPORT jstring
    Java_com_example_androidcmakeexample_JniNative_JNIString(JNIEnv *env, jclass clazz) {
        return env->NewStringUTF("String from JNI.");
    }
} // extern "C"

  1. 在MainActivity 的 OnCreate 键入测试语句:
android.util.Log.v("jni-test", JniNative.JNIString());
  1. 编译运行即可。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值