繁体   English   中英

C ++是否适合Android开发?

[英]Is C++ suitable for Android development?

例如,我想创建一个基于GPS的简单应用程序,其中包括设置航路点,在地图上显示航路点等。那么,是否有可能仅使用C ++而不使用任何Java源代码来制作这样的应用程序? 比在Java上做同样的事情难吗?

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

因此,是否有可能仅使用C ++来制作这样的应用程序,而没有任何Java来源?

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

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

比在Java上做同样的事情难吗?

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

  • 慢点。
  • 布吉尔。
  • 难以理解和维护。

对于Android开发,Java只是自然的,正常的默认语言,而C ++则用于特殊的特殊任务,通常是那些涉及大量密集计算的任务。 您在需要时使用它,不是因为您不希望用Java编写,也不是因为Java太慢了。

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

Android Native Development Kit官方文档所述

在下载NDK之前,您应该了解NDK不会使大多数应用受益 作为开发人员,您需要在其优点与缺点之间取得平衡。 值得注意的是,在Android上使用本机代码通常不会带来明显的性能改进,但始终会增加应用程序的复杂性。 通常,仅当NDK对您的应用程序至关重要时才应使用NDK,决不要使用NDK,因为您只是喜欢使用C / C ++进行编程。

它还说:

您不能本地访问服务和内容提供程序之类的功能,因此,如果要使用它们或任何其他框架API,仍可以编写JNI代码来使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM