Android 运行时和 Android 本机接口

Android Runtime and Android Native Interface

根据 wiki (http://en.wikipedia.org/wiki/Android_Runtime),Dalvik 在 Lollipop 中完全被 ART 取代,即从该版本开始,任何应用程序都将在安装时编译为本机代码。这就引出了一个问题,如果应用程序无论如何都会被编译为本机代码,那么在 NDK 中编写计算密集型例程是否有意义?

ART 并没有在 C 语言等意义上制作纯 "native code"。它仍然是从 Java 来源生成的字节码。

所以是的,用NDK写一些例程还是有很多好处的,当然:)

Dalvik VM 还将代码编译为本机代码。不同的是,Dalvik 是这样做的"just in time",而且只针对频繁执行的代码部分。

Art 中的编译器比 Dalvik 中的编译器有许多性能改进,但如果您之前觉得需要使用本机来提高性能,您很可能会继续感到这种需要。