「NDK」一 初次见面

2019-07-11  本文已影响0人  叨码
1.NDK到底是个啥?

至于概念,首要建议官网NDK文档了解下官宣 ,貌似需要梯子。。没有梯子的你,继续往下看吧

1.1 NDK的基础概念

简单来讲,NDK (Native Development Kit) 原生开发工具包,说白了就是一个工具,即帮助开发原生代码的一系列工具,包含但不限于编译工具、一些公共库、开发IDE等。什么作用呢?

1.2 主要组件

构建应用时,需要了解一下组件

1.2.1 ndk-bulid

文件是Android NDK r4中引入的一个shell脚本。作用在于调用正确的NDK构建脚本,最终还是调用的NDK自己的编译工具。脚本作用:

1.2.2 JNI (Java Native Interface) : Java本地接口,就是Java和c/c++组件进行友好沟通的接口。
1.2.3 Android.mk 和 Application.mk

你可以认为是描述编译参数和一些配置的文件:指定使用c++11呢还是使用c++14编译,会引用哪些共享库,指定编译的abi等。只有有了这些,NDK中的编译工具才能准确的编译c/c++代码。这个两个只在用ndk-build脚本构建项目或ndk-gdb脚本调试时才会用到。

1.2.3CMake

在AS2.2之后,工具中增加了CMake的支持,区别于Unix下使用makefile文件编译,windows下使用project文件编译。CMake是一个跨平台的编译工具,不会直接编译出对象,而是根据自定义的语言规则(CMakeLists.txt)生成对应的makefile和project文件,然后在调用底层的编译。就是说,在AS2.2之后,有两种方式来编译你的c/c++代码: 一个是ndk-build + Android.mk + Application.mk 组合。另一个是CMake+CMakeLists.txt组合。

上一篇 下一篇

猜你喜欢

热点阅读