一篇博客带你熟悉Eclipse、AndroidStudio下搭建NDK环境(内有Demo)

本文详细介绍了Android NDK的用途,包括如何在Eclipse和Android Studio中搭建NDK开发环境,以及使用ndk-build和CMake工具的具体步骤。并通过一个简单的文件加解密案例,演示了如何在Android应用中集成C/C++代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.NDK可以干什么

NDK:(Native Development Kit),原生开发工具包是一组可以让您在Android应用中利用C和c++代码的工具,可用以从您自己的源代码构建,或者利用现有的预构建库.

二.NDK开发环境搭建

.在Eclipse下搭建NDK环境 (Eclipse下只说步骤不贴图了)
1.编写java的native方法
2.javah生成头文件
3.在项目根目录下新建一个jni文件,将头文件烤进去
4.android tools ->add native support前提是配置过ndk(下载ndk配置NDKlocation就可以了)
5.在C++General path and sympols中添加一些路径,这样写C/C++代码就会有提示
6.实现头文件定义的函数
7.编译生成动态库
8.加载动态库

在AndroidStudio中搭建NDK环境
在AndroidStudio中开发NDK有两种方式,一是通过ndk-build,二则是通过cmake工具
先来说说ndk-build方式
1.编写java的native方法
>
2.新建一个jniFolder
3.javah生成头文件,可配置快捷命令,配置方法File>Settings>Tools>External Tools>添加一个,如下图
在这里插入图片描述
Name随便取,Program里面填$JDKPath$/bin/javah
Arguments填-classpath . -jni -d $ModuleFileDir$\src\main\jni $FileClass$
Working directory里面填 $ModuleFileDir$\src\main\java
就可以了,然后我们在右击需要生成头文件的类选择External Tools,选中刚刚添加的工具就可以了。
在这里插入图片描述
4.下载NDK,SDKManager>SDK Tools>NDK选中下载
在这里插入图片描述
5.新建一个Android.mk文件到jni目录,可参考官方文档 https://developer.android.google.cn/ndk/guides/android_mk。我这里写的是:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := NdkFileEcypt
LOCAL_SRC_FILES := NdkFileEcypt.c

include $(BUILD_SHARED_LIBRARY)

6.添加C/C++引用到Gradle配置中
切换到Anroid视图下,项目名右键 ->Link C++ Project with Gradle ->选择ndk-build,然后选择Android.mk的路径

7.新建C/C++源文件,开始撸代码
在这里插入图片描述

再来说说CMAKE
CMake是一个跨平台的编译(Build)工具,旨在构建,测试和打包软件。它不会直接编译出对象,而是根据自定义的语言规则(CMakeList.txt)生成对应的makefile(Unix平台)或project(Windows平台),然后根据系统底层进行编译;CMake不仅可以跨平台编译、生成安装包、还可以输出标准的构建文档;
步骤基本上和上面的差不多,不过需要注意的是,要下载的不仅仅是NDK,还得下载LLDB和CMake
在这里插入图片描述
还是来说说步骤吧
1.编写java的native方法
2.新建jniFolder
3.生成头文件
4.下载LLDB和CMakehttps://developer.android.google.cn/ndk/guides/cmake
5.在Module根目录下新建一个CMakeLists.txt文件
在这里插入图片描述
具体的CMake配置可参看官网 https://developer.android.google.cn/ndk/guides/cmake
6.添加C/C++引用到Gradle配置中
切换到Anroid视图下,项目名右键 ->Link C++ Project with Gradle ->选择CMake,然后选择CMakeLists.txt的路径
7.撸C代码,编译运行,完整收工。

三.一个简单的NDK小案例的编写

这里准备一个简单的文件加解密小案列,这里我们用Cmake方式
第一步,我们新建一个项目NdkSample,还记得我们上面的步骤吗?
第二步,我们新建一个文件加解密的java类,并写上native方法
在这里插入图片描述
第三步,我们新建一个jniFolder
在这里插入图片描述
第四步,我们先切换到project这个目录下,然后选中第二步写的类,然后用我们上面添加过的命令,生成头文件到jniFolder下
在这里插入图片描述
然后我们在App目录下新建一个CMakeLists.txt,
在这里插入图片描述
我们在JniFolder中新建这个C代码,并完成编写。
在这里插入图片描述
第五步,.添加C/C++引用到Gradle配置中
切换到Anroid视图下,项目名右键 ->Link C++ Project with Gradle ->选择CMake,然后选择CMakeLists.txt的路径
第六步,如果配置都是正确的,我们Make一下Project,不报错的话,会生成so,生成路径会在这个路径下
在这里插入图片描述
接下来,我们来写主界面调用的代码
在这里插入图片描述
跑一下就可以了。注意事项,我们用androidStudio自带的模拟器的时候,发现带GooglePlay的模拟器无法root,也就无法拷贝原始文件了。解决办法就是重新创建一个不带这的模拟器。

文章最后,送上项目的demo的地址NdkSample,希望这个能对你有用,本文如有不正之处,烦请之处,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值