淺談iOS的SDK與API

    做爲iOS開發人員,咱們常常聽到SDK,API。但是它們究竟是什麼?有什麼做用呢?,有的人老是以爲它們太抽象了。編程

    接下來就讓咱們一塊兒談談,由於技術知識無窮的,因此我說的可能會有一些不許確的地方,因此也但願廣大的博友提出指正,你們一塊兒進步~~框架

    SDK函數

     SDK,英文全稱Software Development Kit,中文意思就是軟件開發包。這個開發包一般都會包含API函數庫、幫助文檔、使用手冊、輔助工具等資源。意思就是,SDK事實上是開發所需資源的一個集合。而API也被其包含其中,這個咱們下面再講。而開發iOS項目咱們通常都會用到Xcode,那麼SDK與XCode又是什麼關係呢?二者的關係就像操做系統和軟件的關係,操做系統給應用程序提供平臺,你用軟件實現你想用的功能。Xcode給SDK提供平臺,你用SDK來編程,Xcode只是一個IDE,用於開發的一個工具而已,你也能夠不用Xcode來開發。只是它是蘋果官方比較提倡的,並且相對來講最大衆,最好用而已。而SDK纔是開發的靈魂,也就是說你所正真要用的東西。工具

     值得一提的是,如今直接說SDK都是代指開發Windows平臺下的應用程序所使用的SDK,不過總的來講SDK的定義與做用都是差很少的。由這個咱們也不難看出來,其實無論在什麼操做平臺下,什麼編譯語言。咱們所用的本質規則都是同樣的,同時咱們也能夠在從事本身的專業的時候,也借鑑一下別的領域,說不定就有意外的收貨和感悟。學習

    最後說一下,有的人之因此認爲SDK難以理解,難以具體化,實例化。其實我以爲這正是SDK的廣義性形成的,SDK 還常常包括示例代碼、支持性的技術註解或者其餘的爲基本參考資料澄清疑點的支持文檔。正是由於它包含的東西多,廣,深。因此SDK很難簡單的,明瞭的定義在那裏。這點你們也不要太糾結,咱們之後接觸的多了也就天然有了它的大體輪廓。開發工具

    APIui

    剛纔說了,API是包含在SDK之中的,因此API的廣義性就相對來講小一點。API這個詞,全稱叫Application Programming Interfaces(應用程序編程接口)。簡單地說,就是一套套的要求,用來管理應用程序之間的溝通。API並非什麼新事物,在你使用PC或筆記本時,正是API讓數據在程序之間傳輸。例如,把一個LibreOffice文檔中的片段切割出來並傳輸到Excel表格上。系統級的API讓LibreOffice這類程序可以運行在Windows這樣的操做系統上。spa

   也能夠說操做系統留給應用程序的一個調用接口,應用程序經過調用操做系統的 API 而使操做系統去執行應用程序的命令(動做)。API是經過把程序內部的一些功能有限地向外開放來作到的,這使得應用之間可基於各自的利益分享數據,同時不須要開發者公佈全部的軟件代碼。對開源項目來講也是如此。你能夠把它當作是一扇門、窗或槓桿,無論用什麼比喻,一個程序和外面的軟件世界的溝通就是由API定義的。操作系統

   Mac OS X上的五大API  Cocoa,Carbon,POSIX,X11和Javacode

   接下來咱們說說比較重要和經常使用的API,Cocoa。Cocoa 應用程序通常在蘋果公司的開發工具Xcode(前身爲Project Builder)和Interface Builder上用Objective-C寫成。不過,經過Java bridge、PasCocoa、PyObjC、CamelBones以及RubyCocoa等橋接技術,Java、Clozure CL、LispWorks、Object Pascal、Python、Perl、Ruby等其它工具或者語言也能夠用來開發 Cocoa 應用

   說道API,就不得不說說Cocoa Touch,Cocoa Touch由蘋果公司提供的軟件開發API, 用於開發 iPhone\iPod\iPad上的軟件。也是蘋果公司針對iPhone應用程序快速開發提供的一個類庫。此庫以一系列框架庫的形式存在,支持開發人員使用用戶界面元素構建圖像化的事件驅動的應用程序。

     

  這個你們必定都不陌生,咱們開發時常常要建的類,這樣一看就直觀多了。

    那麼問題來了,Cocoa與Cocoa Touch就是一個單詞的差異,有什麼區別嗎?  

二者都包含OC運行時的兩個核心框架:
Cocoa包含Foundation和AppKit框架,可用於開發Mac OS X系統的應用程序
Cocoa Touch包含Foundation和UIKit框架,可用於開發iPhone OS 系統的應用程序
Cocoa時Mac OS X的開發環境,Cocoa Touch是 Iphone OS的開發環境

如今你們明白了爲何咱們常常用的Cocoa Touch比較多了吧,由於咱們開發的大部分都是手機APP,因此用到Cocoa Touch也就天然了。

 

嘿嘿,以上就是本人對SDK與API一些淺薄的理解和總結,其中也是查了網上好多資料本身學的,若是文章有什麼不正確或者模糊的地方,也但願廣大的博友指正出來,你們一塊兒學習!

相關文章
相關標籤/搜索