java - 与 Java 相比,Android C 是否具有更好的性能?

标签 java android c jvm

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center寻求指导。




10年前关闭。




安卓系统 NDK您可以阅读的网站:

The Android NDK is a companion tool to the Android SDK that lets you build performance-critical portions of your apps in native code.

...

If you write native code, your applications are still packaged into an .apk file and they still run inside of a virtual machine on the device

...

Using native code does not result in an automatic performance increase, but always increases application complexity.



如果 C 也被编译为 VM 代码,那么如何使用 C 和 NDK 获得性能呢?你可以绕过 API,或者 C 编译成更优化的代码,还是什么?

或者它只是“开发加速”,所以如果你有一些 C 代码你不必将它移植到 Java?

编辑:

我愿意 不是 询问 “Java 比 C 慢” .我的考虑是,如果 C 是用 gcc 编译的,那么 便携性已解决(但这是第二个问题,在后台)

What are the portability implications of using the NDK?

最佳答案

NDK 允许您添加到应用程序的 C 代码不会编译成 VM 代码。它使用 gcc 编译,并作为共享库链接,可以通过 JNI 加载和链接到 java 。因此,您可以通过用 C 编写而不是在编写 Java 代码时依赖 JVM 优化来获得性能。

关于java - 与 Java 相比,Android C 是否具有更好的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8227591/

相关文章:

android - 如何调试剧本模拟器?

android - 选择项目时更改微调器的文本(非背景)颜色

c - 打印内存时出现段错误

Java - 方法前置条件和后置条件执行

java - 如何在java/groovy中模拟方法?

java - 如何使用 Java 客户端通过带有 SSL 的 SMTP 发送电子邮件?

c++ - tm结构中tm_sec字段中61的目的是什么

java - 在 Android 中播放和停止 MediaPlayer

android - 我如何在标签之间显示 toast ?

复制文件失败,EBADF 关闭输出文件描述符