为了澄清一些困惑:ndk-build是NDK中包含的构建系统.它使用Android.mk文件. NDK本身是构建Android的C/C++代码所需的编译器和库的集合. ndk-build和cmake都使用NDK.
What is the actual difference between CMake and NDK build in android studio project.
他们使用不同的语言(自定义makefile和cmake)来描述构建.理想情况下,相同描述的构建的输出没有区别,但这并不意味着没有任何错误.
Can anyone has a better explanation with an example when we need to use what?
通常,使用您喜欢的系统.
CMake的主要优势在于您可以为所有目标(Android,Linux,Windows,iOS等)使用一组构建文件.如果您的项目是跨平台的,那么CMake应该让您最简单.它也在Android开发者之外广为人知,因此Android新手将有更好的机会了解它.
如果你正在构建一个已经为其构建系统(遗留项目)使用Android.mk文件的项目,那么ndk-build应该是首选.
如果您正在编写新代码,请使用您喜欢的任何内容.如果您对这两者都不熟悉,那么cmake可能是更好的选择,因为如果您选择这样做,将来可以使跨平台工作变得更容易.