前言:
ndk是一组工具集合,可以让你的app能够包含native code,比如C/C++。
在开发CPU敏感的app,比如游戏引擎,信号处理,物理仿真,ndk会有很好的表现。但ndk并不适用于大多数情形。你需要平衡它的优势和劣势。很明显,使用native code并不总是可以明显地提高性能,但是却会使你的app变得复杂。所以你要合理使用。
不要因为你喜欢C/C++,就选择使用natvecode,除非是在必要的情况下。如果android framework api已经提供了相关功能,建议就不要再自己开发nativecode了,你要相信谷歌的技术实力。
另外,还应该注意的是,当你使用native code时,和硬件平台有关系。(比如x86,arm???)。ndk提供一系列ABIs供选择,以确保你的编译工作是针对正确的硬件平台。ABI,即app binary interface。