安卓开发(二):Native C++

com.example.myapplication.MainActivity.java

/**
 * A native method that is implemented by the 'myapplication' native library,
 * which is packaged with this application.
 */
public native String stringFromJNI();
#include <jni.h>
#include <string>

extern "C" JNIEXPORT jstring JNICALL
Java_com_example_myapplication_MainActivity_stringFromJNI(
        JNIEnv* env,
        jobject /* this */) {
    std::string hello = "Hello from C++";
    return env->NewStringUTF(hello.c_str());
}

Android基于NDK将C/C++代码编译生成库,供上层的Java/Cotlin应用调用
官方文档:https://developer.android.com/ndk?hl=zh-cn

注意CMake编译时的各种参数

何为交叉编译 (cross compile)
https://www.jianshu.com/p/bebab7c12991#1678095848039

CMake编译时需要指定NDK路径,指定工具链
build_for_android.sh脚本文件

Todo: JNI (Jave Native Interface)
cpp <---> jni <---> java

posted @   达可奈特  阅读(147)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示