0

我试图理解为什么有人想在 android 编程中使用 NDK 功能?c++ 对 Android 来说真的很重要吗?

4

2 回答 2

4

三个(也许是第四个)主要原因是:

  • 性能。对于一些关键的内部循环,C/C++ 相对于 Java 的边际性能优势,尤其是在 Android 编译器中提供即时编译 (JIT) 之前,可能是一个决定性因素。
  • 使用现有的 C/C++ 库。这里的推理很明显。
  • 做一些 NDK 允许 Java API 无法管理的事情。接近硬件的低级操作,尤其是接触制造商特定的硬件,可能只能通过 C/C++ 实现
  • 正如 Yojimbo 建议的那样,混淆。逆向工程编译的机器代码比 Java 字节码要困难一些,尽管你永远不应该依靠默默无闻来指望安全性。

说了这么多,在决定使用它之前,您应该非常确定您需要 NDK。NDK 代码的测试和维护成本可能高于同等 Java。

于 2013-07-31T19:38:11.890 回答
1

我已经多次使用 NDK,用于:

  • 利用现有的 C 库。
  • 跨不使用 Java 的平台(例如 iOS)共享代码。

NDK 对性能没有那么有用,因为 Android 应用程序通常不受 CPU 限制,而是等待网络或文件访问。这就是为什么谷歌

在 Android 上使用本机代码通常不会带来显着的性能提升,但它总是会增加应用程序的复杂性。

于 2013-07-31T19:46:08.663 回答