SDk詳細介紹
SDK是Software Development Kit 的縮寫,翻譯過來-軟件開發工具包。這個解釋覆蓋面相當廣泛,簡單來說:輔助開發某一類軟件的相關文檔、范例和工具的集合都可以稱作是sdk。
SDk被開發出來是為了減少程序員工作量,比如微信支付SDK,支付寶支付SDK是能夠實現支付功能,出售給其他公司使用,那么就將支付功能封裝成SDK賣給其他公司,供其他公司調用,其他公司如果想要使用軟件開發出的某功能,直接付錢,在軟件中嵌入第三方的sdk,就能成功使用了。
其實SDK都是類似公共服務的東西,都代表的是一種封裝。
SDK的封裝是在客戶端層面的一個library(也叫做“包”或者“庫”),這個library提供一些客戶端API接口,類似於已經寫好了的函數,你只需要調用它就好了。SDK暴露出來的接口都是和語言相關的,如果SDK是用Java寫的,就需要用Java去調用那個函數;如果是SDK是用Objective-C寫的,就需要用Objective-C去調用那個函數。
SDK的缺點
缺點一:
SDK的不便性在於,他和App一樣,是需要升級的,比如修復某些bug,就需要讓所有用了舊SDK的商戶在更新自己產品的時候采用新的SDK。
但是SDK的升級是做不到強制性的,所以SDK提供方的人就很痛苦,因為需要向下兼容很多個版本,有的時候會直接通知死都不升級的消費者商家說:“老版本的我不支持了,要用的趕緊升級!”強勢的SDK提供方,比如Facebook,會提前一年和你說某個SDK一年后不支持了。但實際上,就算給了一年的時間,很多消費者廠商還是很難完全更新他們使用的SDK,因為有時候采用了舊版本SDK的App的用戶數目太大,總有一些量的用戶並不願意升級。
缺點二:
因為SDK是完全封裝好的,提供的是一個二進制的包,使用SDK的消費者廠商完全不知道他的實現細節。
有時候使用一些小廠開發的SDK非常有風險,如果其中有一些“手腳”,消費者是不知道的。上次有個做廣告變現的小廠開發了一款可以幫助變現的SDK,變現方式是用了他的SDK之后,彈一個廣告給用戶,如果有用戶點廣告后會得到廣告提成。但是這個小廠接廣告的模式是直接下載apk,根據規定是不能直接繞開Google Play去下載apk,Google因為這個原因,把所有集成了這個SDK的App全都下架了。
所以,如果SDK的提供方做了一些違反政策的事情,就會把完全不知情的你牽連,所以很多人不願意集成小廠的SDK,只願意集成Facebook,Google之類大廠的SDK。
缺點三:
理論上,SDK提供方可以做到,知曉消費者廠商的用戶規模。
因為消費者廠商的用戶也算是提供方的用戶,所以如果SDK提供方在實現中加入一些數據上報的動作,技術上來說是完全ok的。而用戶規模、用戶數據等都是非常隱私的東西,消費者廠商肯定是不想被別人知曉的。
簡單點來說
SDK對指定功能的實現是完全隱藏的,只需要調用接口函數,傳進去特定的值即可實現提供商制定好的功能。
有什么寫的不足的地方,希望大家多多補充,上述僅是我的一些經驗