什么是Android原生开发套件(NDK)?

我想了解NDK。 什么是Android NDK(本机开发工具包)? 怎么用呢? 为什么要使用它?

8个解决方案
77 votes

NDK(Native Development Kit)是一个允许您使用C / C ++为Android设备编程的工具。 它旨在与SDK集成(它被描述为“配套工具”),仅用于项目的性能关键部分。 浏览此处获取更多信息。

Ted Hopp answered 2019-06-25T02:42:43Z
48 votes

NDK可以提高应用程序性能。 这通常适用于许多人处理器绑定的应用程序 许多多媒体应用和视频游戏都使用处理器密集型任务的本机代码。性能改进可以来自三个方面。 首先,将本机代码编译为二进制代码并直接在OS上运行,而Java代码则转换为Java字节码并由Dalvik虚拟机(VM)解释。 在Android 2.2或更高版本,Dalvik VM添加了一个即时(JIT)编译器来分析和优化Java程序运行时的字节码(例如,JIT可以编译一部分字节码到二进制代码执行之前)。 但在许多情况下,本机代码仍然存在运行速度比Java代码快。

Java代码由Android上的Dalvik VM运行。 Dalvik VM是专门设计的   适用于具有受限硬件资源的系统(内存空间,处理器)   速度,等等)。

NDK性能改进的第二个来源是本机代码允许的开发人员使用Android SDK无法访问的某些处理器功能,例如NEON,单指令多数据(SIMD)技术,允许多个要并行处理的数据元素。 一个特定的编码任务示例是颜色视频帧或照片的转换。 假设我们要转换1920x1280的照片从RGB颜色空间到YCbCr颜色空间的像素。 天真的方法是申请一个转换公式到每个像素(即超过两百万像素)。 使用NEON,我们可以一次处理多个像素,以减少处理时间。

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

坏处

NDK无法直接访问Android SDK中的大量API,而在NDK中进行开发将始终带来额外的复杂性进入你的申请。

sujith s answered 2019-06-25T02:43:40Z
18 votes

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

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

请点击以下链接。

链接-1

LINK-2

链路3

Chirag answered 2019-06-25T02:44:38Z
8 votes

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

以下链接也回答了您的问题:

什么是NDK?

什么时候开发本地代码

NDK下载

如何构建NDK应用程序

如何使用NDK

Android NDK的10个提示

Hussain answered 2019-06-25T02:45:53Z
3 votes

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

Android应用程序在Dalvik虚拟机中运行。 NDK允许   您可以使用本机代码实现应用程序的各个部分   C和C ++等语言。 这可以为某些人带来好处   应用程序类,以现有代码的重用形式和   有些案例提高了速度。

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

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

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

Daniel Kutik answered 2019-06-25T02:46:47Z
2 votes

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

RNR123 answered 2019-06-25T02:47:11Z
2 votes

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

Tanmay harsh answered 2019-06-25T02:47:35Z
2 votes

Android NDK(原生开发套件)

Android Native Development Kit(NDK)是开发人员用C / C ++编写代码,编译为本机代码

为什么要使用它?

源代码直接编译为CPU的机器代码(而不是像Java一样的中间语言),然后开发人员能够获得最佳性能

怎么用呢?

这里是最好的教程

[https://developer.android.com/ndk/index.html]

[https://www.androidauthority.com/android-ndk-everything-need-know-677642/]

[https://www.ntu.edu.sg/home/ehchua/programming/android/Android_NDK.html]

Ramesh sambu answered 2019-06-25T02:48:54Z
translate from https://stackoverflow.com:/questions/6660621/what-is-the-android-native-development-kit-ndk