API 簡單理解

作爲一個編程初學者來說,API函數也許是一個時常耳聞卻感覺有些神祕的東西。單看它的複雜語法,就足令人望而生畏,但是任何事物在我們深入瞭解它之前,總是會有這種感覺的。我們這篇API入門教程的目的,就是要把API函數的來龍去脈告訴大家,破除對API函數的畏懼,使它成爲我們編程的好助手。

大家可能在許多書上看到過API的英文全稱(Application Programming Interface),WIN32 API也就是MicrosoftWindows 32位平臺的應用程序編程接口。對這個定義的理解,需要追溯到操作系統的發展歷史上,當WINDOWS操作系統開始佔據主導地位的時候,開發WINDOWS平臺下的應用程序成爲人們的需要。而在WINDOWS程序設計領域處於發展的初期,WINDOWS程序員所能使用的編程工具唯有API函數,這些函數是WINDOWS提供給應用程序與操作系統的接口,他們猶如“積木塊”一樣,可以搭建出各種界面豐富,功能靈活的應用程序。所以可以認爲API函數是構築整個WINDOWS框架的基石,在它的下面是WINDOWS的操作系統核心,而它的上面則是所有的華麗的WINDOWS應用程序。

但是,那時的WINDOWS程序開發還是比較複雜的工作,程序員必須熟記一大堆常用的API函數,而且還得對WINDOWS操作系統有深入的瞭解。然而隨着軟件技術的不斷髮展,在WINDOWS平臺上出現了很多優秀的可視化編程環境,程序員可以採用“即見即所得”的編程方式來開發具有精美用戶界面和功能強大的應用程序。

這些優秀可視化編程環境操作簡單、界面友好(諸如VB、VC 、DELPHI等),在這些工具中提供了大量的類庫和各種控件,它們替代了API的神祕功能,事實上這些類庫和控件都是構架在WIN32 API函數基礎之上的,是封裝了的API函數的集合。它們把常用的API函數的組合在一起成爲一個控件或類庫,並賦予其方便的使用方法,所以極大的加速了WINDOWS應用程序開發的過程。有了這些控件和類庫,程序員便可以把主要精力放在程序整體功能的設計上,而不必過於關注技術細節。

實際上如果我們要開發出更靈活、更實用、更具效率的應用程序,必然要涉及到直接使用API函數,雖然類庫和控件使應用程序的開發簡單的多,但它們只提供WINDOWS的一般功能,對於比較複雜和特殊的功能來說,使用類庫和控件是非常難以實現的,這時就需要採用API函數來實現。

這也是API函數使用的場合,所以我們對待API函數不必刻來研究每一個函數的用法,那也是不現實的(能用的到的API函數有幾千個呢)。正如某位大蝦所說:API不要去學,在需要的時候去查API幫助就足夠了。

補充:
api就是留給用戶的接口,比如windows編程中一個MessageBox函數就可以調出一個對話框,Liunx中一個fork函數可以創建一個進程,等等。這些接口是給程序員用來開發自己的應用程序的,程序員可能並不需要知道fork函數的完整實現的代碼,但只要知道調用之後可以創建一個進程既可以了。
目前有三個最有名,最常用的API:windows下的win32API;Unix/Linux下的POSIX API ;Java虛擬機(JVM)下的 java API。

往往API具備以下幾個特徵:1)在系統中是最外層的接口,是供用戶直接調用的;2)穩定:如果系統的接口經常變得話,用戶肯定瘋了;3)定義清楚:方法名應該一目瞭然,參數數據結構良好,文檔豐富清晰;4)多形式:指的是API可以用java進行export,以庫的形式提供,也可以通過REST的方式進行訪問等等。

API不一定是代碼…

例如…

我寫個程序,然後告訴調用者,你要引用某個文件然後調用某個函數就是實現某功能,這是API…

我寫個程序,然後告訴調用者,你只要按我給你的格式讀寫某個文本文件就能實現某功能,這也是API…

比如使用JQuery 就是調用其API

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章