一、在新建项目中选择Native C++,然后下一步

二、名字跟保存位置自定义,语言选择Java,SDK根据app安装的平台选择对应的版本,选好后下一步

 三、C++ Standard默认选择就可以,点击完成

 四、加载完成后,把项目标题Android换成项目

 换完后的列表

 

 C/C++的代码在cpp文件夹中,在MainActivity.java文件中有一些使用示例。

 五、点击运行,查看运行效果

 代码使用的简单说明:

Android studio 使用C/C++代码开发app是把C/C++的代码当成库使用,在MainActivity.java文件中必须要加载C/C++代码库

// Used to load the 'myapplication' library on application startup.
static {
    System.loadLibrary("myapplication");
}

使用库的方法:

1.C/C++代码要用规定格式的函数(若是C文件就去掉extern "C" )

#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());
}

2.在CMakeLists.txt文件中添加C/C++文件

add_library( # Sets the name of the library.
             myapplication

             # Sets the library as a shared library.
             SHARED

             # Provides a relative path to your source file(s).
             native-lib.cpp )

3.在MainActivity.java文件中先定义用法:

public native String stringFromJNI();

4.在onCreate函数里面调用C/C++中的代码

// Example of a call to a native method
TextView tv = binding.sampleText;
tv.setText(stringFromJNI());

如果有自己新增的C/C++文件和.h头文件,需要在CMakeLists.txt文件中添加

# 头文件位置
include_directories(src/main/cpp/)

C/C++文件调用Java

#include <jni.h>

JNIEnv* env=NULL;
jobject obj = NULL;
Java_com_example_myapplication_MainActivity_stringFromJNI(env,obj);

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐