简介
Native Development kit
原生开发工具包(NDK)是一组在 Android 应用中利用 C 和 C++ 代码的工具。因为 Java 无法直接调用 C 和 C++ 的代码,想要在 Android 应用中使用原生代码,NDK 便应运而生。
NDK 的核心目的之一是让 C 和 C++ 源代码构建为可用于应用的共享库。
工作方式
主要组件
- ndk-build : 此脚本用于在 NDK 中心启动构建脚本。包含功能:
- 自动探测开发系统和应用项目文件以确定要构建的内容
- 生成二进制文件
- 讲二进制文件复制到应用的项目路径
- Java :
- 原生共享库:NDK 从原生源代码构建这些库或
.so
文件 - 原生静态库:NDK 也可以构建静态库或
.a
文件 - Java 原生接口(JNI):JNI 是 Java 和 C++ 组件用以互相沟通的接口
- 应用二进制界面(ABI):定义应用的机器代码在运行时如何与系统交互。NDK 根据这些定义构建
.so
文件。不同的 ABI 对应不同的架构 - 清单:如果应用没有 Java 组件 ,必须在清单中声明
NativeActivity
类 Android.mk
:必须在jni
文件夹内创建Android.mk
配置文件。ndk-build
脚本将查看此文件,其中定义了模块及其名称、要编译的源文件、版本标志以及要链接的库。Application.mk
:此文件枚举并描述应用需要的模块。包括:- 用于针对特定平台进行编译的 ABI</