應用程序編程接口
應用程序編程接口(英語:Application Programming Interface,簡稱:API),是一些預先定義的函數,目的是提供應用程序與開發人員基於某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內部工作機制的細節。
近年來軟件[1]的規模日益龐大,常常需要把複雜的系統劃分成小的組成部分,編程接口的設計十分重要。程序設計的實踐中,編程接口的設計首先要使軟件系統的職責得到合理劃分。良好的接口設計可以降低系統各部分的相互依賴,提高組成單元的內聚性,降低組成單元間的耦合程度,從而提高系統的維護性和擴展性。
目錄
簡介
應用程序接口為:「『電腦操作系統(Operating system)』或『程序庫』提供給應用程序調用使用的代碼。」其主要目的是讓應用程序開發人員得以調用一組例程功能,而無須考慮其底層的源代碼為何、或理解其內部工作機制的細節。API本身是抽象的,它僅定義了一個接口,而不涉及應用程序在實際實現過程中的具體操作。
例如,圖形庫中的一組API定義了繪製指針的方式,可於圖形輸出設備上顯示指針。當應用程序需要指針功能時,可在引用、編譯時鏈接到這組API,而運行時就會調用此API的實現(庫)來顯示指針。
應用程序接口是一組數量上千、極其複雜的函數和副程序,可讓程序員做很多任務,譬如「讀取文件」、「顯示菜單」、「在視窗中顯示網頁」等等。操作系統的API可用來分配存儲器或讀取文件。許多系統應用程序藉由API接口來實現,像是圖形系統、數據庫[2]、網絡Web服務,甚至是在線遊戲。
應用程序接口有諸多不同設計。用於快速執行的接口通常包括函數、常量、變量與數據結構。也有其它方式,如通過解釋器,或是提供抽象層以屏蔽同API實現相關的信息,確保使用API的代碼無需更改而適應實現變化。
應用程序接口經常是軟件開發工具包(SDK)的一部分。
目的
A reference implementation of an API is the implementation created by the designer of the API,or one which other implementations of the API are expected to be compared against.
例如,圖形庫中的一組API定義調用繪製圖標函數的方式,以於屏幕上顯示圖標。程序中調用,編譯時連接到這組API,執行時便調用API的實現(庫)來顯示圖標。
操作系統的API可用來分配內存或訪問文件。許多系統與應用程序提供API接口與實現,比如圖形系統,數據庫,網絡,Web服務,甚至於某些遊戲。
一組API經常是一套軟件開發工具包(SDK)的一部分。SDK亦可包含其它工具亦或至於硬件,兩個術語並不完全等同.
API有諸多不同設計。用於快速執行的接口通常包括函數,常量,變量與數據結構。也有其它方式,如通過解釋器,或是提供抽象層以遮蔽同API實現相關的信息,確保使用API的代碼無需更改而適應實現變化。
API就是應用程序編程接口。它是能用來操作組件、應用程序或者操作系統的一組函數。典型的情況下,API由一個或多個提供某種特殊功能的DLL組成。
DLL是一個文件,其中包含了在Microsoft Windows下運行的任何應用程序都可調用的函數。運行時,DLL中的函數動態地鏈接到調用它的應用程序中。無論有多少應用程序調用DLL中的某個函數,在磁盤上只有一個文件包含該函數,且只在它調入內存時才創建該DLL。
您聽到最多的API可能是Windows API,它包括構成Windows操作系統的各種DLL。每個Windows應用程序都直接或間接地與Windows API互動。Windows API保證Windows下運行的所有應用程序的行為方式一致。
注意
隨着Windows操作系統的發展,現已發布了幾個版本的Windows API。Windows 3.1使用Win16 API。Microsoft Windows NT、Windows 95和Windows 98平台使用Microsoft Win32 API。
除Windows API外,其他一些API也已發布。例如,郵件應用程序編程接口(MAPI)是一組可用於編寫電子郵件應用程序的DLL。
API傳統上是為開發Windows應用程序的C和C++程序員編寫的,但其他的編程語言(包括VBA)也可以調用DLL中的函數。因為大部分DLL主要是為C和C++程序員編寫和整理說明的,所以調用DLL函數的方法與調用VBA函數會有所不同。在使用API時必須了解如何給DLL函數傳遞參數。
警告:調用Windows API和其他DLL函數可能會給您的應用程序帶來不良影響。從自己的代碼中直接調用DLL函數時,您繞過了VBA通常提供的一些安全機制。如果在定義或調用DLL函數時出現錯誤(所有程序員都不可避免),可能會在應用程序中引起應用程序錯誤(也稱為通用性保護錯誤,或GPF)。最好的解決辦法是在運行代碼以前保存該項目,並確保了解DLL函數調用的原理。
參考文獻
- ↑ ACCP軟件工程師的職業前景,百分網,2018-03-21
- ↑ SCI數據庫,河南師範大學圖書館, 2019-07-06