android studio创建C/C++工程编译产生so文件并完成jni接口封装

一、工程创建

1.首先打开Android studio,选择[FIle] - > [New] -> [New Project]。

2.选择对应的工程模板, 这里选择 [C++],然后点击 [Next]。

3. 对工程名、包名、路径等进行配置。按照需求改工程名为My Application, 包名为com.example.maapplication,工程存储路径和编译配置语言, 然后点击[Next]

4. 继续点击[Finish], 将完成工程的创建,进入工程界面

5. 创建完成的工程目录结构如下,其中java和c/c++语言的开发文件在app目录下

二、编译产生so文件

1、首先验证创建的工程编译是否通过,点击[Build] - > [Make Project],, 编译成功后可以在下方的🔨build框框内看到[finished]。从这可以确定工程编译没有问题。

2. 设置app/src/mian/cpp/CMakeList.txt, 使编译产生动态库so文件。在CMakeList.txt文件下面这句话即可。添加完后重新编译即可在app/src/mian/cpp/jniLibs路下看到各个平台的.so文件

set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/jniLibs/${ANDROID_ABI})

三、jni接口封装

1、在java\com\xxx\xxx\路径下新建一个JNIWrapper.java文件

2、在JNIWrapper.java中写好需要进行java调用c++的java接口,以下写了一个名为jni_interface_demo的接口,写好之后进行java编译

3. java编译进入到目录下, 打开cmd, 然后再命令行中输入javac -h ./ JNIWrapper.java进行编译,编译成功后可以看到JNIWrapper.class 和一个.h头文件

4. jni 接口封装, 将.h文件copy至app/src/mian/cpp/下, 可以更改.h文件的文件名, 比如修改为jni_demo.h, 名字可以随便命名。并在这个目录下新建一个同名的cpp文件, 例如jni_dmeo.cpp。在jni_dmeo.cpp中把jni_demo.h包含进来, 并创建jni_demo.h中的函数, 在函数中即可完成jni封装, 调用其他的c/c++函数。

5. 编译, 在CMakeList.txt文件中将ni_dmeo.cpp和ni_dmeo.h加入到工程中,然后再编译,so文件中将会有自己添加进去的jni接口, 可以再JNIWarpper.java中进行调用。可通过打断点调试的方式确认是否进入了jni 接口中。

  • 27
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在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++代码。 请注意,以上步骤只是一个基本的示例,你需要根据你的实际项目需求进行修改。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值