android studio 3.2 使用cmake在jni生成及使用C/C++静态库

本文介绍了如何在Android Studio 3.2中利用CMake生成C/C++静态库.a,并将其链接到native-lib.so。首先,创建基本的JNI框架,编写C++源文件,配置CMakeLists.txt和build.gradle。然后,编译生成静态库,并修改CMakeLists.txt和源代码以使用静态库。最后,成功运行应用,验证静态库函数调用正常。
摘要由CSDN通过智能技术生成

关于cmake jni的基本教程可以看我另外一篇博客

https://blog.csdn.net/qq_34759481/article/details/83825826

关于使用动态库可以看我的另外一篇博客。

在看本篇之前,最好先看这篇动态库的,一些比较基本的操作,都在这里面。本篇不会讲的很细。

https://blog.csdn.net/qq_34759481/article/details/83898710

总体思路

1.本教程是在Android studio中利用cmake来生成静态库.a

2.将该静态库连接到自动生成的native-lib.so

3.调用静态库的函数


1.利用cmake生成静态库.a

1.在android studio中创建好最基本的可以调用jni的框架,运行app,正常运行后进行下一步

 

2.创建动态库要用到的源文件static.cpp和static.h

 

3.在源文件中添加一些函数

static.h

#ifndef JNI_STATIC_STATIC_H
#define JNI_STATIC_STATIC_H

#include <
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要在Android Studio中编写C/C++代码,你需要进行以下步骤: 1. 创建一个新的Android Studio项目。 2. 在你的项目中创建一个新的C/C++源文件。你可以使用菜单File->New->C/C++ Source File来创建源文件。 3. 在你的源文件中编写C/C++代码。 4. 在你的项目中创建一个新的JNI头文件。你可以使用菜单File->New->JNI/C++ Header File来创建头文件。 5. 在你的JNI头文件中声明你的C/C++函数和变量。例如,如果你的C/C++源文件中有一个函数叫做myFunction,你可以在你的JNI头文件中这样声明它: ```c++ JNIEXPORT void JNICALL Java_com_example_myapp_MyClass_myFunction(JNIEnv *env, jobject obj); ``` 请注意,这里的Java_com_example_myapp_MyClass_myFunction是根据你的Java类和函数名称来自动生成的。你需要根据你的实际项目进行修改。 6. 在你的Java代码中,使用JNI接口调用你的C/C++函数。例如,如果你的Java类是MyClass,你可以在它的某个方法中这样调用你的C/C++函数: ```java public void myMethod() { myFunction(); } ``` 7. 在你的项目中配置NDK环境。你需要下载NDK并在你的项目中配置NDK路径。你可以使用菜单File->Project Structure->SDK Location来配置NDK路径。 8. 在你的项目中配置CMake。你需要创建一个CMakeLists.txt文件来告诉Android Studio如何编译你的C/C++代码。你可以使用以下模板来创建CMakeLists.txt文件: ``` cmake_minimum_required(VERSION 3.10.2) project(myproject C CXX) add_library(mylib SHARED mysource.cpp) target_link_libraries(mylib log) ``` 请注意,这里的mysource.cpp和mylib是根据你的实际项目进行修改。 9. 运行你的项目并测试你的C/C++代码。 请注意,以上步骤只是一个基本的示例,你需要根据你的实际项目需求进行修改。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值