Android Studio 2.0+ CMake进行JNI开发

(一)新建JNI工程

第一步: 在AS中下载cmake等工具
tools->android->sdkManager里面勾选CMake、LLDB、NDK这三项,在安装完成之后AS会自动的配好NDK的路径;然后检查File->Project Structrue检查NDK路径配置是否正确,也可手动设定或者更改。
第二步: 配置NDK环境变量
环境变量,“path”变量值后加入NDK的安装路径,一般NDK自动安装后在SDK目录下,如路径:“D:\Android\sdk\ndk-bundle”。

第三步: 新建工程,并勾选对C++的支持选项
勾选后,一路next,最后可以选择C++规范,选择默认不变即可。

第四步: 新建工程视图
比正常工程多出两个文件夹,主要是两个文件:cpp文件夹,要写的c代码文件;cmakeList.txt文件,配置库名以及包名等。

第五步: 文件配置
1、cmakeList.txt文件内容

2、build.gradle(Module:app)
内容多了部分,需要注意。



第六步: 本地代码调用示例
1、程序代码内容

2、C程序内容

(二)新建工程后自己添加代码方法文件

第一步: 新建cpp文件
最好在Project Files视图进行。右击新建即可。

然后要在cmakeList.txt文件中添加路径,添加后文件才会显示,才会生效。

第二步: 定义本地方法
先导入库,库名要和定义的库名一样。

定义本地方法。

定义的方法开始显示红色,且需要自己写cpp文件的文件头,使用“Alt+ Enter”键让android studio自动生成文件头。

android studio会将方法打包近之前的库里,要想新建一个库,还需要在CMakelists.txt文件中声明。

第三步: 寻找so文件
在project视图中,如图所示路径下,可找到编译完成的.so文件。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Studio进行JNI(Java Native Interface)开发,可以让我在Java代码中调用C/C++代码,实现跨语言的功能。下面是在Android Studio进行JNI开发的一般步骤: 1. 创建一个新的Android项目或打开一个已有的项目。 2. 在项目的`app`模块下,创建一个名为`jni`的文件夹(如果没有的话)。 3. 在`jni`文件夹下,创建一个名为`native-lib.cpp`(或其他任意名称)的C/C++源文件,用于编写JNI代码。 4. 在`native-lib.cpp`文件中,编写你需要的C/C++代码。这些代码将会被Java代码调用。 5. 在`app`模块的`build.gradle`文件中,添加以下配置: ``` android { ... defaultConfig { ... externalNativeBuild { cmake { cppFlags "" } } } ... externalNativeBuild { cmake { path "CMakeLists.txt" } } } ``` 6. 在`app`模块下,创建一个名为`CMakeLists.txt`的文件,并添加以下内容: ``` cmake_minimum_required(VERSION 3.10.2) project("YourProjectName") add_library( native-lib SHARED native-lib.cpp ) find_library( log-lib log ) target_link_libraries( native-lib ${log-lib} ) ``` 7. 在Android Studio的底部工具栏中,点击"Build Variants"按钮,将"Active Build Variant"设置为`native-lib`。 8. 在Android Studio的顶部菜单中,点击"Build" -> "Make Project",编译项目。 9. 在Java代码中,通过`System.loadLibrary("native-lib")`加载C/C++库,并调用其中的函数。 这样,你就可以在Android Studio进行JNI开发了。记得在编写JNI代码时,遵循JNI的规范和语法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值