安卓C是否比Java有更好的性能?

安卓C是否比Java有更好的性能?,java,android,c,jvm,Java,Android,C,Jvm,在Android网站上,您可以阅读: androidndk是androidsdk的配套工具,它可以让您 以本机代码构建应用程序的性能关键部分 如果编写本机代码,应用程序仍然打包到.apk文件中,并且它们仍然在设备上的虚拟机中运行 使用本机代码不会导致自动执行 增加,但总是增加应用程序的复杂性 如果C也被编译成VM代码,那么如何使用C和NDK提高性能呢?你可以绕过API,或者C编译成更优化的代码,或者什么 或者这只是“开发加速”,所以如果你有一些C代码,你不必把它移植到Java 编辑: 我不会

在Android网站上,您可以阅读:

androidndk是androidsdk的配套工具,它可以让您 以本机代码构建应用程序的性能关键部分

如果编写本机代码,应用程序仍然打包到.apk文件中,并且它们仍然在设备上的虚拟机中运行

使用本机代码不会导致自动执行 增加,但总是增加应用程序的复杂性

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

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

编辑:

我不会问“Java是否比C慢”。我考虑的是,如果C是用gcc编译的,那么如何解决可移植性(但这是第二个问题,在后台)


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

您真的在问C是否比Java快吗?请记住,Android有自己的VM,它比普通Java VM快得多,因此您只使用Java编写,但字节码是Dalvik。黑莓(Blackberry)应用程序和安卓(Android)应用程序不好的主要原因(性能方面)。@CédricJulien:我真的问过吗?再次研究我的问题发现,我问的是安卓C是否在VM上运行,而不是C是否比VM快Java@JakubM. : 感谢您的解释,您问题的标题可能会导致误解(肯定会解释您收到的3张结束您问题的投票)@JakubM:“不会导致自动性能提高”是因为您在Android中从Java访问的许多东西已经在固件中用C实现了,因此,您自己的实现可能无助于解决问题。另外,从Java调用C(反之亦然)也有开销,因此两者之间设计糟糕的接口可能会导致比简单地使用Java实现所有功能更慢的结果?Androids运行在不同的处理器上,具有不同的指令sets@JakubM. : 看看这里的可移植性问题。