先进行cmake和ndk环境安装下载
首先我们在Android Studio 中创建一个Native C++的空项目,点击Next进入下一步


将会看到第二张图中的项目,我们可以选择熟悉的语言进行android应用层代码的编写

至此第一个ndk项目创建完毕。
接下来聊聊ndk相关的基础知识。
在旧版本的ndk项目中,项目中包含android.mk和application.mk来进行共享库的设计,编写的JNI代码使用NDK-Build来编译生成指定的so文件。
新版本中则引入了cmake交叉编译,cmake默认指定了ndk版本所以无需配置,去除了上面提到的mk文件以及NDK-Build。编译生成的文件路径也有所变化。cmake生成的so文件位于app文件夹中的Build目录下。如需要指定生成哪几种环境的so文件则需要在build.gradle中进行配置。

接下来展示cmake自动生成的CMakeLists.txt文件其中
cmake_minimum_required 指定了当前安装的cmake版本
project("ndkdemo")指定了cmake的项目名称
add_library(${CMAKE_PROJECT_NAME} SHARED # List C/C++ source files with relative paths to this CMakeLists.txt. native-lib.cpp)
构建共享库。可以创建多个共享库
target_link_libraries(${CMAKE_PROJECT_NAME} # List libraries link to the target library android log)链接到指定的库

接下来是java文件中的加载cmake项目以及命名NDK在java层的调用方法
static { System.loadLibrary("ndkdemo"); } 语句指定了需要加在哪个NDK项目
public native void stringFromJNI(String message);声明了NDK当中的方法

接下来在.cpp文件中编写C或者C++代码

由于当前只学习到基础变量,就大概讲一下,声明变量的几种方式上图中显示的很清楚,那么我们需要将java字符串传递过来需要使用到jstring,cmakeLists.txt文件中不支持直接给jstring类型赋值。以上就是学习的第一个NDK项目内容
974

被折叠的 条评论
为什么被折叠?



