极速入门NDK开发

当工程需要C/C++介入时,Android项目就用到了NDK(Native Development Kit)开发

分两种情况
1.创建新工程
2.现有项目新添加NDK开发

创建新工程

使用Android studio创建项目时,可以选择NDK开发项目,编辑器会自动帮你配置好环境,同时还会有一个示例代码,步骤如下:

第一步
在这里插入图片描述
点击next
在这里插入图片描述

创建完成后,项目目录结构如下
在这里插入图片描述
默认在main目录下创建了一个cpp,用来存放C++代码,同时关键的CmakeLists.txt文件也在这里
CmakeLists文件必须是这个名字,固定死的,内容如下

在这里插入图片描述
对里面内容做个解释

add_library( # 设置so库的名称,随意起名
    myndkapplication

    # 设置lib的权限.
    SHARED

    # 关连c++文件.这里必须是绝对路径,跟标签是CMakeLists.txt存放位置,由于此时位置和native-lib.cpp同级,所以这里直接名称即可
    native-lib.cpp)

关键的是add_library, 后面两个是使用Android库时候需要用的,这里是关连的log库,使用的不多,log足以,不做解释

生成的native-lib.cpp文件就是编写原生代码C++文件
在这里插入图片描述
使用方式:
先静态导入so库

 companion object {
    // Used to load the 'myndkapplication' library on application startup.
    init {
        System.loadLibrary("myndkapplication")
    }
}

库名称就是在CmakeLists文件里自己定义的名称

然后定义native方法

external fun stringFromJNI(): String

这里是用kotlin定义的,下面是java定义方法

public static native String stringFromJNI();

然后就可以在Android的代码里直接调用native方法了
在这里插入图片描述

后续需要添加什么方法,同样的流程
比如 定义一个getUserName方法,首先定义native方法
在这里插入图片描述
先在Android代码里定义,然后点击alt+enter快捷键,自动创建C++方法
在这里插入图片描述

已有项目增加native方法

如果现有非NDK项目想介入C++代码,首先要配置开发环境

在这里插入图片描述
下载NDK和CMake

创建CMakeLists.txt文件
文件名必须是这个名字,位置放在app目录下的任意位置,不过gradle配置的时候路径要和这里的存放位置对应
这里放在app同级目录下

在这里插入图片描述
gradle配置

	  externalNativeBuild {
    cmake {
        path = file("CMakeLists.txt")
    }
}

如果CMakeLists.txt放在src目录下则为

	  externalNativeBuild {
    cmake {
        path = file("src/CMakeLists.txt")
    }
}

创建c++ class文件

这里在main下创建一个cpp目录,然后把c++文件放入该目录
在这里插入图片描述
CMakeLists文件里编写配置信息

cmake_minimum_required(VERSION 3.10.2)//添加版本

	
add_library(
myndkapp//自己定义的名称
 SHARED//so的类型
src/main/cpp/firstNdk.cpp
) 

环境配置好后就是编写c++方法了,上面有介绍,不重复

猜你喜欢

转载自blog.csdn.net/ligaoyuan8030/article/details/123575306