在Android Studio在2.2版本实现了Ndk开发新的编译工具Cmake,比之前ndk-build方式来得更方便快捷,可以直接运行app时就生成了so并打包到apk中,省去了之前开发ndk时出现的很多麻烦。例如没有代码提示,自动填充,开发起来都是一个个手写,出现错误只能是编译打包阶段提示,还必须先生成so再替换原文件运行。现在通过cmake开发起来得到大大提升,下面介绍这段时间ndk jni开发遇到的一些问题以及技巧总结。
基本使用
下载工具Cmake,然后在AS 2.2版本以上新建工程时勾选Include C++ Support,工程新建好之后,发现与常规项目不同的是多了.externalNativeBuild文件夹、cpp文件夹、CMakeLists.txt文件。其他具体细节使用自行百度
cmake基本配置解析
指定cmke版本
cmake_minimum_required(VERSION3.4.1)
add_library()命令用于向CMake添加依赖源文件或库
指令需传入三个参数(函数库名称、库类型、依赖源文件相对路径)
add_library( # 生成函数库的名称,即libnative-lib.so或libnative-lib.a(lib和.so/.a默认缺省)
native-lib
# 生成库类型:动态库为SHARED,静态库为STATIC
SHARED
# 依赖的c/cpp文件(相对路径)
src/main/cpp/native-lib.cpp )
find_library()命令用于定位NDK中的库
需传入两个参数(path变量、ndk库名称)
find_library( # 设置path变量的名称ÿ