在计算机编程和软件开发方面,本机开发工具包(NDK)通常是一种抽象编程接口(API),它使开发人员能够通过核心操作系统直接使用函数或执行代码。这种执行程序的方法与运行托管代码或解释程序有明显不同,其中,编写的代码由虚拟机或...
在计算机编程和软件开发方面,本机开发工具包(NDK)通常是一种抽象编程接口(API),它使开发人员能够通过核心操作系统直接使用函数或执行代码。这种执行程序的方法与运行托管代码或解释程序有明显不同,其中,编写的代码由虚拟机或解释器执行,虚拟机或解释器充当核心操作系统功能和用户编写的代码之间的软件层。在需要尽可能快的执行和处理时间的应用程序中,使用本机开发包是必不可少的,因为它可以直接对操作系统使用的硬件和库的访问。根据所编写程序的类型和目标操作系统的不同,使用本机开发工具包可能根本不会提高程序速度,而且可能会生成难以维护的代码,读取并移植到其他系统。为某些设备(如智能手机)编写的计算机应用程序或使用解释的计算机语言的人不直接由核心操作系统进程或内核执行。相反,程序代码由称为虚拟机(VM)的独立程序执行,或解释器。虚拟机读取代码,扩展和解析命令,并与内核接口以执行代码。这对一些开发人员很有好处,因为它为可移植性提供了一个很好的抽象层,并将许多复杂的细节(如资源管理和文件处理)留给虚拟机。但是在某些情况下,虚拟机可能会阻碍某些类型的程序。虚拟机可能会减慢执行速度或无法提供对主机内核中某些功能的访问目标操作系统或设备的本机开发工具包向正在编写的应用程序公开内核的功能。根据工具包的范围,这可以允许程序直接访问硬件、将自己的自定义库加载到内核或使用特定于系统的优化。本机开发工具包最重要的是通常只用于程序的时间关键部分。这些部分可以是图形处理计算、输出到显示器或文件输入和输出。并非所有使用本机函数或例程的程序都能获得速度优势,因为虚拟机可能已经对托管代码进行了优化,因此无论是否使用本机函数,生成的计算机代码都是相同的。此外,本机代码将程序绑定到操作系统的特定实现,有时甚至是设备的特定版本,这意味着使用本机开发工具包的代码可能不容易移植到其他系统
-
发表于 2020-08-06 21:04
- 阅读 ( 808 )
- 分类:电脑网络