1. NDK是什么?
NDK,Native Development Kit, 原生开发包. 提供了一些列开发C或C++动态库的工具,并能把so和java应用一起自动打包为apk。它集成了交叉编译器,并生成了对应的mk文件隔离CPU、平台、ABI等差异,开发者仅需修改mk文件,即可创建出so。
NDK包含了有限的Api:C标准库(libc)、标准数学库(libm),压缩库(libz)、Log库(liblog)。
Google明确声明ndk所含的API是稳定的,在后续所有版本中都稳定支持当前发布的API。
2. NDK的作用?
- 防止代码被反编译。C/C++反编译难度比java高很多
- 便于使用开源库。现存大部分开源库都是用C/C++编写
- 代码的执行效率高。C的执行效率很高
- 便于跨平台使用。C/C++代码可以便于再其他的嵌入式平台上使用