繁体   English   中英

安卓:Java、C 还是 C++?

[英]Android: Java, C or C++?

我使用 Java 在 Android 中编写了一些简单的应用程序。
但是后来我发现了这个:

它提供了头文件和库,允许您在使用 C 或 C++ 编程时构建活动、处理用户输入、使用硬件传感器、访问应用程序资源等。 来源

它与此有什么关系:

Android 应用程序是用 Java 编程语言编写的。 来源

三种语言都可以吗?
对不起,这个愚蠢的问题。

您链接到的文章有很好的信息。 它还链接到http://developer.android.com/sdk/ndk/overview.html ,其中说:

NDK 不会使大多数应用程序受益。 作为开发人员,您需要权衡利弊; 值得注意的是,使用本机代码不会自动提高性能,但总是会增加应用程序的复杂性。 一般来说,您应该只在对您的应用程序必不可少的情况下才使用本机代码,而不仅仅是因为您更喜欢用 C/C++ 编程。

NDK 的典型候选对象是不分配太多内存的独立的、CPU 密集型操作,例如信号处理、物理模拟等。 简单地重新编码一个方法以在 C 中运行通常不会导致性能大幅提升。 在检查是否应该使用本机代码进行开发时,请考虑您的要求并查看 Android 框架 API 是否提供了您需要的功能。 然而,NDK 可以成为重用大量现有 C/C++ 代码的有效方式。

Android 底层是 Linux,因此您可以在其上运行任何语言。 为了好玩,我在 Android 手机上运行了 Perl 脚本。 从实用的应用程序开发角度来看,Google 在Dalvik 上运行的 Java 实现将是典型的路线。

Java 始终允许您调用“本机代码”组件。 但是,您希望尽可能避免使用它们,因为它们会在您的代码中引入细微的错误和平台依赖性。

但是,我不相信您可以用 C/C++ 为 Android 编写整个应用程序——您至少必须有一个 Java 包装器。

这是个好问题,AFAIK、c 或 c++ 当您真的想编写一些核心 dalvik 功能而不是按照您指定的问题使用 Android API(例如传感器相关功能或硬件)时,就会出现。

如果您想使用 API 构建应用程序,它将主要使用 Java/XML。

根据这项调查,在 C 中重写那些“不分配太多内存的独立、CPU 密集型操作”之一可能会将性能/电池寿命提高 17 倍。 本文发现运行 CCTOOLS Fortran 甚至更快。 所以替代语言非常值得考虑。

对于 CPU 密集型应用程序,例如计算机图形应用程序、游戏、模拟、AI/SI、数字图像处理或计算机视觉,请选择 C/C++。 如果您正在构建一个仅处理数据(JSON、XML)、数据表示或小型图形应用程序(棋盘游戏、90 年代复古游戏)的小型应用程序,那么 JAVA 就足够了。

暂无
暂无

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

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