什么是Android本地开发套件(NDK)?

我想知道NDK。 什么是Android NDK(本地开发套件)? 如何使用它? 为什么要使用它?

NDK(原生开发工具包)是一个工具,允许您使用Android设备的C / C ++进行编程。 它旨在与SDK集成(它被称为“伴侣工具”),仅用于项目的性能关键部分。 在这里看到更多的信息。

NDK可能会提高应用程序性能。 这通常适用于许多处理器绑定的应用程序。 许多多媒体应用程序和video游戏使用本机代码处理密集型任务。 性能改进可以来自三个来源。 首先,本地代码被编译成二进制代码并直接在OS上运行,而Java代码被转换成Java字节码并由Dalvik虚拟机(VM)解释 。 在Android 2.2或更高版本中,一个Just-In-Time(JIT)编译器被添加到Dalvik VM中,以便在程序运行时分析和优化Java字节码(例如,JIT可以将部分字节码编译为二进制代码在执行之前)。 但是在很多情况下,本地代码仍然比Java代码运行得更快。

Java代码由Android上的Dalvik VM运行。 Dalvik VM是专为硬件资源受限(内存空间,处理器速度等)的系统而devise的。

NDK性能改进的第二个来源是本地代码允许开发人员利用Android SDK无法访问的某些处理器function,例如单指令多数据(SIMD)技术NEON,允许处理多个数据元素在平行下。 一个特定的编码任务示例是video帧或照片的颜色转换。 假设我们要将1920×1280像素的照片从RGB色彩空间转换为YCbCr色彩空间。 天真的方法是将转换公式应用于每个像素(即超过200万像素)。 使用NEON,我们可以一次处理多个像素,以缩短处理时间。

第三个方面是我们可以在组件级优化关键代码,这在桌面软件开发中是很常见的做法。

坏处

NDK无法直接访问Android SDK中的大量API,而在NDK中开发将会给您的应用程序带来额外的复杂性。

Android NDK是一个配套工具,只能与Android SDK结合使用,允许应用程序开发人员使用本地(C / C ++)代码构build其应用程序的性能关键部分。

这提供了重用现有代码的forms和提高速度的好处。

请通过下面的链接。

链接-1

LINK-2

链路3

Android NDKAndroid SDK的配套工具,可让您使用本机代码构build应用程序中性能至关重要的部分。 它提供的头文件和允许您在使用C或C ++进行编程时构build活动,处理用户input,使用硬件传感器,访问应用程序资源等等。 如果您编写本机代码,则您的应用程序仍然打包为.apk文件,并且仍然在设备上的虚拟机内部运行。 基本的Android应用程序模型不会改变。

以下链接也回答你的问题:

什么是NDK?

本地代码何时开发

NDK下载

如何构buildNDK应用程序

如何使用NDK

Android NDK的10个提示

Android NDK是一个工具集,可让您在Android应用程序中embedded使用本机代码的组件。

Android应用程序在Dalvik虚拟机中运行。 NDK允许您使用本机代码语言(如C和C ++)实现部分应用程序。 这可以为某些类别的应用程序提供益处,以重用现有代码的forms,并且在某些情况下提高速度。

资料来源: http : //developer.android.com/sdk/ndk/overview.html

Android NDK是Android SDK的配套工具,可让您使用本机代码构build应用程序中性能至关重要的部分。 它提供的头文件和库允许您在使用C或C ++进行编程时构build活动,处理用户input,使用硬件传感器,访问应用程序资源等等。 如果您编写本机代码,则您的应用程序仍然打包为.apk文件,并且仍然在设备上的虚拟机内部运行。 基本的Android应用程序模型不会改变。

资料来源: http : //developer.android.com/sdk/ndk/index.html

NDK是一个工具集,允许您使用本地代码语言(如C和C ++)实现您的应用程序的一部分….检出此https://developer.android.com/tools/sdk/ndk/index.html

NDK只是一组工具,可以让你为你的应用程序编写C / C ++代码。例如,假设你想为你的应用程序添加一个关键的函数/性能,并且你想用C / C ++,eclipse或者其他的IDE不允许你编写你的C / C ++,在这种情况下,你必须使用NDK并将其集成到你的应用程序中。