一珍逸、SDK(Software Development Kit逐虚,軟件開發(fā)工具包)
1、SDK是一些被軟件工程師用于為特定的軟件包谆膳、軟件框架叭爱、硬件平臺、操作系統(tǒng)等創(chuàng)建應(yīng)用軟件的開發(fā)工具的集合漱病。它可以簡單的為某個程序設(shè)計語言提供應(yīng)用程序接口API的一些文件买雾,但也可能包括能與某種嵌入式系統(tǒng)通訊的復(fù)雜的硬件。SDK還經(jīng)常包括示例代碼杨帽、支持性的技術(shù)注解或者其他的為基本參考資料澄清疑點的支持文檔漓穿。
2、最開始的時候睦尽,API的集合我們就稱之為SDK器净,例如mac提供的API集合,就稱之為mac SDK当凡。隨著時間的演化山害,現(xiàn)在的SDK指的是以一組Api作為輸入纠俭,以另外一組Api作為輸出的中間件。
3浪慌、例如冤荆,新浪微博提供了一組Http請求形式的Api。由于現(xiàn)如今構(gòu)造Http請求也算是一件麻煩事权纤,所以逐漸就有了“新浪微博iOS SDK”钓简。這個SDK封裝新浪微博的Http接口,提供了一組Objective C或者Swift形式接口汹想。
二外邓、系統(tǒng)與SDK
1、Windows:
DLL(Dynamic Link Library古掏,動態(tài)鏈接庫损话,格式為.dll)也是一種可執(zhí)行文件格式,跟.exe文件不同的是槽唾,.dll文件不能直接執(zhí)行丧枪,它們通常由.exe在執(zhí)行時裝入,內(nèi)含有一些資源以及可執(zhí)行代碼(API函數(shù)的執(zhí)行代碼)等庞萍。為了使用DLL中的API函數(shù)拧烦,我們必須要有API函數(shù)的聲明(.H)和其導(dǎo)入庫(.LIB),導(dǎo)入庫是為了在DLL中找到API的入口點而使用的钝计。
所以恋博,為了使用API函數(shù),我們就要有跟API所對應(yīng)的.H和.LIB文件葵蒂,而SDK正是提供了一整套開發(fā)Windows應(yīng)用程序所需的相關(guān)文件交播、范例和工具的"工具包"。由于SDK包含了使用API的必需資料践付,所以人們也常把僅使用API來編寫Windows應(yīng)用程序的開發(fā)方式叫做"SDK編程"秦士。
2、IOS(URL Scheme):
iOS是一個封閉的系統(tǒng)永高,蘋果選擇沙盒來保障用戶的隱私和安全隧土,App只能訪問自己的沙盒,但同時也阻礙了應(yīng)用間合理的信息共享命爬。沙盒機制(SandBox)是一種安全體系曹傀,它規(guī)定了應(yīng)用程序只能在為該應(yīng)用創(chuàng)建的文件夾內(nèi)讀取文件,不可以訪問其他地方的內(nèi)容饲宛。所有的非代碼文件都保存在這個地方皆愉,比如圖片、聲音、屬性列表和文本文件等幕庐。
應(yīng)用程序通過各個APP設(shè)計的符合蘋果的統(tǒng)一規(guī)范的URL Scheme久锥,來實現(xiàn)信息的傳。URL Scheme是為方便app之間互相調(diào)用而設(shè)計的异剥。如果一個App需要提供一個供別的App訪問的功能或者數(shù)據(jù)瑟由,那么必須在App定義一個相對應(yīng)的URL Scheme。你可以通過一個類似URL的鏈接冤寿,通過系統(tǒng)的OpenURl來打開該app歹苦,并可以傳遞一些參數(shù)。
每個URL必須能唯一標識一個APP督怜,如果你設(shè)置的URL與別的APP的URL沖突殴瘦,此時,你的APP不一定會被調(diào)用起來号杠,原因是當(dāng)APP在安裝的時候就已經(jīng)在系統(tǒng)里面注冊了此APP的URL?Scheme痴施,如果你的一致但是是后安裝的,那么系統(tǒng)不會調(diào)用你的APP究流,因為你的APP設(shè)置的URL scheme被覆蓋了。
3动遭、Android:
在Android平臺上開發(fā)Android App芬探,我們必須從官網(wǎng)下載Android SDK,然后利用這套SDK提供的API來調(diào)用系統(tǒng)能力厘惦,比如我通過Android?SDK來調(diào)用系統(tǒng)屏幕一直「常亮」的功能偷仿,如果沒有這個工具箱提供的這個工具,那就無法實現(xiàn)這個功能了宵蕉。
——部分內(nèi)容整理自網(wǎng)絡(luò)——