C ++适合Android开发吗?

时间:2015-03-06 19:50:11

标签: android c++ mobile

例如,我想创建一个基于GPS的简单应用程序,制作航点,在地图上显示它们等等。那么,是否可以使用C ++制作这样的应用程序,而不使用任何Java源代码?是否比在Java上制作相同更难?

2 个答案:

答案 0 :(得分:2)

是的,搜索Android NDK。显然这有点麻烦,你会经常使用SO!

答案 1 :(得分:1)

  

那么,是否有可能只使用C ++创建这样的应用程序,而不是任何   Java资源?

没有。如果你想接收GPS坐标,没有任何Java代码就无法做到这一点。

可以编写一个应用程序,其中Java被用作本机代码的瘦包装,使用JNI在Java和C ++之间交换数据。然而...

  

在Java上制作相同内容会不会更困难?

是的!此外,该应用可能最终成为:

  • 慢。
  • Buggier。
  • 更难理解和维护。

对于Android开发,Java只是一种自然的,普通的默认语言,C ++适用于奇特的特殊任务,通常涉及真正密集的计算。你在需要时使用它,而不是因为你不想"想要"用Java编写或因为" Java很慢"。

编写正确的JNI代码也不是一件容易的事。例如,如果您没有阅读文档,那么很容易让本地引用和全局引用错误,因为编译器无法检测到它们的错误用法。

正如official documentation of the Android Native Development Kit所说:

  

在下载NDK之前,您应该了解 NDK会   不会使大多数应用受益。作为开发人员,您需要平衡它   有利于它的缺点。值得注意的是,在Android上使用本机代码   通常不会导致显着的性能提升,但是   它总是会增加您的应用复杂性。一般来说,你应该只   使用NDK,如果它对您的应用程序至关重要 - 绝不会因为您的原因   更喜欢用C / C ++编程。

它还说:

  

您无法访问服务和内容提供商等功能   本地,所以如果你想使用它们或任何其他框架API,你   仍然可以编写JNI代码来执行此操作。