android和native android(Android NDK)有什么区别?

IBu*_*nny 3 java android

我是android开发的新手。我读了一些关于android的文章。但我不正确理解android和android NDK有什么区别。当我们使用除常规android开发资源以外的android NDK时该怎么办?

小智 5

默认情况下,Android应用程序是用Java编写的,被编译为字节码,然后由目标平台解释并转换为它的机器代码。因此,普通的android应用程序在各个平台之间相对可移植。本机Android应用程序(或更准确地说,Android应用程序的本机部分)是用C编写的,并直接编译为特定平台的机器代码。这意味着该应用程序的NDK部分具有较小的可移植性,除非您专门针对每个不同的指令集对其进行编译。您可能会问为什么有人会使用NDK?对于某些功能,它要快得多。例如,在普通的Android应用程序中,字符串标记化的速度非常慢。使用NDK可以大大加快速度。

如果您要询问,则可能应该从普通的Android应用程序开始。如果您发现需要提高性能,那么您可能想要进入NDK开发。


pet*_*rov 1

“NDK 是一个工具集,允许您
使用 C 和 C++ 等本机代码语言实现应用程序的某些部分”。
这里的词是指适用于 Android 操作系统的 Java 应用程序
,但您希望其中的某些部分使用本机语言进行编码。

http://developer.android.com/tools/sdk/ndk/index.html

当您想用 Java 为 Android 操作系统编写代码时,可以使用 Android SDK。Java 不是
本机的,因为它不直接转换为机器代码,而是转换为 VM 字节码。

https://developer.android.com/sdk/index.html