1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 极速入门NDK开发

极速入门NDK开发

时间:2020-10-26 21:03:50

相关推荐

极速入门NDK开发

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

分两种情况

1.创建新工程

2.现有项目新添加NDK开发

创建新工程

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

创建完成后,项目目录结构如下

默认在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++方法了,上面有介绍,不重复

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。