Android和C++:必要吗?

Dan*_*ark 3 c++ java android

只是非常简单地检查Android开发,似乎大多数人都在使用Java.然而

Android包含一系列由Android系统的各个组件使用的C/C++库.这些功能通过Android应用程序框架向开发人员公开.

这是否意味着,在Android应用程序中,使用Java并使用C++:

  • 有时?
  • 很多?
  • 几乎从不?
  • 从不:你不能将它用于应用程序?

Mig*_*les 5

有时.尽可能地,仅对时间敏感的代码,即使这样,它可能不是一个好的解决方案.制作Android应用程序的标准方法是Java.
这是因为Java代码将真正实现跨平台,并且几乎可以在所有设备上运行.虽然据我所知,ndk只支持ARM处理器,除非绝对必要,否则不会完全鼓励它.

很多人滥用NDK来避免使用Java或SDK.这是错的.

  • C++是源可移植的,但二进制或编译形式不是.您需要使用NDK编译C++代码,它只针对几个处理器,主要是ARM.因此,C++代码不像Android应用程序中的Java代码那样可移植.您目前只能将您的C++代码用于具有ARM cpu的Android设备.使用Java,您不必担心这一点. (6认同)

Che*_*mon 5

您可以通过NDK在Android应用程序中使用c ++.它必须与基于Java的SDK结合使用,并且仅用于性能关键的代码片段.它具有比SDK更有限的功能(无法显示UI等).

从文档中使用Reasins:

NDK不会使大多数应用程序受益.作为开发人员,您需要平衡其优势与缺点; 值得注意的是,使用本机代码不会导致自动性能提升,但总会增加应用程序的复杂性.NDK的典型优选候选者是独立的,CPU密集型操作,不分配大量内存,例如信号处理,物理模拟等.简单地重新编码在C中运行的方法通常不会导致大的性能提升.但是,NDK可以是重用大量现有C/C++代码的有效方法.

因此,大多数用户不会使用任何C++代码.