在計算機編程和軟件開發方面,本機開發工具包(NDK)通常是一種抽象編程接口(API),它使開發人員能夠通過核心操作系統直接使用函數或執行代碼。這種執行程序的方法與運行托管代碼或解釋程序有明顯不同,其中,編寫的代碼由虛擬機或...
在計算機編程和軟件開發方面,本機開發工具包(NDK)通常是一種抽象編程接口(API),它使開發人員能夠通過核心操作系統直接使用函數或執行代碼。這種執行程序的方法與運行托管代碼或解釋程序有明顯不同,其中,編寫的代碼由虛擬機或解釋器執行,虛擬機或解釋器充當核心操作系統功能和用戶編寫的代碼之間的軟件層。在需要盡可能快的執行和處理時間的應用程序中,使用本機開發包是必不可少的,因為它可以直接對操作系統使用的硬件和庫的訪問。根據所編寫程序的類型和目標操作系統的不同,使用本機開發工具包可能根本不會提高程序速度,而且可能會生成難以維護的代碼,讀取并移植到其他系統。為某些設備(如智能手機)編寫的計算機應用程序或使用解釋的計算機語言的人不直接由核心操作系統進程或內核執行。相反,程序代碼由稱為虛擬機(VM)的獨立程序執行,或解釋器。虛擬機讀取代碼,擴展和解析命令,并與內核接口以執行代碼。這對一些開發人員很有好處,因為它為可移植性提供了一個很好的抽象層,并將許多復雜的細節(如資源管理和文件處理)留給虛擬機。但是在某些情況下,虛擬機可能會阻礙某些類型的程序。虛擬機可能會減慢執行速度或無法提供對主機內核中某些功能的訪問目標操作系統或設備的本機開發工具包向正在編寫的應用程序公開內核的功能。根據工具包的范圍,這可以允許程序直接訪問硬件、將自己的自定義庫加載到內核或使用特定于系統的優化。本機開發工具包最重要的是通常只用于程序的時間關鍵部分。這些部分可以是圖形處理計算、輸出到顯示器或文件輸入和輸出。并非所有使用本機函數或例程的程序都能獲得速度優勢,因為虛擬機可能已經對托管代碼進行了優化,因此無論是否使用本機函數,生成的計算機代碼都是相同的。此外,本機代碼將程序綁定到操作系統的特定實現,有時甚至是設備的特定版本,這意味著使用本機開發工具包的代碼可能不容易移植到其他系統
-
發表于 2020-08-06 21:04
- 閱讀 ( 596 )
- 分類:電腦網絡